嵌入式 Linux内核开发培训
嵌入式 Linux内核开发培训
培训对象:对Linux内核感兴趣,期望从事Linux内核和Linux驱动开发的工程师。期望从事Android底层开发的工程师。
培训目标:
通过本课程的学习, 学员可以学习有关嵌入式Linux内核的以下原理和实践:
内核发展演变与开发模式
内核进程调度
内核内存管理
内核文件系统
内核系统调用
内核网络协议栈
内核编程
内核模开发
内核调试方法
BSP 构建
培训大纲:
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