Linux内核设计的艺术(第2版)

来源:互联网 发布:网络调度表 编辑:程序博客网 时间:2024/05/24 15:38
http://book.51cto.com/art/201306/398294.htm


本书的第1版广获好评,版权被中国台湾和美国两家大型出版社引进,第2版根据读者的反馈和作者对操作系统的最新研究成果对第1版进行了大幅优化和重写,使其内容质量更上一层楼。本书在众多关于Linux内核的书中独树一帜,它在世界范围内首次提出并阐述了操作系统设计的核心指导思想——主奴机制,这是所有操作系统研究者的一笔宝贵财富。它也是一本能真正引导我们较为容易地、极为透彻地理解Linux内核的经典之作,也可能是当前唯一能从本质上指引我们去设计和开发拥有自主知识产权的操作系统的著作。本书的最大特点是它的写作方式和内容组织方式与同类书完全不同。它在深刻地分析了传统讲解方法的利弊之后,破旧立新,从认知学的角度开创了一种全新的方式。以操作系统的真实运行过程为主线,结合真实的内核源代码、300余幅精确的内核运行时序图和具有点睛之妙的文字说明,对操作系统从开机加电到系统完全准备就绪,及运行用户程序的整个过程进行了系统而完整地分析,深刻地揭示了其间每一个动作的设计意图和实现原理,完美地再现了操作系统设计者的设计思路。阅读本书就如同跟随着操作系统设计者一起去思考,我们会在阅读的过程中发现Linux内核设计的精妙,会发现原来处处都“暗藏玄机”,哪怕是一行很短的代码。

前言与目录
  • 前言(1)
  • 前言(2)
  • 目录


  • 第1章 从开机加电到执行main函数之前的过程
  • 1.1 启动BIOS,准备实模式下的中断向
  • 1.1.1 BIOS的启动原理
  • 1.1.2 BIOS 在内存中加载中断向量表和
  • 1.2.1 加载第一部分内核代码——引导
  • 1.2.2 加载第二部分内核代码——setup
  • 1.2.2 加载第二部分内核代码——setup
  • 1.2.2 加载第二部分内核代码——setup
  • 1.2.3 加载第三部分内核代码——syste
  • 1.2.3 加载第三部分内核代码——syste
  • 1.3.1 关中断并将system移动到内存地
  • 1.3.2 设置中断描述符表和全局描述符
  • 1.3.3 打开A20,实现32位寻址
  • 1.3.4 为保护模式下执行head.s做准备
  • 1.3.4 为保护模式下执行head.s做准备
  • 1.3.5 head.s开始执行(1)
  • 1.3.5 head.s开始执行(2)
  • 1.3.5 head.s开始执行(3)
  • 1.3.5 head.s开始执行(4)
  • 1.3.5 head.s开始执行(5)
  • 1.3.5 head.s开始执行(6)
  • 1.3.5 head.s开始执行(7)
  • 1.3.5 head.s开始执行(8)
  • 1.3.5 head.s开始执行(9)
  • 1.4 本章小结


  • 第2章 设备环境初始化及激活进程0
  • 2.1 设置根设备、硬盘
  • 2.2 规划物理内存格局,设置缓冲区、
  • 2.3 设置虚拟盘空间并初始化
  • 2.4 内存管理结构mem_map初始化
  • 2.5 异常处理类中断服务程序挂接(1)
  • 2.5 异常处理类中断服务程序挂接(2)
  • 2.6 初始化块设备请求项结构
  • 2.7 与建立人机交互界面相关的外设的
  • 2.7.1 对串行口进行设置
  • 2.7.2 对显示器进行设置
  • 2.7.3 对键盘进行设置
  • 2.8 开机启动时间设置
  • 2.9 初始化进程0
  • 2.9.1 初始化进程0
  • 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创建进程1(1)
  • 3.1.1 进程0创建进程1(2)
  • 3.1.1 进程0创建进程1(3)
  • 3.1.2 在task[64]中为进程1 申请一个
  • 3.1.3 调用copy_process函数(1)
  • 3.1.3 调用copy_process函数(2)
  • 3.1.4 设置进程1的分页管理(1)
  • 3.1.4 设置进程1的分页管理(2)
  • 3.1.5 进程1共享进程0的文件
  • 3.1.6 设置进程1在GDT中的表项
  • 3.1.7 进程1处于就绪态(1)
  • 3.1.7 进程1处于就绪态(2)
  • 3.2 内核第一次做进程调度(1)
  • 3.2 内核第一次做进程调度(2)
  • 3.3 轮转到进程1执行
  • 3.3.1 进程1为安装硬盘文件系统做准备
  • 3.3.1 进程1为安装硬盘文件系统做准备
  • 3.3.1 进程1为安装硬盘文件系统做准备
  • 3.3.1 进程1为安装硬盘文件系统做准备
  • 3.3.1 进程1为安装硬盘文件系统做准备
  • 3.3.1 进程1为安装硬盘文件系统做准备
  • 3.3.1 进程1为安装硬盘文件系统做准备
  • 3.3.1 进程1为安装硬盘文件系统做准备
  • 3.3.1 进程1为安装硬盘文件系统做准备
  • 3.3.1 进程1为安装硬盘文件系统做准备
  • 3.3.1 进程1为安装硬盘文件系统做准备
  • 3.3.1 进程1为安装硬盘文件系统做准备
  • 3.3.1 进程1为安装硬盘文件系统做准备
  • 3.3.2 进程1格式化虚拟盘并更换根设备
  • 3.3.2 进程1格式化虚拟盘并更换根设备
  • 3.3.3 进程1在根设备上加载根文件系统
  • 3.3.3 进程1在根设备上加载根文件系统
  • 3.3.3 进程1在根设备上加载根文件系统
  • 3.3.3 进程1在根设备上加载根文件系统
  • 3.3.3 进程1在根设备上加载根文件系统
  • 3.3.3 进程1在根设备上加载根文件系统
  • 3.3.3 进程1在根设备上加载根文件系统
  • 3.4 本章小结


  • <script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
    阅读(889) | 评论(0) | 转发(0) |
    0

    上一篇:卸载,弹出,安全移除驱动器 的区别

    下一篇:硬盘分区的c盘在外圈还是内圈

    相关热门文章
    • linux 常见服务端口
    • xmanager 2.0 for linux配置
    • 【ROOTFS搭建】busybox的httpd...
    • openwrt中luci学习笔记
    • 什么是shell
    • linux dhcp peizhi roc
    • 关于Unix文件的软链接
    • 求教这个命令什么意思,我是新...
    • sed -e "/grep/d" 是什么意思...
    • 谁能够帮我解决LINUX 2.6 10...
    给主人留下些什么吧!~~