为你推荐
Linux内核分析及高级编程
扉页
版权页
内容简介
出版说明
前言
目录
第1章 Linux内核简介
1.1 Linux简介
1.1.1 Linux发展历史
1.1.2 常见的Linux介绍
1.2 Linux内核版本信息
1.2.1 Linux内核版本
1.2.2 GPL相关术语
1.3 Linux内核体系结构
1.4 源代码及组成
1.5 内核编译方法
1.6 小结
1.7 习题
第2章 内核探索工具
2.1 内核数据结构
2.1.1 链表
2.1.2 散列表
2.1.3 抽象接口
2.2 Linux汇编
2.2.1 Linux汇编简介
2.2.2 Linux汇编语法格式
2.2.3 程序实例
2.2.4 Linux汇编系统调用
2.2.5 GCC内联汇编
2.3 Linux C语言
2.3.1 C语言标准
2.3.2 函数库和系统调用
2.3.3 C语言编程风格
2.3.4 库和头文件的保存位置
2.4 GNU/GCC, GNU/GDB
2.4.1 运行gcc
2.4.2 gcc的主要选项
2.4.3 gdb介绍
2.4.4 gdb的常用命令
2.4.5 gdb使用范例
2.5 GNU make工具介绍
2.5.1 GNU make概述
2.5.2 makefile基本结构
2.5.3 makefile变量
2.5.4 GNU make的主要预定义变量
2.5.5 隐含规则
2.5.6 运行make
2.6 内核探测工具
2.6.1 objdump/readelf
2.6.2 hexdump
2.6.3 nm
2.6.4 objcopy
2.6.5 ar
2.7 小结
2.8 习题
第3章 Linux内核引导
3.1 BIOS和Open Firmware
3.1.1 BIOS
3.1.2 Open Firmware
3.2 Bootloader介绍
3.2.1 GRUB
3.2.2 LILO
3.2.3 U-Boot
3.3 系统引导过程
3.3.1 概述
3.3.2 系统启动
3.3.3 第一阶段引导加载程序
3.3.4 第二阶段引导加载程序
3.3.5 内核
3.3.6 init
3.4 小结
3.5 习题
第4章 进程管理
4.1 进程描述符及任务结构体
4.2 进程创建
4.2.1 概述
4.2.2 fork()函数
4.2.3 vfork()函数
4.2.4 clone()函数
4.2.5 do_fork()函数
4.2.6 exec()函数族
4.3 进程终止
4.3.1 概述
4.3.2 进程终止过程
4.3.3 进程的状态
4.4 线程的实现
4.5 工业监控场景应用
4.5.1 场景描述
4.5.2 处理流程
4.5.3 程序范例
4.6 小结
4.7 习题
第5章 进程调度
5.1 调度策略
5.1.1 优先级调度
5.1.2 时间片轮转
5.1.3 三种调度策略
5.2 调度算法分析
5.3 等待队列
5.4 抢占和上下文切换分析
5.4.1 上下文切换
5.4.2 抢占
5.5 调度相关系统调用
5.6 动态更改进程优先级程序实例
5.6.1 场景描述
5.6.2 处理流程
5.6.3 程序范例
5.7 小结
5.8 习题
第6章 系统调用
6.1 API、POSIX及C库
6.2 系统调用及实现分析
6.2.1 基本概念
6.2.2 系统调用简述
6.2.3 系统调用功能模块的初始化
6.2.4 内核服务
6.2.5 实现过程
6.2.6 调用流程实例
6.3 添加系统调用
6.4 增加系统调用场景应用
6.4.1 场景描述
6.4.2 添加流程
6.4.3 计算数值平方的系统调用添加实例
6.5 小结
6.6 习题
第7章 中断机制
7.1 中断
7.1.1 中断分类
7.1.2 中断请求
7.2 中断处理程序
7.3 管理中断的数据结构
7.3.1 结构体irq_desc_t
7.3.2 结构体irqaction
7.3.3 结构体hw_interrupt_type
7.4 注册中断处理程序
7.5 释放中断处理程序
7.6 编写中断处理程序
7.7 中断上下文
7.8 中断处理机制的实现
7.8.1 中断处理总体流程
7.8.2 中断处理具体过程
7.8.3 与中断处理相关的主要函数
7.8.4 下半部机制
7.8.5 软中断
7.8.6 tasklet
7.8.7 工作队列
7.9 中断处理程序场景应用
7.9.1 场景描述
7.9.2 处理流程
7.9.3 程序范例
7.10 小结
7.11 习题
第8章 内核同步机制
8.1 临界区和竞争条件
8.2 原子操作
8.3 自旋锁
8.4 读/写自旋锁
8.5 信号量
8.6 读/写信号量
8.7 完成变量
8.8 BKL
8.9 生产者/消费者场景应用
8.9.1 场景描述
8.9.2 处理流程
8.9.3 程序范例
8.10 小结
8.11 习题
第9章 定时器和时间管理机制
9.1 内核中的时间概念
9.2 节拍率
9.3 jiffies
9.4 硬时钟和定时器
9.4.1 硬时钟
9.4.2 定时器
9.5 时钟中断处理程序
9.6 内核时间管理函数
9.7 定时器
9.7.1 动态定时器机制实现原理
9.7.2 定时器竞争条件
9.7.3 定时器实现
9.8 定时显示信息的场景应用
9.8.1 场景描述
9.8.2 处理流程
9.8.3 程序范例
9.9 小结
9.10 习题
第10章 模块机制
10.1 模块概念
10.2 modutils介绍
10.2.1 insmod的使用
10.2.2 lsmod的使用
10.2.3 rmmod的使用
10.2.4 modprobe的使用
10.2.5 从kerneld到kmod
10.3 模块实现机制分析
10.3.1 基本概念
10.3.2 Linux内核模块实现机制
10.3.3 如何构建自己的模块
10.4 模块编程注意事项
10.4.1 内核中的并发
10.4.2 版本相关性
10.5 模块机制的改变对设备驱动的影响
10.5.1 获取内核版本
10.5.2 模块编译
10.5.3 模块装载时的版本检查
10.5.4 模块的初始化与退出
10.5.5 模块使用计数
10.5.6 模块输出的内核符号
10.5.7 模块的命令行输入参数
10.5.8 模块的许可证声明
10.6 增加模块应用场景
10.6.1 场景描述
10.6.2 处理流程
10.6.3 程序范例
10.7 小结
10.8 习题
第11章 内存管理机制
11.1 基本机制
11.1.1 页
11.1.2 区
11.2 伙伴算法
11.3 slab分配器
11.4 内存分配释放函数
11.5 虚拟内存
11.6 高速缓存
11.7 Linux页表
11.8 进程内存映射
11.9 内存管理应用实例
11.10 小结
11.11 习题
第12章 虚拟文件系统
12.1 和平共处通用文件系统接口
12.2 VFS对象及数据结构
12.3 超级块对象
12.3.1 超级块结构体
12.3.2 超级块操作
12.4 索引节点对象
12.4.1 索引节点结构体
12.4.2 索引节点操作
12.5 目录项对象
12.5.1 目录项结构体
12.5.2 目录项操作
12.6 文件对象
12.6.1 文件对象结构体
12.6.2 文件对象操作
12.7 VFS中挂载与卸载文件系统
12.7.1 登记文件系统
12.7.2 安装文件系统
12.7.3 卸载文件系统
12.8 小结
12.9 习题
第13章 I/O设备管理
13.1 I/O管理机制
13.2 块设备管理
13.2.1 缓冲区和缓冲区头
13.2.2 bio结构体
13.2.3 请求队列
13.3 驱动程序设计
13.3.1 驱动程序框架
13.3.2 块设备驱动程序
13.4 驱动程序设计实例
13.4.1 字符设备驱动程序
13.4.2 块设备驱动程序
13.5 小结
13.6 习题
参考文献
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