**天 |
主题 |
基本概述、源代码以及内核的编译与启动 |
大纲 |
l Linux内核介绍
l 内核源代码
l 内核的编译和启动 |
实验:
使用工具对内核源代码进行查找和搜索
使用命令行和Linux命令对内核源代码进行遍历和索引
获取内核源代码和patch的使用
定制自己的内核并引导系统启动(本地启动和NFS启动) |
第二天 |
主题 |
模块、内存管理、IO与调试 |
大纲 |
l Linux内核模块
l Linux的内存管理
l I/O内存与端口
l 字符设备驱动
l Linux的调试技术 |
实验:
完成**个内核模块
完成一个简单的字符设备驱动,包括读写等操作(如RTC设备) |
第三天 |
主题 |
进程、锁机制 |
大纲 |
l 进程,调度,睡眠与中断
l Linux内核的锁机制
n 并发访问的问题
n 锁原语
n 原子操作
n 典型的锁问题 |
实验:
在一个设备驱动程序中添加中断处理和睡眠机制
在一个设备驱动中观察缺乏锁所产生的问题并将其解决 |
第四天 |
主题 |
Mmap、驱动开发 |
大纲 |
l mmap
l Linux内核驱动模型
l DMA与PCI驱动
l 内核的启动细节
l 网卡、USB、串口驱动 |
实验:
实现一个PCI
完成一个可以工作的网卡或USB或串口驱动程序 |
第五天 |
主题 |
移植、电源管理、优化 |
大纲 |
l Linux移植
l Linux的电源管理
l 如何与社区协同工作
l 使用git进行内核的源代码管理
l 优化Linux |
实验:
suspend/resume,CPU的频率调节,使用powertop监控系统的电源消耗
使用git对内核源代码进行各种操作 |