读书笔记之《深入理解Linux内核》第一、二、三章

来源:互联网 发布:linux touch -t 编辑:程序博客网 时间:2024/06/05 13:28

每看完一章我就在豆瓣网上写了对应的笔记,现在写了三篇了,也顺便贴过来这里。

第一章 - 绪论

第一章是绪论。前三节内容很少,讲的都是一些内核边缘相关的东西,不是真正内核的内容,简单了解就好,不必深究。后三节,“操作系统基本概念”简单描述了几个“使用操作系统”要知道的概念;“Unix文件系统概述”也是从用户的角度讲了几个概念,并没有深入到内核;“Unix内核概述”这一节内容很多,最重要的是它在讲述一些内核的重要概念时引出了很多必须处理的问题,让读者带着疑问到本书的后续章节里去自己探寻答案。

 

第二章 - 内存寻址

这一章的内容都是很底层的,直接是一些硬件特性或者是内核中处理硬件的一些策略。

    内存地址根据其组织特点的不同分为三个层次:逻辑地址(虚拟地址)、线性地址、物理地址。再细一层,有分段和分页两种。对这两种机制,书中分别详细描述了其80X86的硬件特性和Linux内核对应的处理。

    其中分页是重点。常规分页机制中,页框是4KB;而扩张分页机制的页框是4MB。Linux采用了4级分页模型,能适应不同的体系结构。本章还讲述了硬件高速缓存和TLB(Translation Lookaside Buffer),TLB的翻译有很多种:转换后援缓冲器、转换检测缓冲区、旁路转换缓冲、页表缓冲,我觉得直接叫页表缓冲就很好理解了,没有必要纠结于单个单词的意思。

 

第三章 - 进程

这一章讲进程,但没有涉及任何的算法相关的东西,都是那些跟数据有关的系统调用、函数、数据结构,这跟前一章很像。

    进程的静态特性:进程描述符,都是task_struct类型的结构,它的字段包含了与一个进程相关的所有信息。进程描述符是很基础很重要的东西,整个内核都构建在它的基础之上。

    进程切换,这一章里“切换”是跟“调度”完全不同的概念。切换只是当进程调度时要做的数据的处理,特别是与进程描述符相关的操作以及硬件上下文、进程上下文相关的数据、字段。

    创建进程,最重要的是do_fork()函数和copy_process()函数。

    还有最后一节是撤销进程。重点是do_exit()函数和进程删除时的父子进程关系。

 

接下来,继续努力!

2011.11.22

原创粉丝点击