主题 |
内容 |
Linux 内核发展演变与开发模式
|
patch 和邮件列表
官方源代码演进
商业发行版版本维护
源代码与项目管理工具
内核代码检查和check-in |
Linux 内核进程调度
|
内核总体结构
进程调度
Linux 进程调度机制分析
调度时机与抢占调度
Linux 实时性与实时Linux |
Linux 内核内存管理
|
Linux 进程0~4GB 内存的整体分布
进程内核空间(3GB 以上)内存分布
进程用户空间(3GB 以下)内存分布
page、zone、slab、kmalloc、vmalloc、mmap
slab
DMA 缓冲区
page cache
page fault |
Linux 内核文件系统
|
虚拟文件系统
磁盘与Flash 文件系统
superblock, inode, dentry 和file
EXT2 和EXT3 文件系统
Flash 文件系统与MTD |
Linux 内核系统调用
|
Linux 系统调用的工作原理
系统调用的进入和退出
新增一个系统调用 |
Linux 内核网络协议栈
|
Linux 网络协议栈的实现原理
Socket 层
系统调用层面
网卡数据收发流程 |
Linux 内核编程
|
内核编程主要API |
同步与并发
等待队列
内核延时
内存申请和释放 |
定时器 |
中断顶底半部
软中断
tasklet
工作队列
threaded_irq |
Linux
内核线程
IO 与内存访问
DMA 与cache 一致性 |
|
Linux 内核模块开发
|
内核模块组成
编写一个内核模块
加载和卸载内核模块
内核模块进入文件系统 |
Linux 内核调试方法
|
printk
Oops 和panic
内核debug 选项
gdb、kgdb 和kdb
使用仿真器 |
Linux BSP 构建
|
BSP
的组成部分
plat/mach 各组件的实现 |
内核节拍
中断管理
时钟
GPIO
DMA
IO 内存映射 |
设备与资源
platform device、resource 和plarform data
uart/spi/i2c 等设备板级resource
device tree |
|