Linux 内核设计的艺术(第2版):-图解Linux操作系统架构设计与实现原理-第2版

Linux 内核设计的艺术(第2版)
8.6
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
出版社: 机械工业出版社
2013-05
版次: 2
ISBN: 9787111421764
定价: 89.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 468页
正文语种: 简体中文
  •   长期以来,新设计团队一直在为设计一个自主的、有所突破和创新的操作系统而努力。为了让新的成员能更快、更容易地理解操作系统的精髓,从更高的角度去鉴赏和发现操作系统设计中的精妙与不足,团队成员以Linux 0.11内核为例,对操作系统的设计思想和实现原理进行了深刻地剖析,取得了十分好的效果,很好地培养和锻炼了团队成员对操作系统的驾驭能力。为了实现让国人也能设计出自己的操作系统的目标,本书作者团队无私地将他们的独特研究方式与研究成果奉献了出来,希望所有想要去深刻理解Linux内核和操作系统设计思想朋友能从中受益。  本书的特点在于,既不是空泛地讲理论,也不是单纯地从语法的角度去逐行地分析源代码,而是以操作系统在实际运行中的几个经典事件为主线,将理论和实际结合在一起,精准地再现了操作系统在实际运行中究竟是如何运转的。宏观上,大家可以领略Linux 0.11内核的设计指导思想,可以了解到各个环节是如何牵制并保持平衡的,以及软件和硬件之间是如何互相依赖、互相促进的;微观上,大家可以看到每一个细节的实现方式和其中的精妙之处。   新设计团队,一直在为设计一个自主的、有所突破和创新的操作系统而努力。为了让新的成员能更快、更容易地理解操作系统的精髓,从更高的角度去鉴赏和发现操作系统设计中的精妙与不足,团队成员以Linux0.11内核为例,对操作系统的设计思想和实现原理进行了深刻地剖析,取得了十分好的效果,很好地培养和锻炼了团队成员对操作系统的驾驭能力。为了实现让国人也能设计出自己的操作系统的目标,本书作者团队无私地将他们的独特研究方式与研究成果奉献了出来,希望所有想要深刻理解Linux内核和操作系统设计思想的朋友能从中受益。  《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理(第2版)》的特点在于,既不是空泛地讲理论,也不是单纯地从语法的角度去逐行地分析源代码,而是以操作系统在实际运行中的几个经典事件为主线,将理论和实际结合在一起,精准地再现了操作系统在实际运行中究竟是如何运转的。宏观上,大家可以领略Linux0.11内核的设计指导思想,可以了解到各个环节是如何牵制并保持平衡的,以及软件和硬件之间是如何互相依赖、互相促进的;微观上,大家可以看到每一个细节的实现方式和其中的精妙之处。 前  言第1章·从开机加电到执行main函数之前的过程1.1 启动BIOS,准备实模式下的中断向量表和中断服务程序1.1.1 BIOS的启动原理1.1.2 BIOS 在内存中加载中断向量表和中断服务程序1.2 加载操作系统内核程序并为保护模式做准备1.2.1 加载第一部分内核代码--引导程序(bootsect)1.2.2 加载第二部分内核代码--setup1.2.3 加载第三部分内核代码--system模块1.3 开始向32位模式转变,为main函数的调用做准备1.3.1 关中断并将system移动到内存地址起始位置0x00001.3.2 设置中断描述符表和全局描述符表1.3.3 打开A20,实现32位寻址1.3.4 为保护模式下执行head.s做准备1.3.5 head.s开始执行1.4 本章小结第2章·设备环境初始化及激活进程2.1 设置根设备、硬盘2.2 规划物理内存格局,设置缓冲区、虚拟盘、主内存2.3 设置虚拟盘空间并初始化2.4 内存管理结构mem_map初始化2.5 异常处理类中断服务程序挂接2.6 初始化块设备请求项结构2.7 与建立人机交互界面相关的外设的中断服务程序挂接2.7.1 对串行口进行设置2.7.2 对显示器进行设置2.7.3 对键盘进行设置2.8 开机启动时间设置2.9 初始化进程2.9.1 初始化进程2.9.2 设置时钟中断2.9.3 设置系统调用总入口2.10 初始化缓冲区管理结构2.11 初始化硬盘2.12 初始化软盘2.13 开启中断2.14 进程0由0特权级翻转到3特权级,成为真正的进程2.15 本章小结第3章·进程1的创建及执行3.1 进程1的创建3.1.1 进程0创建进程3.1.2 在task[64]中为进程1申请一个空闲位置并获取进程号3.1.3 调用copy_process函数3.1.4 设置进程1的分页管理3.1.5 进程1共享进程0的文件3.1.6 设置进程1在GDT中的表项3.1.7 进程1处于就绪态3.2 内核第一次做进程调度3.3 轮转到进程1执行3.3.1 进程1为安装硬盘文件系统做准备3.3.2 进程1格式化虚拟盘并更换根设备为虚拟盘3.3.3 进程1在根设备上加载根文件系统3.4 本章小结第4章·进程2的创建及执行4.1 打开终端设备文件及复制文件句柄4.1.1 打开标准输入设备文件4.1.2 打开标准输出、标准错误输出设备文件4.2 进程1创建进程2并切换到进程2执行4.3 加载shell程序4.3.1 关闭标准输入设备文件,打开rc文件4.3.2 检测shell文件4.3.3 为shell程序的执行做准备4.3.4 执行shell程序4.4 系统实现怠速4.4.1 创建update进程4.4.2 切换到shell进程执行4.4.3 重建shell4.5 本章小结第5章·文件操作5.1 安装文件系统5.1.1 获取外设的超级块5.1.2 确定根文件系统的挂接点5.1.3 将超级块与根文件系统挂接5.2 打开文件5.2.1 将进程的*filp[20]与file_table[64]挂接5.2.2 获取文件i节点5.2.3 将文件i节点与file_table[64]挂接5.3 读文件5.3.1 确定数据块在外设中的位置5.3.2 将数据块读入缓冲块5.3.3 将缓冲块中的数据复制到进程空间5.4 新建文件5.4.1 查找文件5.4.2 新建文件i节点5.4.3 新建文件目录项5.5 写文件5.5.1 确定文件的写入位置5.5.2 申请缓冲块5.5.3 将指定的数据从进程空间复制到缓冲块5.5.4 数据同步到外设的两种方法5.6 修改文件5.6.1 重定位文件的当前操作指针5.6.2 修改文件5.7 关闭文件5.7.1 当前进程的filp与file_table[64]脱钩5.7.2 文件i节点被释放5.8 删除文件5.8.1 对文件的删除条件进行检查5.8.2 进行具体的删除工作5.9 本章小结第6章·用户进程与内存管理6.1 线性地址的保护6.1.1 进程线性地址空间的格局6.1.2 段基址、段限长、GDT、LDT、特权级6.2 分页6.2.1 线性地址映射到物理地址6.2.2 进程执行时分页6.2.3 进程共享页面6.2.4 内核分页6.3 一个用户进程从创建到退出的完整过程6.3.1 创建str1进程6.3.2 str1进程加载的准备工作6.3.3 str1进程的运行、加载6.3.4 str1进程的退出6.4 多个用户进程同时运行6.4.1 进程调度6.4.2 页写保护6.5 本章小结第7章·缓冲区和多进程操作文件7.1 缓冲区的作用7.2 缓冲区的总体结构7.3 b_dev、b_blocknr及request的作用7.3.1 保证进程与缓冲块数据交互的正确性7.3.2 让数据在缓冲区中停留的时间尽可能长7.4 uptodate和dirt的作用7.4.1 b_uptodate的作用7.4.2 b_dirt的作用7.4.3 i_uptodate、i_dirt和s_dirt的作用7.5 count、 lock、wait、request的作用7.5.1 b_count的作用7.5.2 i_count的作用7.5.3 b_lock、*b_wait的作用7.5.4 i_lock、i_wait、s_lock、*s_wait的作用7.5.5 补充request的作用7.6 实例1:关于缓冲块的进程等待队列7.7 总体来看缓冲块和请求项7.8 实例2:多进程操作文件的综合实例7.9 本章小结第8章·进程间通信8.1 管道机制8.1.1 管道的创建过程8.1.2 管道的操作8.2 信号机制8.2.1 信号的使用8.2.2 信号对进程执行状态的影响8.3 本章小结第9章·操作系统的设计指导思想9.1 运行一个最简单的程序,看操作系统为程序运行做了哪些工作9.2 操作系统的设计指导思想--主奴机制9.2.1 主奴机制中的进程及进程创建机制9.2.2 操作系统的设计如何体现主奴机制9.3 实现主奴机制的三种关键技术9.3.1 保护和分页9.3.2 特权级9.3.3 中断9.4 建立主奴机制的决定性因素--先机9.5 软件和硬件的关系9.5.1 非用户进程--进程0、进程1、shell进程9.5.2 文件与数据存储9.6 父子进程共享页面9.7 操作系统的全局中断与进程的局部中断--信号9.8 本章小结结束语“新设计团队”简介
  • 内容简介:
      长期以来,新设计团队一直在为设计一个自主的、有所突破和创新的操作系统而努力。为了让新的成员能更快、更容易地理解操作系统的精髓,从更高的角度去鉴赏和发现操作系统设计中的精妙与不足,团队成员以Linux 0.11内核为例,对操作系统的设计思想和实现原理进行了深刻地剖析,取得了十分好的效果,很好地培养和锻炼了团队成员对操作系统的驾驭能力。为了实现让国人也能设计出自己的操作系统的目标,本书作者团队无私地将他们的独特研究方式与研究成果奉献了出来,希望所有想要去深刻理解Linux内核和操作系统设计思想朋友能从中受益。  本书的特点在于,既不是空泛地讲理论,也不是单纯地从语法的角度去逐行地分析源代码,而是以操作系统在实际运行中的几个经典事件为主线,将理论和实际结合在一起,精准地再现了操作系统在实际运行中究竟是如何运转的。宏观上,大家可以领略Linux 0.11内核的设计指导思想,可以了解到各个环节是如何牵制并保持平衡的,以及软件和硬件之间是如何互相依赖、互相促进的;微观上,大家可以看到每一个细节的实现方式和其中的精妙之处。
  • 作者简介:
      新设计团队,一直在为设计一个自主的、有所突破和创新的操作系统而努力。为了让新的成员能更快、更容易地理解操作系统的精髓,从更高的角度去鉴赏和发现操作系统设计中的精妙与不足,团队成员以Linux0.11内核为例,对操作系统的设计思想和实现原理进行了深刻地剖析,取得了十分好的效果,很好地培养和锻炼了团队成员对操作系统的驾驭能力。为了实现让国人也能设计出自己的操作系统的目标,本书作者团队无私地将他们的独特研究方式与研究成果奉献了出来,希望所有想要深刻理解Linux内核和操作系统设计思想的朋友能从中受益。  《Linux内核设计的艺术:图解Linux操作系统架构设计与实现原理(第2版)》的特点在于,既不是空泛地讲理论,也不是单纯地从语法的角度去逐行地分析源代码,而是以操作系统在实际运行中的几个经典事件为主线,将理论和实际结合在一起,精准地再现了操作系统在实际运行中究竟是如何运转的。宏观上,大家可以领略Linux0.11内核的设计指导思想,可以了解到各个环节是如何牵制并保持平衡的,以及软件和硬件之间是如何互相依赖、互相促进的;微观上,大家可以看到每一个细节的实现方式和其中的精妙之处。
  • 目录:
    前  言第1章·从开机加电到执行main函数之前的过程1.1 启动BIOS,准备实模式下的中断向量表和中断服务程序1.1.1 BIOS的启动原理1.1.2 BIOS 在内存中加载中断向量表和中断服务程序1.2 加载操作系统内核程序并为保护模式做准备1.2.1 加载第一部分内核代码--引导程序(bootsect)1.2.2 加载第二部分内核代码--setup1.2.3 加载第三部分内核代码--system模块1.3 开始向32位模式转变,为main函数的调用做准备1.3.1 关中断并将system移动到内存地址起始位置0x00001.3.2 设置中断描述符表和全局描述符表1.3.3 打开A20,实现32位寻址1.3.4 为保护模式下执行head.s做准备1.3.5 head.s开始执行1.4 本章小结第2章·设备环境初始化及激活进程2.1 设置根设备、硬盘2.2 规划物理内存格局,设置缓冲区、虚拟盘、主内存2.3 设置虚拟盘空间并初始化2.4 内存管理结构mem_map初始化2.5 异常处理类中断服务程序挂接2.6 初始化块设备请求项结构2.7 与建立人机交互界面相关的外设的中断服务程序挂接2.7.1 对串行口进行设置2.7.2 对显示器进行设置2.7.3 对键盘进行设置2.8 开机启动时间设置2.9 初始化进程2.9.1 初始化进程2.9.2 设置时钟中断2.9.3 设置系统调用总入口2.10 初始化缓冲区管理结构2.11 初始化硬盘2.12 初始化软盘2.13 开启中断2.14 进程0由0特权级翻转到3特权级,成为真正的进程2.15 本章小结第3章·进程1的创建及执行3.1 进程1的创建3.1.1 进程0创建进程3.1.2 在task[64]中为进程1申请一个空闲位置并获取进程号3.1.3 调用copy_process函数3.1.4 设置进程1的分页管理3.1.5 进程1共享进程0的文件3.1.6 设置进程1在GDT中的表项3.1.7 进程1处于就绪态3.2 内核第一次做进程调度3.3 轮转到进程1执行3.3.1 进程1为安装硬盘文件系统做准备3.3.2 进程1格式化虚拟盘并更换根设备为虚拟盘3.3.3 进程1在根设备上加载根文件系统3.4 本章小结第4章·进程2的创建及执行4.1 打开终端设备文件及复制文件句柄4.1.1 打开标准输入设备文件4.1.2 打开标准输出、标准错误输出设备文件4.2 进程1创建进程2并切换到进程2执行4.3 加载shell程序4.3.1 关闭标准输入设备文件,打开rc文件4.3.2 检测shell文件4.3.3 为shell程序的执行做准备4.3.4 执行shell程序4.4 系统实现怠速4.4.1 创建update进程4.4.2 切换到shell进程执行4.4.3 重建shell4.5 本章小结第5章·文件操作5.1 安装文件系统5.1.1 获取外设的超级块5.1.2 确定根文件系统的挂接点5.1.3 将超级块与根文件系统挂接5.2 打开文件5.2.1 将进程的*filp[20]与file_table[64]挂接5.2.2 获取文件i节点5.2.3 将文件i节点与file_table[64]挂接5.3 读文件5.3.1 确定数据块在外设中的位置5.3.2 将数据块读入缓冲块5.3.3 将缓冲块中的数据复制到进程空间5.4 新建文件5.4.1 查找文件5.4.2 新建文件i节点5.4.3 新建文件目录项5.5 写文件5.5.1 确定文件的写入位置5.5.2 申请缓冲块5.5.3 将指定的数据从进程空间复制到缓冲块5.5.4 数据同步到外设的两种方法5.6 修改文件5.6.1 重定位文件的当前操作指针5.6.2 修改文件5.7 关闭文件5.7.1 当前进程的filp与file_table[64]脱钩5.7.2 文件i节点被释放5.8 删除文件5.8.1 对文件的删除条件进行检查5.8.2 进行具体的删除工作5.9 本章小结第6章·用户进程与内存管理6.1 线性地址的保护6.1.1 进程线性地址空间的格局6.1.2 段基址、段限长、GDT、LDT、特权级6.2 分页6.2.1 线性地址映射到物理地址6.2.2 进程执行时分页6.2.3 进程共享页面6.2.4 内核分页6.3 一个用户进程从创建到退出的完整过程6.3.1 创建str1进程6.3.2 str1进程加载的准备工作6.3.3 str1进程的运行、加载6.3.4 str1进程的退出6.4 多个用户进程同时运行6.4.1 进程调度6.4.2 页写保护6.5 本章小结第7章·缓冲区和多进程操作文件7.1 缓冲区的作用7.2 缓冲区的总体结构7.3 b_dev、b_blocknr及request的作用7.3.1 保证进程与缓冲块数据交互的正确性7.3.2 让数据在缓冲区中停留的时间尽可能长7.4 uptodate和dirt的作用7.4.1 b_uptodate的作用7.4.2 b_dirt的作用7.4.3 i_uptodate、i_dirt和s_dirt的作用7.5 count、 lock、wait、request的作用7.5.1 b_count的作用7.5.2 i_count的作用7.5.3 b_lock、*b_wait的作用7.5.4 i_lock、i_wait、s_lock、*s_wait的作用7.5.5 补充request的作用7.6 实例1:关于缓冲块的进程等待队列7.7 总体来看缓冲块和请求项7.8 实例2:多进程操作文件的综合实例7.9 本章小结第8章·进程间通信8.1 管道机制8.1.1 管道的创建过程8.1.2 管道的操作8.2 信号机制8.2.1 信号的使用8.2.2 信号对进程执行状态的影响8.3 本章小结第9章·操作系统的设计指导思想9.1 运行一个最简单的程序,看操作系统为程序运行做了哪些工作9.2 操作系统的设计指导思想--主奴机制9.2.1 主奴机制中的进程及进程创建机制9.2.2 操作系统的设计如何体现主奴机制9.3 实现主奴机制的三种关键技术9.3.1 保护和分页9.3.2 特权级9.3.3 中断9.4 建立主奴机制的决定性因素--先机9.5 软件和硬件的关系9.5.1 非用户进程--进程0、进程1、shell进程9.5.2 文件与数据存储9.6 父子进程共享页面9.7 操作系统的全局中断与进程的局部中断--信号9.8 本章小结结束语“新设计团队”简介
