本书深入浅出地剖析了Linux内核源代码的核心概念与实现机制,适合希望深入了解操作系统底层原理的技术人员阅读。
深入分析Linux内核源码
前言
第一章 走进Linux
1.1 GNU与Linux的成长
1.2 Linux的开发模式和运作机制
1.3走进Linux内核
1.3.1 Linux内核的特征
1.3.2 Linux内核版本的变化
1.4 分析Linux内核的意义
1.4.1 开发适合自己的操作系统
1.4.2 开发高水平软件
1.4.3 有助于计算机科学的教学和科研
1.5 Linux内核结构
1.5.1 Linux内核在整个操作系统的地位
1.5.2 Linux内核的作用
1.5.3 Linux内核的抽象结构
1.6 Linux内核源代码
1.6.1 多版本的内核源代码
1.6.2 Linux内核源代码的布局
1.6.3 从何处开始阅读源码
1.7 Linux内核源代码分析工具
1.7.1 Linux超文本交叉引用工具
1.7.2 Windows平台下的源代码阅读器Source Insight
第二章 Linux运行的硬件基础
2.1 i386寄存器
2.1.1 通用寄存器
2.1.2 段寄存器
2.1.3 状态和控制寄存器
2.1.4 系统地址寄存器
2.1.5 调试与测试寄存器
2.2 内存地址
2.3 段机制与描述符
2.3.1 段机制
2.3.2 描述符的概念
2.3.3 系统段描述符
2.3.4 描述符表
2.3.5 选择器与描述符表寄存器
2.3.6 描述符投影寄存若
2.3.7 Linux中的段
2.4 分页机制
2.4.1 分页机构
2.4.2 页面高速缓存
2.5 Linux中的分页机制
2.5.1 与页面相关的数据结构及宏定义
2.5.2 对页目录和页表的处理
2.6 Linux中的汇编语言
2.6.1 AT&T与Intel汇编语言比较
2.6.2 AT&T汇编语言的相关知识
2.6.3 GCC嵌入式汇编
2.6.4 Intel 386汇编指令摘要
第三章 中断机制
3.1 中断基本概念
3.1.1 中断向量
3.1.2 外设可屏蔽中断
3.1.3 异常和非屏蔽中断
3.1.4 中断描述符表
3.1.5 相关汇编指令
3.2 中断描述符表的初始化
3.2. 1 外部中断向量设置
3.2.2 中断描述符表IDT预初始化
3.2.3 中断向量表最终初始化
3.3 异常处理
3.3.1 在内核栈中保存寄存器的值
3.3.2 中断请求队列初始化
3.3.3 中断请求队列的数据结构
3.4 中断处理
3.4.1 硬件中断和异常处理
3.4.2 Linux对中断和异常的管理
3.4.5 用于操作套接字缓冲区的核心函数
第四章 设备驱动程序
4.1 概述
4.1.1 I/O软件
4.1.2 设备驱动程序
4.2 设备驱动基础
4.2.1 I/O端口
4.2.2 I/O接口及设备控制器
4.2.3 设备文件
4.2.5 驱动DMA工作
4.3 块设备驱动程序
4.3.1 注册块设备驱动程序
4.3.2 通过缓冲区交换数据的块设备
4.3.6 硬盘驱动程序实现
第五章 启动系统
5.1 初始化流程
5.1.1 系统加电或复位
5.1.2 BIOS启动
5.1.3 Boot Loader
5.1.4 操作系统的初始化
5.2 初始化的任务
5.2.1 处理器对初始化的影响
5.2.2 其他硬件设备对处理器的影响
第六章 Linux的Boot Loader
6.1 软盘结构
6.1 硬盘结构
6.3 Boot