更新时间:2018-12-30 19:20:23
封面
版权信息
推荐序
前言
第1章 内核模块
1.1 内核模块的文件格式
1.2 EXPORT_SYMBOL的内核实现
1.3 模块的加载过程
1.4 本章小结
第2章 字符设备驱动程序
2.1 应用程序与设备驱动程序互动实例
2.2 struct file_operations
2.3 字符设备的内核抽象
2.4 设备号的构成与分配
2.5 字符设备的注册
2.6 设备文件节点的生成
2.7 字符设备文件的打开操作
2.8 本章小结
第3章 分配内存
3.1 物理内存的管理
3.2 页面分配器(page allocator)
3.3 slab分配器(slab allocator)
3.4 内存池(mempool)
3.5 虚拟内存的管理
3.6 per-CPU变量
3.7 本章小结
第4章 互斥与同步
4.1 并发的来源
4.2 local_irq_enable与local_irq_disable
4.3 自旋锁
4.4 信号量(semaphore)
4.5 互斥锁mutex
4.6 顺序锁seqlock
4.7 RCU
4.8 原子变量与位操作
4.9 等待队列
4.10 完成接口completion
4.11 本章小结
第5章 中断处理
5.1 中断的硬件框架
5.2 PIC与软件中断号
5.3 通用的中断处理函数
5.4 do_IRQ函数
5.5 struct irq_chip
5.6 struct irqaction
5.7 irq_set_handler
5.8 handle_irq_event
5.9 request_irq
5.10 中断处理的irq_thread机制
5.11 free_irq
5.12 SOFTIRQ
5.13 irq的自动探测
5.14 中断处理例程
5.15 中断共享
5.16 本章小结
第6章 延迟操作
6.1 tasklet
6.2 工作队列work queue
6.3 本章小结
第7章 设备文件的高级操作
7.1 ioctl文件操作
7.2 字符设备的I/O模型
7.3 同步阻塞型I/O
7.4 同步非阻塞型I/O
7.5 异步阻塞型I/O
7.6 异步非阻塞型I/O
7.7 驱动程序的fsync例程
7.8 fasync例程
7.9 llseek例程
7.10 访问权能
7.11 本章小结
第8章 时间管理
8.1 jiffies
8.2 延时操作
8.3 内核定时器
8.4 本章小结
第9章 Linux设备驱动模型
9.1 sysfs文件系统
9.2 kobject和kset
9.3 总线、设备与驱动
9.4 class
9.5 本章小结
第10章 内存映射与DMA
10.1 设备缓存与设备内存
10.2 mmap
10.3 DMA
10.4 本章小结
第11章 块设备驱动程序
11.1 块子系统初始化
11.2 ramdisk源码实例
11.3 块设备号的注册与管理
11.4 block_device
11.5 struct gendisk
11.6 struct hd_struct
11.7 用alloc_disk分配gendisk对象
11.8 向系统添加一个块设备add_disk
11.9 block_device_operations
11.10 块设备文件的打开
11.11 blk_init_queue
11.12 blk_queue_make_request