查看详情
好书推荐 / 更多
Linux 内核设计的艺术(第2版)
胡迁作品:大象席地而坐
胡迁 著
Linux 内核设计的艺术(第2版)
OPUS作品(套装上下册)
[日]今敏 著;Mrs.X 译
Linux 内核设计的艺术(第2版)
近代能乐集(三岛由纪夫戏剧代表作,爱与美与死的永恒角力)
[日]三岛由纪夫 著;玖羽 译
Linux 内核设计的艺术(第2版)
上海字记:百年汉字设计档案
姜庆共、刘瑞樱 著
Linux 内核设计的艺术(第2版)
唐宋“古文运动”与士大夫文学
朱刚 著;王水照 编
Linux 内核设计的艺术(第2版)
行星
[英]贾尔斯•斯帕罗;Giles•Sparrow
Linux 内核设计的艺术(第2版)
马里琳·鲁滨逊作品基列三部曲:基列家书(2005年获得普利策小说奖,《卫报》21世纪百本伟大小说
玛丽莲·罗宾逊 著;李尧 译
Linux 内核设计的艺术(第2版)
特拉法尔加战役
朱利安·S.科贝特(Julian,S.,Corbett) 著;陈骆 译
Linux 内核设计的艺术(第2版)
大雪将至
[奥地利]罗伯特•泽塔勒 著
Linux 内核设计的艺术(第2版)
中国叙事学(第2版)
[美]浦安迪(Andrew H.Plaks) 著
Linux 内核设计的艺术(第2版)
肉体与石头:西方文明中的身体与城市
[美]理查德·桑内特 著;黄煜文 译
Linux 内核设计的艺术(第2版)
维多利亚女王:作为君王和女性的一生
[英]露西·沃斯利 著;张佩 译