深入Linux内核架构:全球开源社区集体智慧结晶,领略Linux内核的绝美风光

深入Linux内核架构
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [德]
出版社: 人民邮电出版社
2010-06
版次: 1
ISBN: 9787115227430
定价: 149.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 1038页
字数: 1852千字
正文语种: 简体中文
原版书名: Professional Linux Kernel Architecture
  •   《深入Linux内核架构》讨论了Linux内核的概念、结构和实现。主要内容包括多任务、调度和进程管理,物理内存的管理以及内核与相关硬件的交互,用户空间的进程如何访问虚拟内存,如何编写设备驱动程序,模块机制以及虚拟文件系统,Ext文件系统属性和访问控制表的实现方式,内核中网络的实现,系统调用的实现方式,内核对时间相关功能的处理,页面回收和页交换的相关机制以及审计的实现等。此外,《深入Linux内核架构》借助内核源代码中关键的部分进行讲解,帮助读者掌握重要的知识点,从而在运用中充分展现Linux系统的魅力。《深入Linux内核架构》适合Linux内核爱好者阅读。   莫尔勒(WoflgangMauerer),资深Linux专家,有数十年Linux开发经验。从1997年最初发表关于内核的系列文章开始,他就醉心于解释Linux核心的内部机制、编写相关的文档,此外,他还著有LaTex排版方面的图书,其撰写的大量文章已经被释译成7种语言。 第1章简介和概述11.1内核的任务21.2实现策略21.3内核的组成部分31.3.1进程、进程切换、调度31.3.2UNIX进程41.3.3地址空间与特权级别61.3.4页表91.3.5物理内存的分配111.3.6计时131.3.7系统调用131.3.8设备驱动程序、块设备和字符设备141.3.9网络141.3.10文件系统141.3.11模块和热插拔151.3.12缓存161.3.13链表处理161.3.14对象管理和引用计数171.3.15数据类型201.3.16本书的局限性221.4为什么内核是特别的231.5行文注记231.6小结27第2章进程管理和调度282.1进程优先级282.2进程生命周期302.3进程表示322.3.1进程类型372.3.2命名空间372.3.3进程ID号432.3.4进程关系492.4进程管理相关的系统调用502.4.1进程复制502.4.2内核线程622.4.3启动新程序632.4.4退出进程662.5调度器的实现672.5.1概观672.5.2数据结构692.5.3处理优先级742.5.4核心调度器792.6完全公平调度类842.6.1数据结构852.6.2CFS操作852.6.3队列操作892.6.4选择下一个进程912.6.5处理周期性调度器922.6.6唤醒抢占932.6.7处理新进程932.7实时调度类942.7.1性质942.7.2数据结构952.7.3调度器操作962.8调度器增强972.8.1SMP调度972.8.2调度域和控制组1012.8.3内核抢占和低延迟相关工作1022.9小结106第3章内存管理1073.1概述1073.2(N)UMA模型中的内存组织1093.2.1概述1093.2.2数据结构1113.3页表1233.3.1数据结构1243.3.2页表项的创建和操作1293.4初始化内存管理1293.4.1建立数据结构1303.4.2特定于体系结构的设置1353.4.3启动过程期间的内存管理1533.5物理内存的管理1593.5.1伙伴系统的结构1593.5.2避免碎片1613.5.3初始化内存域和结点数据结构1673.5.4分配器API1723.5.5分配页1773.5.6释放页1923.5.7内核中不连续页的分配1953.5.8内核映射2013.6slab分配器2053.6.1备选分配器2063.6.2内核中的内存管理2073.6.3slab分配的原理2093.6.4实现2123.6.5通用缓存2263.7处理器高速缓存和TLB控制2283.8小结230第4章进程虚拟内存2314.1简介2314.2进程虚拟地址空间2314.2.1进程地址空间的布局2324.2.2建立布局2344.3内存映射的原理2374.4数据结构2384.4.1树和链表2384.4.2虚拟内存区域的表示2394.4.3优先查找树2414.5对区域的操作2444.5.1将虚拟地址关联到区域2454.5.2区域合并2464.5.3插入区域2474.5.4创建区域2484.6地址空间2504.7内存映射2514.7.1创建映射2514.7.2删除映射2534.7.3非线性映射2544.8反向映射2574.8.1数据结构2584.8.2建立逆向映射2594.8.3使用逆向映射2594.9堆的管理2614.10缺页异常的处理2634.11用户空间缺页异常的校正2684.11.1按需分配/调页2694.11.2匿名页2714.11.3写时复制2714.11.4获取非线性映射2724.12内核缺页异常2724.13在内核和用户空间之间复制数据2744.14小结276第5章锁与进程间通信2775.1控制机制2775.1.1竞态条件2775.1.2临界区2785.2内核锁机制2795.2.1对整数的原子操作2805.2.2自旋锁2825.2.3信号量2835.2.4RCU机制2845.2.5内存和优化屏障2865.2.6读者/写者锁2875.2.7大内核锁2885.2.8互斥量2885.2.9近似的per-CPU计数器2905.2.10锁竞争与细粒度锁2915.3SystemV进程间通信2925.3.1SystemV机制2925.3.2信号量2925.3.3消息队列3005.3.4共享内存3035.4其他IPC机制3035.4.1信号3035.4.2管道和套接字3105.5小结311第6章设备驱动程序3126.1I/O体系结构3126.2访问设备3166.2.1设备文件3166.2.2字符设备、块设备和其他设备3176.2.3使用ioctl进行设备寻址3196.2.4主从设备号的表示3206.2.5注册3216.3与文件系统关联3246.3.1inode中的设备文件成员3246.3.2标准文件操作3256.3.3用于字符设备的标准操作3256.3.4用于块设备的标准操作3256.4字符设备操作3266.4.1表示字符设备3266.4.2打开设备文件3266.4.3读写操作3286.5块设备操作3296.5.1块设备的表示3306.5.2数据结构3316.5.3向系统添加磁盘和分区3386.5.4打开块设备文件3396.5.5请求结构3416.5.6BIO3436.5.7提交请求3456.5.8I/O调度3506.5.9ioctl的实现3526.6资源分配3536.6.1资源管理3536.6.2I/O内存3556.6.3I/O端口3576.7总线系统3586.7.1通用驱动程序模型3586.7.2PCI总线3636.7.3USB3706.8小结376第7章模块3777.1概述3777.2使用模块3787.2.1添加和移除3787.2.2依赖关系3807.2.3查询模块信息3817.2.4自动加载3827.3插入和删除模块3847.3.1模块的表示3857.3.2依赖关系和引用3897.3.3模块的二进制结构3917.3.4插入模块3967.3.5移除模块4037.4自动化与热插拔4047.4.1kmod实现的自动加载4047.4.2热插拔4057.5版本控制4087.5.1校验和方法4087.5.2版本控制函数4117.6小结412第8章虚拟文件系统4138.1文件系统类型4138.2通用文件模型4148.2.1inode4158.2.2链接4168.2.3编程接口4168.2.4将文件作为通用接口4178.3VFS的结构4178.3.1结构概观4188.3.2inode4198.3.3特定于进程的信息4238.3.4文件操作4278.3.5目录项缓存4318.4处理VFS对象4368.4.1文件系统操作4368.4.2文件操作4508.5标准函数4568.5.1通用读取例程4578.5.2失效机制4598.5.3权限检查4618.6小结463第9章Ext文件系统族4649.1简介4649.2Ext2文件系统4659.2.1物理结构4659.2.2数据结构4709.2.3创建文件系统4849.2.4文件系统操作4859.3Ext3文件系统5079.3.1概念5089.3.2数据结构5099.4小结511第10章无持久存储的文件系统51210.1proc文件系统51210.1.1/proc的内容51310.1.2数据结构51910.1.3初始化52210.1.4装载proc文件系统52310.1.5管理/proc数据项52510.1.6读取和写入信息52810.1.7进程相关的信息53010.1.8系统控制机制53510.2简单的文件系统54210.2.1顺序文件54210.2.2用libfs编写文件系统54610.2.3调试文件系统54710.2.4伪文件系统54910.3sysfs54910.3.1概述55010.3.2数据结构55010.3.3装载文件系统55410.3.4文件和目录操作55610.3.5向sysfs添加内容56210.4小结564第11章扩展属性和访问控制表56511.1扩展属性56511.1.1到虚拟文件系统的接口56611.1.2Ext3中的实现57011.1.3Ext2中的实现57611.2访问控制表57711.2.1通用实现57711.2.2Ext3中的实现58011.2.3Ext2中的实现58511.3小结585……第12章网络586第13章系统调用655第14章内核活动678第15章时间管理714第16章页缓存和块缓存761第17章数据同步793第18章页面回收和页交换821第19章审计882附录A体系结构相关知识899附录B使用源代码919附录C有关C语言的注记947附录D系统启动985附录EELF二进制格式附录F内核开发过程参考文献
  • 内容简介:
      《深入Linux内核架构》讨论了Linux内核的概念、结构和实现。主要内容包括多任务、调度和进程管理,物理内存的管理以及内核与相关硬件的交互,用户空间的进程如何访问虚拟内存,如何编写设备驱动程序,模块机制以及虚拟文件系统,Ext文件系统属性和访问控制表的实现方式,内核中网络的实现,系统调用的实现方式,内核对时间相关功能的处理,页面回收和页交换的相关机制以及审计的实现等。此外,《深入Linux内核架构》借助内核源代码中关键的部分进行讲解,帮助读者掌握重要的知识点,从而在运用中充分展现Linux系统的魅力。《深入Linux内核架构》适合Linux内核爱好者阅读。
  • 作者简介:
      莫尔勒(WoflgangMauerer),资深Linux专家,有数十年Linux开发经验。从1997年最初发表关于内核的系列文章开始,他就醉心于解释Linux核心的内部机制、编写相关的文档,此外,他还著有LaTex排版方面的图书,其撰写的大量文章已经被释译成7种语言。
  • 目录:
    第1章简介和概述11.1内核的任务21.2实现策略21.3内核的组成部分31.3.1进程、进程切换、调度31.3.2UNIX进程41.3.3地址空间与特权级别61.3.4页表91.3.5物理内存的分配111.3.6计时131.3.7系统调用131.3.8设备驱动程序、块设备和字符设备141.3.9网络141.3.10文件系统141.3.11模块和热插拔151.3.12缓存161.3.13链表处理161.3.14对象管理和引用计数171.3.15数据类型201.3.16本书的局限性221.4为什么内核是特别的231.5行文注记231.6小结27第2章进程管理和调度282.1进程优先级282.2进程生命周期302.3进程表示322.3.1进程类型372.3.2命名空间372.3.3进程ID号432.3.4进程关系492.4进程管理相关的系统调用502.4.1进程复制502.4.2内核线程622.4.3启动新程序632.4.4退出进程662.5调度器的实现672.5.1概观672.5.2数据结构692.5.3处理优先级742.5.4核心调度器792.6完全公平调度类842.6.1数据结构852.6.2CFS操作852.6.3队列操作892.6.4选择下一个进程912.6.5处理周期性调度器922.6.6唤醒抢占932.6.7处理新进程932.7实时调度类942.7.1性质942.7.2数据结构952.7.3调度器操作962.8调度器增强972.8.1SMP调度972.8.2调度域和控制组1012.8.3内核抢占和低延迟相关工作1022.9小结106第3章内存管理1073.1概述1073.2(N)UMA模型中的内存组织1093.2.1概述1093.2.2数据结构1113.3页表1233.3.1数据结构1243.3.2页表项的创建和操作1293.4初始化内存管理1293.4.1建立数据结构1303.4.2特定于体系结构的设置1353.4.3启动过程期间的内存管理1533.5物理内存的管理1593.5.1伙伴系统的结构1593.5.2避免碎片1613.5.3初始化内存域和结点数据结构1673.5.4分配器API1723.5.5分配页1773.5.6释放页1923.5.7内核中不连续页的分配1953.5.8内核映射2013.6slab分配器2053.6.1备选分配器2063.6.2内核中的内存管理2073.6.3slab分配的原理2093.6.4实现2123.6.5通用缓存2263.7处理器高速缓存和TLB控制2283.8小结230第4章进程虚拟内存2314.1简介2314.2进程虚拟地址空间2314.2.1进程地址空间的布局2324.2.2建立布局2344.3内存映射的原理2374.4数据结构2384.4.1树和链表2384.4.2虚拟内存区域的表示2394.4.3优先查找树2414.5对区域的操作2444.5.1将虚拟地址关联到区域2454.5.2区域合并2464.5.3插入区域2474.5.4创建区域2484.6地址空间2504.7内存映射2514.7.1创建映射2514.7.2删除映射2534.7.3非线性映射2544.8反向映射2574.8.1数据结构2584.8.2建立逆向映射2594.8.3使用逆向映射2594.9堆的管理2614.10缺页异常的处理2634.11用户空间缺页异常的校正2684.11.1按需分配/调页2694.11.2匿名页2714.11.3写时复制2714.11.4获取非线性映射2724.12内核缺页异常2724.13在内核和用户空间之间复制数据2744.14小结276第5章锁与进程间通信2775.1控制机制2775.1.1竞态条件2775.1.2临界区2785.2内核锁机制2795.2.1对整数的原子操作2805.2.2自旋锁2825.2.3信号量2835.2.4RCU机制2845.2.5内存和优化屏障2865.2.6读者/写者锁2875.2.7大内核锁2885.2.8互斥量2885.2.9近似的per-CPU计数器2905.2.10锁竞争与细粒度锁2915.3SystemV进程间通信2925.3.1SystemV机制2925.3.2信号量2925.3.3消息队列3005.3.4共享内存3035.4其他IPC机制3035.4.1信号3035.4.2管道和套接字3105.5小结311第6章设备驱动程序3126.1I/O体系结构3126.2访问设备3166.2.1设备文件3166.2.2字符设备、块设备和其他设备3176.2.3使用ioctl进行设备寻址3196.2.4主从设备号的表示3206.2.5注册3216.3与文件系统关联3246.3.1inode中的设备文件成员3246.3.2标准文件操作3256.3.3用于字符设备的标准操作3256.3.4用于块设备的标准操作3256.4字符设备操作3266.4.1表示字符设备3266.4.2打开设备文件3266.4.3读写操作3286.5块设备操作3296.5.1块设备的表示3306.5.2数据结构3316.5.3向系统添加磁盘和分区3386.5.4打开块设备文件3396.5.5请求结构3416.5.6BIO3436.5.7提交请求3456.5.8I/O调度3506.5.9ioctl的实现3526.6资源分配3536.6.1资源管理3536.6.2I/O内存3556.6.3I/O端口3576.7总线系统3586.7.1通用驱动程序模型3586.7.2PCI总线3636.7.3USB3706.8小结376第7章模块3777.1概述3777.2使用模块3787.2.1添加和移除3787.2.2依赖关系3807.2.3查询模块信息3817.2.4自动加载3827.3插入和删除模块3847.3.1模块的表示3857.3.2依赖关系和引用3897.3.3模块的二进制结构3917.3.4插入模块3967.3.5移除模块4037.4自动化与热插拔4047.4.1kmod实现的自动加载4047.4.2热插拔4057.5版本控制4087.5.1校验和方法4087.5.2版本控制函数4117.6小结412第8章虚拟文件系统4138.1文件系统类型4138.2通用文件模型4148.2.1inode4158.2.2链接4168.2.3编程接口4168.2.4将文件作为通用接口4178.3VFS的结构4178.3.1结构概观4188.3.2inode4198.3.3特定于进程的信息4238.3.4文件操作4278.3.5目录项缓存4318.4处理VFS对象4368.4.1文件系统操作4368.4.2文件操作4508.5标准函数4568.5.1通用读取例程4578.5.2失效机制4598.5.3权限检查4618.6小结463第9章Ext文件系统族4649.1简介4649.2Ext2文件系统4659.2.1物理结构4659.2.2数据结构4709.2.3创建文件系统4849.2.4文件系统操作4859.3Ext3文件系统5079.3.1概念5089.3.2数据结构5099.4小结511第10章无持久存储的文件系统51210.1proc文件系统51210.1.1/proc的内容51310.1.2数据结构51910.1.3初始化52210.1.4装载proc文件系统52310.1.5管理/proc数据项52510.1.6读取和写入信息52810.1.7进程相关的信息53010.1.8系统控制机制53510.2简单的文件系统54210.2.1顺序文件54210.2.2用libfs编写文件系统54610.2.3调试文件系统54710.2.4伪文件系统54910.3sysfs54910.3.1概述55010.3.2数据结构55010.3.3装载文件系统55410.3.4文件和目录操作55610.3.5向sysfs添加内容56210.4小结564第11章扩展属性和访问控制表56511.1扩展属性56511.1.1到虚拟文件系统的接口56611.1.2Ext3中的实现57011.1.3Ext2中的实现57611.2访问控制表57711.2.1通用实现57711.2.2Ext3中的实现58011.2.3Ext2中的实现58511.3小结585……第12章网络586第13章系统调用655第14章内核活动678第15章时间管理714第16章页缓存和块缓存761第17章数据同步793第18章页面回收和页交换821第19章审计882附录A体系结构相关知识899附录B使用源代码919附录C有关C语言的注记947附录D系统启动985附录EELF二进制格式附录F内核开发过程参考文献
