炼狱,是为追逐光芒
发布时间:2012-02-07 16:55:56
system.map文件可以帮助我们理解内核编译,它记录了所有代码的运行地址内容格式为:线性地址 类型 符号具体内容如下: 00100000 A phys_startup_32c0100000 T startup_32c0100000 A _text 注:表示内核代码.........【阅读全文】
发布时间:2011-12-22 11:58:49
在Linux kernel的源代码中,经常能见到if(likely(x))或if(unlikely(x))之类的用法,其确切含义需要说明一下,以便更好的理解kernel的源代码。likely与unlikely这两个宏在linux/compiler.h中的定义如下:#define likely(x) __builtin_expect(!!(x),1)#define unlikely(x) __builtin_expe.........【阅读全文】
发布时间:2011-12-19 21:36:30
1.地址类型物理地址---CPU地址总线的寻址物理内存的地址信号,地址变换的最终结果线性地址(虚拟地址)逻辑地址---汇编程序中的地址逻辑地址—段式管理单元—虚拟地址—页式管理—物理地址2.段式管理:16位的CPU拥有20位地址线(8086),它的寻址范围是2的20次方,即1M内存空间.但16位CPU寄存器.........【阅读全文】
发布时间:2011-11-29 14:32:22
在编写内核模块化驱动后,要用insmod 模块名.ko来加载该驱动,然后用rmmod 模块名(注:没有.ko)来卸载刚刚加载的模块,可是就在这个时候你可能会遇到如下错误: rmmod: chdir(/lib/modules): No such file or directory这时你就必须创建/lib/modules/内核版本号-用户名 这样一个空目录.........【阅读全文】