一、课程介绍:
本课程详解Linux内核的组成、编程环境搭建、调试方法,并深度剖析内核的进程调度、内存管理、文件系统等子系统,后深入分析内核编程的并发、同步、中断、定时器、内存、DMA和cache等问题,最后结合实例讲解Linux驱动架构、I/O模型以及底层BSP的开发。
配合一套ARM V7-A架构的多核电路板进行实验,该电路板会配套赠送。另外,本课程也配套赠送畅销书《Linux设备驱动开发详解:基于最新的Linux4.0内核》一本。
本课程的布局安排是,每天上课约4小时,实验约2小时。
二、课程内容
第一天
第1章 进入Linux的精彩世界
1.1 Linux的特点、版本演进与发展方向
1.2 GNU与GPL
1.3 Linux系统组成、启动流程
1.4 开发环境构建
1.5 GNU工具链
1.6 文件系统组成
第2章 Linux内核进程调度
2.1 进程生命周期
2.2 进程调度算法
2.3 进程调度时机
2.4 Linux实时性
2.5 SMP、CPU热插拔与负载均衡
2.6 Cgroups
【实验课】
第二天
第3章 Linux内核内存管理
3.1 MMU系统
3.2 page与zone
3.3 buddy系统
3.4 slab、kmalloc
3.5 进程的内存消耗
3.6 page cache与swap
3.7 内存泄露剖析
第4章 Linux内核文件系统
4.1 虚拟文件系统
4.2 inode、dentry、file和superblock
4.3文件系统与block层
【实验课】
第三天
第5章 内核编程主要API剖析
5.1 同步与并发
5.2 等待队列
5.3 内核延时
5.4 内存申请和释放
5.5 定时器与高精度定时器
5.6 中断顶底半部
5.6.1 软中断
5.6.2 tasklet
5.6.3 工作队列
5.6.4 threaded_irq
5.7 中断及软中断负载均衡
5.8 Linux内核线程
5.9 IO与内存访问
5.10 DMA与cache一致性
第6章 Linux内核模块
6.1 内核模块init和exit
6.2 输入参数
6.3 输出参数
第7章 Linux内核调试方法
7.1 printk
7.2 Oops和panic
7.3 initcall_debug
7.4 suspend/resume debug
7.5 earlyprintk与low level debug
7.6 使用仿真器
7.7 proc和sys
7.8 grabserial
7.8 soft和hard lockup
第8章 Linux设备驱动模型
8.1 Linux设备分类
8.2 Sys,总线,设备和驱动
8.3 热插拔
8.4 电源管理
8.5 udev
【实验课】
第四天
第9章 设备驱动并发控制与I/O模型
9.1 Linux字符设备驱动结构
9.2 Linux设备驱动中的并发控制
9.3 Linux设备驱动中的阻塞与非阻塞I/O
9.4 Linux多路复用I/O
9.5 SignalIO与AIO
9.6 用户空间I/O与多线程设计原则
9.7 C10K问题
第10章 Linux复杂设备驱动
10.1 设备驱动分层框架
10.2 platform驱动
10.3 基于I2C/SPI/USB等总线的驱动
10.4 块设备驱动与块I/O调度
10.5 网络设备驱动
第11章 将Linux移植到一个新的SoC
11.1 early_printk
11.2 L2 cache
11.3 OS timer
11.4 clk tree
11.5 GPIO
11.6 pinmux
11.7 IRQ chip
11.8 DMA
11.9 MACH_INIT
11.10 设备树(device tree)
11.11 社区维护
【实验课】
三、主讲老师: 宋宝华老师。
四、主办单位:
中国高科技产业化研究会信号处理专家委员会
北京中际赛威文化发展有限公司
北京中际孚歌科技有限公司
北京中际荣威科技有限公司
五、研修时间:
2017年11月15-18日
六、研修地点:
上海(具体地点及路线图详见报到通知)
七、收费标准:
4800元/人,含课时费、教材、开发板、上课期间午餐等
八、报名咨询:010-64113137
联系报名
联系人:邴杰 手机:18611266160 扫描二维码加联系人微信