查看详情
其他版本 / 全部 (1)
好书推荐 / 更多
深入Linux内核架构
权力、资本与商帮:中国商人600年兴衰史
王俞现
深入Linux内核架构
死亡区域:野生动物出没的地方(自然文库)
Philip Lymbery
深入Linux内核架构
鳗鱼的旅行(荣获奥古斯特文学大奖,《纽约时报》《福布斯》《洛杉矶时报》等一致推荐!)
[瑞典]帕特里克·斯文松(Patrik Svensso) 著;博集天卷 出品
深入Linux内核架构
索恩丛书·巨兽:工厂与现代世界的形成
乔舒亚·B.弗里曼((Joshua,B.,Freeman) 著;李珂 译
深入Linux内核架构
再造与自塑:上海青年工人研究(1949-1965)
刘亚娟 著
深入Linux内核架构
护士的故事:善良的语言
[英]克里斯蒂·沃森
深入Linux内核架构
中国的新型正义体系:实践与理论(实践社会科学与中国研究·卷二)
黄宗智 著
深入Linux内核架构
制度逻辑:制度如何塑造人和组织
[加拿大]龙思博 著;张容榕 译;[法]帕特丽夏·H.桑顿;[加拿大]威廉·奥卡西奥;汪少卿;杜运州;翟慎霄
深入Linux内核架构
创造力的本质
[美]凯娜·莱斯基(Kyna Leski) 著;王可越 译
深入Linux内核架构
信仰与理性
[英]斯温伯恩 著;曹剑波 译
深入Linux内核架构
城市的语言
[英]迪耶·萨迪奇 著;张孝铎 译
深入Linux内核架构
蜘蛛女之吻
[阿根廷]曼努埃尔·普伊格. 著;屠孟超 译