对某个模糊的知识点不用老去翻书了,使用电子书一下子就可以定位,看两眼就ok了! 下载地址: 1. 《Linux内核情景分析a》 2. 《Linux内核情景分析b》 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/38994/showart_415666.html
再看《linux内核源代码情景分析》(毛德操,胡希明著上册)这本书,在252页,看到“就是说,如果内核能够在一个“异常表“中找到发生异常的指令所在的地址,并得到相应的”修复“地址fixup,就将CPU在异常返回后将要重新执行的地址替换成这个”修复”地址。为什么要这样做呢?因为在这种情况下内核不能为当前进程补上一个页面(那样的话name所指的字符串就变成空白了)。”这一小段时,实在是不能理解最后一句话(因为在这种情况下...
内核 版本 2.4 在时钟中断分析章节里面,跟踪到do_timer函数后, 发现对jiffies 的自增采用了转指针类型方式自增 void do_timer(struct pt_regs *regs) { (*(unsigned long *)&jiffies)++; 。。。。。。 } linux内核情景分析上说这个目的是 gcc会将这个语句 翻译成一条对内存单元的inc自增指令 这样有利于保证原子性操作 但是我试了一下,发现还是 先把 jiffies mov到eax中,然后把eax 自增,然后通过mov到内存单元里面去 ...
get_current 使用宏的原因 ==================== include/asmi386/ current.h 6 13 ==================== 6 static inline struct task_struct * get_current(void) 7 { 8 struct task_struct *current; 9 __asm__("andl %%esp,%0; ":"=r" (current) : "0" (~8191UL)); 10 return current; 11 } 12 13 #define current get_current() 一条AND指令的执行只需4个CPU时钟周期,而一条从寄存器到寄存器的MOV指令也才2个CPU时钟周期,所...
我需要上下册, 在北京交易.我可以自取.需要书面干净整洁. msn: [email]xubai3000@avl.com.cn[/email] mail: [email]xujianbin@gmail.com[/email]