Linux内核简介
- Linux系统架构
- 内核的启动原理
Linux内核编译
- Linux内核编译环境
- 内核裁减
- 使用自定义内核
硬件驱动与内核模块
- 内核模块管理
- 硬件的设备文件
- udev的工作原理
内核模块编译
- Eclipse集成GNU开发工具
- 内核模块开发环境
- hello world
字符设备驱动
- 认识linux的字符设备
- 字符设备驱动框架
- 字符设备驱动解析
- 定制字符设备驱动
内核代码的调试
- 内核的调试开关
- 打印调试
- 查询调试
- kdump
并发机制和临界区
- Linux的多进程模型
- 临界区
- 信号量和互斥锁
- 自旋锁
高级字符设备操作
- ioctl
- I/O阻塞
- poll和select
时间和延时
- 时间的计算
- 当前时间
- 延时
- 内核定时器
- tasklets
内存分配
- kmalloc工作原理
- cache管理
- vmalloc及类似函数
- CPU相关变量
- 大缓冲区
与硬件的通信
- I/O端口和I/O内存
- 访问I/O端口
内存映射和DMA
- 内存管理和mmap
- Direct I/O
- 直接内存访问
中断处理
- 任务抢占模式
- 中断处理程序
- 中断的顶半部和底半部
- 中断共享
- 中断驱动的I/O
内核的数据类型
- 接口特定的数据类型
- List
- 内核特定的宏
PCI设备驱动
- PCI总线
- PC/104
- 其他PC总线
USB设备驱动
- USB设备和主机
- USB和sysfs
- USB urbs
- USB驱动框架
Linux设备驱动模型
- Kobjects,Ksets和内核子系统
- 底层Sysfs操作
- 热插拔事件
- 总线,设备和驱动
文件系统驱动
- vfs驱动框架
- ext3文件系统驱动
- 添加删除记录
块设备驱动
- 块设备操作
- 请求队列
网络设备驱动
- 网络设备驱动框架
- 数据的收发和ioctl
- 中断处理
- Socket缓冲区
- 流量统计