深入理解Linux内核(第二版)
深入理解Linux内核(第二版)
Daniel P. Bovet, Marco Cesati
陈莉君, 冯锐, 牛欣源 译
出版时间:2004年06月
页数:808
为了彻底理解GNU/Linux的内部构造以及它为何能在各种系统之上工作得如此之好,那就需要你深入研究操作系统的心脏 —— Linux内核本身。内核处理各种请求或已完成的I/O操作,并判断哪些程序将分享它的处理时间,会以什么顺序分享。Linux内核肩负着全面管理整个系统的职责,是神奇的Linux高效之根源。
本书将引导你畅游内核中使用的最主要的数据结构、算法和编程技巧,讨论了特定于Intel平台的重要特点。但是本书涵盖的内容绝不限于代码所起的作用,它还阐明了Linux为什么如此运作的理论基础。
本书涵盖Linux 2.4,集中讨论如下内容:
● 网络
● 内存管理,包括文件缓冲、进程交换以及直接内存访问(DMA)
● 虚拟文件系统层和第二及第三扩展文件系统
● 进程创建及调度
● 信号、中断及对设备驱动程序的主要接口
● 定时
● 内核中的同步
● 进程间通信(IPC)
● 程序执行
《深入理解Linux内核(第二版)》将使你熟悉Linux所有的内在工作机制,但本书不仅仅是一种学术训练。你将知道什么样的条件能使Linux产生最好的性能,你会看到Linux如何满足(在各种环境下)进程调度、文件访问及内存管理期间提出的快速响应要求。知识就是力量,本书将帮助你充分使用自己的Linux系统。
  1. 前言
  2. 第一章 绪论
  3. Linux与其他类Unix内核的比较
  4. 硬件的依赖性
  5. Linux版本
  6. 操作系统基本概念
  7. Unix文件系统概述
  8. Unix内核概述
  9. 第二章 存储器寻址
  10. 存储器地址
  11. 硬件中的分段
  12. Linux中的分段
  13. 硬件中的分页
  14. Linux中的分页
  15. 第三章 进程
  16. 进程、轻量级进程和线程
  17. 进程描述符
  18. 进程切换
  19. 创建进程
  20. 撤销进程
  21. 第四章 中断和异常
  22. 中断信号的作用
  23. 中断和异常
  24. 中断和异常处理程序的嵌套执行
  25. 初始化中断描述符表
  26. 异常处理
  27. 中断处理
  28. 软中断、tasklet及下半部分
  29. 从中断和异常返回
  30. 第五章 内核同步
  31. 内核控制路径
  32. 什么时候同步是不必要的
  33. 同步原语
  34. 对内核数据结构的同步访问
  35. 避免竞争条件的实例
  36. 第六章 定时测量
  37. 硬时钟
  38. Linux计时体系结构
  39. CPU的分时(time-sharing)
  40. 更新时间和日期
  41. 更新系统统计数
  42. 软定时器(Software Timer)
  43. 与定时测量相关的系统调用
  44. 第七章 存储器管理
  45. 页框管理
  46. 存储器区管理
  47. 非连续存储器区管理
  48. 第八章 进程地址空间
  49. 进程的地址空间
  50. 内存描述符
  51. 线性区
  52. 缺页异常处理程序
  53. 创建和删除进程的地址空间
  54. 堆的管理
  55. 第九章 系统调用
  56. POSIX API和系统调用
  57. 系统调用处理程序及服务例程
  58. 内核封装例程
  59. 第十章 信号
  60. 信号的作用
  61. 产生信号
  62. 传递信号
  63. 与信号处理相关的系统调用
  64. 第十一章 进程调度
  65. 调度策略
  66. 调度算法
  67. 与调度相关的系统调用
  68. 第十二章 虚拟文件系统
  69. 虚拟文件系统(VFS)的作用
  70. VFS的数据结构
  71. 文件系统类型
  72. 文件系统安装
  73. 路径名查找
  74. VFS系统调用的实现
  75. 文件加锁
  76. 第十三章 管理I/O设备
  77. I/O体系结构
  78. 设备文件
  79. 设备驱动程序
  80. 块设备驱动程序
  81. 字符设备驱动程序
  82. 第十四章 磁盘高速缓存
  83. 页高速缓存
  84. 缓冲区高速缓存
  85. 第十五章 访问文件
  86. 读写文件
  87. 存储器映射
  88. 直接I/O传送
  89. 第十六章 对换:释放内存的方法
  90. 什么是对换
  91. 对换区
  92. 对换高速缓存
  93. 传送对换页
  94. 换出页
  95. 换入页
  96. 回收页框
  97. 第十七章 Ext2和Ext3文件系统
  98. Ext2的一般特征
  99. Ext2磁盘数据结构
  100. Ext2的内存数据结构
  101. 创建Ext2文件系统
  102. Ext2的方法
  103. 管理Ext2磁盘空间
  104. Ext3文件系统
  105. 第十八章 网络
  106. 主要的网络数据结构
  107. 与网络相关的系统调用
  108. 向网卡发送包
  109. 从网卡接收包
  110. 第十九章 进程通信
  111. 管道
  112. FIFO
  113. System V IPC
  114. 第二十章 程序的执行
  115. 可执行文件
  116. 可执行格式
  117. 执行字段
  118. exec函数
  119. 附录一 系统启动
  120. 附录二 模块
  121. 附录三 源码结构
  122. 参考书目
  123. 源代码索引
  124. 索引
书名:深入理解Linux内核(第二版)
译者:陈莉君, 冯锐, 牛欣源 译
国内出版社:中国电力出版社
出版时间:2004年06月
页数:808
书号:7-5083-1415-8
原版书出版商:O'Reilly Media
Daniel P. Bovet
 
Daniel P. Bovet于1968年在加州大学洛杉矶分校获得计算机科学博士学位,现任意大利罗马大学Tor Vergata分校教授。由于以前缺乏现代的、设计良好的操作系统源代码,他等待了25年后才得以用适当的方法讲授操作系统课程。现在,借助于廉价PC机和Linux,Dan和Marco能够在课程中讲述操作系统的所有方面,从系统启动到系统调整,并且可以布置有一定的深度、又能满足学生们需要的作业。(这些真正被宠坏了的年轻人在家中的PC机上工作,从来没有用过那些穿孔卡片。)实际上,Dan对Linus Torvalds及其同事们的成就非常着迷,他花费了几年的时间试图揭示Linux的一些秘密。自然,在所有这些工作之后,他会就其研究成果写一本书。
 
 
Marco Cesati
 
Marco Cesati分别于1992年和1995年在罗马大学La Sapienza分校获得数学学位和计算机科学博士学位。现任罗马大学Tor Vergata分校工程学院计算机科学系的助理研究员。过去,他曾经是该大学(作为博士研究生)及其他几家研究机构(作为咨询顾问)的系统管理员和Unix程序员。最近三年,他一直致力于教授学生们如何以新奇和有趣的方式修改Linux内核。