南京
杭州
上海
025-87787966    0571-88257871

Linux内核&驱动深度剖析与最佳实践

发布日期: 2017/10/10 13:46:13

课程大纲:
一、进入 Linux 的精彩世界
    1、Linux 的特点、版本演进与发展方向
    2、GNU 与 GPL
    3、Linux 系统组成、启动流程
    4、开发环境构建
    5、GNU 工具链
    6、文件系统组成
二、Linux 内核进程调度
    1、进程生命周期
    2、进程调度算法
    3、进程调度时机
    4、Linux实时性
    5、SMP、CPU 热插拔与负载均衡
    6、Cgroups
三、Linux 内核内存管理
    1、MMU 系统
    2、page 与 zone
    3、buddy 系统
    4、slab、kmalloc
    5、进程的内存消耗
    6、page cache 与 swap
    7、内存泄露剖析
四、Linux 内核文件系统
    1、虚拟文件系统
    2、inode、dentry、file 和 superblock
    3、文件系统与 block 层
五、内核编程主要 API 剖析
    1、同步与并发
    2、等待队列
    3、内核延时
    4、内存申请和释放
    5、定时器与高精度定时器
    6、中断顶底半部
       —— 软中断
       —— tasklet
       —— 工作队列
       —— threaded_irq
    7、中断及软中断负载均衡
    8、Linux内核线程
    9、IO 与内存访问
    10、DMA 与 cache 一致性
六、Linux 内核模块
    1、内核模块 init 和 exit
    2、输入参数
    3、输出参数
七、Linux 内核调试方法
    1、printk
    2、Oops 和 panic
    3、initcall_debug
    4、suspend/resumedebug
    5、earlyprintk与 low level debug
    6、使用仿真器
    7、proc 和 sys
    8、grabserial
    9、soft 和hard lockup
八、Linux 设备驱动模型
    1、Linux设备分类
    2、Sys,总线,设备和驱动
    3、热插拔
    4、电源管理
    5、udev
九、设备驱动并发控制与 I/O 模型
    1、Linux 字符设备驱动结构
    2、Linux 设备驱动中的并发控制
    3、Linux 设备驱动中的阻塞与非阻塞 I/O
    4、Linux 多路复用 I/O
    5、Signal IO 与 AIO
    6、用户空间 I/O 与多线程设计原则
    7、C10K 问题
十、Linux 复杂设备驱动
    1、设备驱动分层框架
    2、platform 驱动
    3、基于 I2C/SPI/USB 等总线的驱动
    4、块设备驱动与块 I/O 调度
    5、网络设备驱动
十一、将 Linux 移植到一个新的 SoC
    1、early_printk
    2、L2 cache
    3、OS  timer
    4、clk  tree
    5、GPIO
    6、pinmux
    7、IRQ  chip
    8、DMA
    9、MACH_INIT
    10、设备树(device tree)
    11、社区维护
课程周期:
24课时(45分/课时)

相关培训课程

TRAINING COURSE
无标题文档