
教学优势
  曙海教育的课程培养了大批受企业欢迎的工程师。大批企业和曙海
     建立了良好的合作关系。曙海教育的课程在业内有着响亮的知名度。
本课程,秉承二十一年积累的教学品质,以项目实现为导向,授课讲师将会与您分享设计的全流程及工具的综合使用技巧、经验。
课程简介:
本课程详解Linux内核的组成、编程环境搭建、调试方法,并深度剖析内核的进程调度、内存管理、文件系统等子系统,后深入分析内核编程的并发、同步、中断、定时器、内存、DMA和cache等问题,最后结合实例讲解Linux驱动架构、I/O模型以及底层BSP的开发。
课程内容:
| 模块名称 | 课程内容 | 
| 进入Linux的精彩世界 | · Linux的特点、版本演进与发展方向 · GNU与GPL · Linux系统组成、启动流程 · 开发环境构建 · GNU工具链 · 文件系统组成 | 
| Linux内核进程调度 | · 进程生命周期 · 进程调度算法 · 进程调度时机 · Linux实时性 · SMP、CPU热插拔与负载均衡 · Cgroups | 
| 【实验课】 | · 【实验课】 | 
| Linux内核内存管理 | · MMU系统 · page与zone · buddy系统 · slab、kmalloc · 进程的内存消耗 · page cache与swap · 内存泄露剖析 | 
| Linux内核文件系统 | · 虚拟文件系统 · inode、dentry、file和superblock · 文件系统与block层 | 
| 【实验课】 | · 【实验课】 | 
| 内核编程主要API剖析 | · 同步与并发 · 等待队列 · 内核延时 · 内存申请和释放 · 定时器与高精度定时器 · 中断顶底半部 · · 软中断 · tasklet · 工作队列 · threaded_irq · 中断及软中断负载均衡 · Linux内核线程 · IO与内存访问 · DMA与cache一致性 | 
| Linux内核模块 | · 内核模块init和exit · 输入参数 · 输出参数 | 
| Linux内核调试方法 | · printk · Oops和panic · initcall_debug · suspend/resume debug · earlyprintk与low level debug · 使用仿真器 · proc和sys · grabserial · soft和hard lockup | 
| Linux设备驱动模型 | · Linux设备分类 · Sys,总线,设备和驱动 · 热插拔 · 电源管理 · udev | 
| 【实验课】 | · 【实验课】 | 
| 设备驱动并发控制与I/O模型 | · Linux字符设备驱动结构 · Linux设备驱动中的并发控制 · Linux设备驱动中的阻塞与非阻塞I/O · Linux多路复用I/O · Signal IO与AIO · 用户空间I/O与多线程设计原则 · C10K问题 | 
| Linux复杂设备驱动 | · 设备驱动分层框架 · platform驱动 · 基于I2C/SPI/USB等总线的驱动 · 块设备驱动与块I/O调度 · 网络设备驱动 | 
| 将Linux移植到一个新的SoC | · early_printk · L2 cache · OS timer · clk tree · GPIO · pinmux · IRQ chip · DMA · MACH_INIT · 设备树(device tree) · 社区维护 | 
| 
 | · |