logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Android运行时ART执行类方法的过程分析

在前面一篇文章中,我们分析了ART运行时加载类以及查找其方法的过程。一旦找到了目标类方法,我们就可以获得它的DEX字节码或者本地机器指令,这样就可以对它进行执行了。在ART运行时中,类方法的执行方式有两种。一种是像Dalvik虚拟机一样,将其DEX字节码交给解释器执行;另一种则是直接将其本地机器指令交给CPU执行。在本文中,我们就将通过分析ART运行时执行类方法的过程来理解ART运行时的运行原理。

LLVM VS GCC

1.1 LLVM是什么LLVM是什么?这是一个虽然基础,但是也曾经让很多新入门的人迷惑的一个问题。从字面上来讲,LLVM(Low Level Virtual Machine)是一个底层虚拟机,LLVM曾经有一部分功能对虚拟机有所帮助。但是现在,LLVM所代表的基本和虚拟机没有关系了,也不在作为一个缩写使用了,而是直接作为一个名字使用。那么LLVM到底是什么?LLVM可以被看作是一系列的

linux用户态和kernel之间共享内存 --- remap_pfn_range + mmap的实现方式

概述:内核的驱动程序使用remap_pfn_range()结合设备驱动文件的mmap操作来将内存共享至用户态-----------以下是内核态代码------struct file_operations Fops = {    .read = char_read,    .write =char_write,    .open = char_open,    .re

Linux DRM kernel

Whoops,上次写完《Linux DRM Graphic 显示简单介绍》博文后,心情还是蛮愉悦的,来来,这次在说说具体的显卡驱动。 1. DRM 框架分解DRM 框架提供了一系列的 IOCTL 行为,但是绝大部分可以分成两类行为:Graphics Execution Manager (GEM)、Kernel Mode-Setting (KMS)  下面截图 WIKI 上一

Linux使用wake_up_interruptible()唤醒注册到等待队列上的进程

功能:唤醒注册到等待队列上的进程原型:   #include   voidwake_up_interruptible (wait_queue_head_t*q);说明:    唤醒 q指定的注册在等待队列上的进程。该函数不能直接的立即唤醒进程,而是由调度程序转换上下文,调整为可运行状态。变量:q :  等待队列变量指针。    

linux schedule 理解

Linux内核进程调度schedule深入理解 一.说明本文以linux-2.4.10 为例主要分析Linux 进程调度模块中的schedule 函数及其相关的函数。另外相关的前提知识也会说明。默认系统平台是自己的i386 架构的pc。二.前提知识在进行schedule 分析之前有必要简单说明一下系统启动过程,内存分配使用等。这样才能自然过渡到schedul

android selinux

有时候会遇到selinux相关的问题,今天来做一下总结:打开和关闭selinux功能如果出现了selinux相关的权限拒绝,则在kernel log 或者android log中都有对应的”avc: denied”,当然也可能和selinux的模式有关系,我们需要首先要确认当时SELinux的模式, 是enforcing mode 还是 permissve mode.如果

linux list_head 理解

在Linux内核中,提供了一个用来创建双向循环链表的结构 list_head。虽然linux内核是用C语言写的,但是list_head的引入,使得内核数据结构也可以拥有面向对象的特性,通过使用操作list_head 的通用接口很容易实现代码的重用,有点类似于C++的继承机制(希望有机会写篇文章研究一下C语言的面向对象机制)。下面就是kernel中的list_head结构定义:struct list

minicom 使用方法

因为现在电脑基本不配备串行接口,所以,usb转串口成为硬件调试时的必然选择。目前知道的,PL2303的驱动是有的,在dev下的名称是ttyUSB#。minicom,tkterm都是linux下应用比较广泛的串口软件,这里简单介绍minicom使用。一,安装sudo apt-get install minicom二,配置安装完成后,请不要着急打开软件。需先进行配置。具体步

线程追踪方法

翻译说明:这是一个日本人写的用户态下的函数tracer, 我们知道系统调用可以用strace, 库调用可以使用ltrace, 但是linux下竟然没有一个比较有名的用户程序的tracer, 这真是比较奇怪。这个工具好的地方就是用ptrace系统调用来实现,只要跟踪的程序没有被strip,就可以使用,而不要重新编译程序。而另一种函数跟踪的方式(使用gcc -finstruction-functi

#嵌入式#x86
    共 14 条
  • 1
  • 2
  • 请选择