ChinaUnix.net
相关文章推荐:

linux内核源代码分析

Linux内核源代码分析

by gnubuntu - 内核源码 - 2008-06-04 08:31:53 阅读(1791) 回复(0)

相关讨论

再看《linux内核源代码情景分析》(毛德操,胡希明著上册)这本书,在252页,看到“就是说,如果内核能够在一个“异常表“中找到发生异常的指令所在的地址,并得到相应的”修复“地址fixup,就将CPU在异常返回后将要重新执行的地址替换成这个”修复”地址。为什么要这样做呢?因为在这种情况下内核不能为当前进程补上一个页面(那样的话name所指的字符串就变成空白了)。”这一小段时,实在是不能理解最后一句话(因为在这种情况下...

by 栏外人27 - 内核源码 - 2013-10-10 17:31:01 阅读(1237) 回复(4)

因毕设需要,看linux内核源代码中关于SCTP的部分,感觉研究起来比较困难,哪位学长有这方面的代码分析文档啊?谢啦

by worldsoul - 内核源码 - 2008-03-18 14:49:52 阅读(1481) 回复(0)

凡是尝试做过内核分析的人都知 道,Linux的内核组织结构虽然非常有条理,但是,它毕竟是众人合作的结果,在阅读代码的时候要将各个部分结合起来,确实是件非常困难的事情。因为在内 核中的代码层次结构肯定分多个层次,那么对一个函数的分析,肯定会涉及到多个函数,而每一个函数可能又有多层的调用,一层层下来,直接在代码文件中查找那 些函数肯定会让你失去耐心和兴趣。 h%jY#jGI @ Q,d$o0 俗话说:“工欲善其事,必先...

by paradiseHIT - Linux文档专区 - 2007-10-27 12:32:45 阅读(847) 回复(0)

本帖最后由 fireaway7 于 2014-05-11 16:34 编辑 第2章 2.4节需要理解的点: *缺页异常产生的3个原因:线性地址与物理地址还没建立映射或已经撤消、物理页面已离开内存、访问权限不对 *asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code); // regs: 异常时的各种寄存器值,error_code:映射失败具体原因 a. 进入do_page_fault()的具体过程,学习“中断和异常”章节 b. 将引起缺页的地址写入CR2...

by fireaway7 - 内核源码 - 2014-05-11 16:33:04 阅读(1048) 回复(0)

第2章 2.3节需要理解的点: *重要数据结构:http://bbs.chinaunix.net/thread-4137565-1-1.html ***** 物理空间管理(描述系统“可供”,struct_page、zone_struct、pglist_data结构) ***** *地址映射过程中,Linux内核做了什么、CPU做了什么 内核设置好PGD、PT、GDT、LDT等相关寄存器,CPU就能找到最终地址(木偶(CPU),木偶身上的线(寄存器),通过操作线,能使木偶做出不同的动作) *pte_t、pmd_t、pgd_t定义成结构,类型检...

by fireaway7 - 内核源码 - 2014-05-10 15:36:44 阅读(993) 回复(0)

本帖最后由 fireaway7 于 2014-05-11 14:47 编辑 第2章 2.3节重要数据结构归纳(缺注释的成员含义,等搞明白不断添加,请知道的朋友给个提示,也请指出不对的地方): a. 每个物理页面都有一个page结构: typedef struct page { struct list_head list; // 链入管理区zone_t的空闲区域free_area[x].free_list struct address_space *mapping; // 记录内存页面与磁盘文件的映射关系(mma...

by fireaway7 - 内核源码 - 2014-05-06 16:30:15 阅读(1204) 回复(0)

第2章 2.2节需要理解的点: *页式存储管理相对于段式存储管理的好处:大小固定,方便管理;换出到磁盘时,提高效率 *i386既有段式存管,又有页式存管,是因为他在支持页式的时候,段式已经存在相当长时间了,为了保留已有资源,Linux内核作为软件要面对他,也只能跟着多此一举,只能“服从”,实际上是“欺骗” *通过“Hello world!\n”程序熟悉地址映射全过程 a. ld为elf格式可执行代码从0x8000000开始安排代码段,运行时用内核...

by fireaway7 - 内核源码 - 2014-05-06 10:56:26 阅读(874) 回复(0)

本帖最后由 fireaway7 于 2014-05-06 09:19 编辑 第2章 2.1节需要理解的点: *线性地址->物理地址,经过页面目录和页面表两层映射,可以节省页面表所占用的空间(相当于可以装1L水的桶和可以装10ml的100个杯子,大部分时候我们外出是不会带1L水的) *Linux内核的MMU采用三层映射(页面目录PGD、中间目录PMD、页面表PT,最终找到PTE),因为他面对的不仅仅是32位CPU,可能还有64位的(相当于公司规模越大,层次越多) *三层映射...

by fireaway7 - 内核源码 - 2014-05-08 19:52:03 阅读(913) 回复(4)

本帖最后由 fireaway7 于 2014-05-05 13:00 编辑 第1章需要理解的点: 1.2 80286 *分段方法的由来:cs*16+offset->20位地址 *实地址(相同地址在不同进程所指向的地方一样)、虚拟地址(不同进程里相同的进程,指向的地方并不一样) *CS:代码段,DS:数据段,SS:堆栈段,ES:扩展数据段,FS:标志段,GS:全局段 *80386维持已有段寄存器、支持实地址、支持保护模式,保护模式没有完全另搞一套,而建立在段寄存器基础上,“|-描述项...

by fireaway7 - 内核源码 - 2014-05-05 12:51:58 阅读(921) 回复(0)

之前发过一个类似的帖子,将初稿上载了上来,得到某些网友的认可,在下十分荣幸。 现在上载的这个版本是为方便大家理解,重新将书的结构调整了一下,供像我一样对Linux内核感兴趣的读者参考。 对于书中的错别字,还请诸位见谅! 书中分析的是1.2.13版本,共894页,选择早期版本的原因我想研究过Linux内核代码的读者会理解的。 本书详细分析了网络栈各层的实现,便于读者从整体上掌握网络栈的实现,以避免“一叶障目”的局面。 下...

by ingdxdy - Linux系统管理 - 2012-01-04 07:37:19 阅读(5671) 回复(13)