这书探讨了Linux内核的定义、构造和保持。主题思想包含任务管理、调度和进程管理,物理内存的管理方法及其内核与相关硬件设备的互动,客户室内空间的系统进程怎样浏览虚拟内存,怎样撰写机器设备驱动安装,控制模块机制及其虚似文件系统,Ext文件系统属性和访问控制表的保持方法,内核中互联网的保持,系统调用的保持方法,内核调时相关作用的解决,网页页面收购和页互换的相关机制及其财务审计的保持等。除此之外,这书依靠内核源码中最重要的一部分开展解读,协助用户把握关键的知识结构图,进而在应用中充足呈现Linux系统软件的风采。
这书合适Linux内核发烧友阅读文章。
目录
- 第1章简介和概述
- 1.1内核的任务
- 1.2实现策略
- 1.3内核的组成部分
- 1.3.1进程、进程切换、调度
- 1.3.2UNIX进程
- 1.3.3地址空间与特权级别
- 1.3.4页表
- 1.3.5物理内存的分配
- 1.3.6计时
- 1.3.7系统调用
- 1.3.8设备驱动程序、块设备和字符设备
- 1.3.9网络
- 1.3.10文件系统
- 1.3.11模块和热插拔
- 1.3.12缓存
- 1.3.13链表处理
- 1.3.14对象管理和引用计数
- 1.3.15数据类型
- 1.3.16本书的局限性
- 1.4为什么内核是特别的
- 1.5行文注记
- 1.6小结
- 第2章进程管理和调度
- 2.1进程优先级
- 2.2进程生命周期
- 2.3进程表示
- 2.3.1进程类型
- 2.3.2命名空间
- 2.3.3进程ID号
- 2.3.4进程关系
- 2.4进程管理相关的系统调用
- 2.4.1进程复制
- 2.4.2内核线程
- 2.4.3启动新程序
- 2.4.4退出进程
- 2.5调度器的实现
- 2.5.1概观
- 2.5.2数据结构
- 2.5.3处理优先级
- 2.5.4核心调度器
- 2.6完全公平调度类
- 2.6.1数据结构
- 2.6.2CFS操作
- 2.6.3队列操作
- 2.6.4选择下一个进程
- 2.6.5处理周期性调度器
- 2.6.6唤醒抢占
- 2.6.7处理新进程
- 2.7实时调度类
- 2.7.1性质
- 2.7.2数据结构
- 2.7.3调度器操作
- 2.8调度器增强
- 2.8.1SMP调度
- 2.8.2调度域和控制组
- 2.8.3内核抢占和低延迟相关工作
- 2.9小结
- 第3章内存管理
- 3.1概述
- 3.2(N)UMA模型中的内存组织
- 3.2.1概述
- 3.2.2数据结构
- 3.3页表
- 3.3.1数据结构
- 3.3.2页表项的创建和操作
- 3.4初始化内存管理
- 3.4.1建立数据结构
- 3.4.2特定于体系结构的设置
- 3.4.3启动过程期间的内存管理
- 3.5物理内存的管理
- 3.5.1伙伴系统的结构
- 3.5.2避免碎片
- 3.5.3初始化内存域和结点数据结构
- 3.5.4分配器API
- 3.5.5分配页
- 3.5.6释放页
- 3.5.7内核中不连续页的分配
- 3.5.8内核映射
- 3.6slab分配器
- 3.6.1备选分配器
- 3.6.2内核中的内存管理
- 3.6.3slab分配的原理
- 3.6.4实现
- 3.6.5通用缓存
- 3.7处理器高速缓存和TLB控制
- 3.8小结
- 第4章进程虚拟内存
- 4.1简介
- 4.2进程虚拟地址空间
- 4.2.1进程地址空间的布局
- 4.2.2建立布局
- 4.3内存映射的原理
- 4.4数据结构
- 4.4.1树和链表
- 4.4.2虚拟内存区域的表示
- 4.4.3优先查找树
- 4.5对区域的操作
- 4.5.1将虚拟地址关联到区域
- 4.5.2区域合并
- 4.5.3插入区域
- 4.5.4创建区域
- 4.6地址空间
- 4.7内存映射
- 4.7.1创建映射
- 4.7.2删除映射
- 4.7.3非线性映射
- 4.8反向映射
- 4.8.1数据结构
- 4.8.2建立逆向映射
- 4.8.3使用逆向映射
- 4.9堆的管理
- 4.10缺页异常的处理
- 4.11用户空间缺页异常的校正
- 4.11.1按需分配/调页
- 4.11.2匿名页
- 4.11.3写时复制
- 4.11.4获取非线性映射
- 4.12内核缺页异常
- 4.13在内核和用户空间之间复制数据
- 4.14小结
- 第5章锁与进程间通信
- 第6章设备驱动程序
- 第7章模块
- 第8章虚拟文件系统
- 第9章Ext文件系统族
- 第10章无持久存储的文件系统
- 第11章扩展属性和访问控制表
- 第12章网络
- 第13章系统调用
- 第14章内核活动
- 第15章时间管理
- 第16章页缓存和块缓存
- 第17章数据同步
- 第18章页面回收和页交换
- 第19章审计
- 附录A体系结构相关知识
- 附录B使用源代码
- 附录C有关C语言的注记
- 附录D系统启动
- 附录EELF二进制格式
- 附录F内核开发过程
- 参考文献