课程介绍
本课程是linux内核开发基础课程,它将引导您进入浩瀚无边的linux内核源码。
课程目标
- 了解linux内核源码的基本结构;
- 清楚驱动开发的整个过程;
- 掌握正确的阅读linux内核源码的方法;
- 正确使用linux内核的各类锁机制并从源码层面了解其底层实现原理;
- 深刻了解linux系统的内存管理机制;
授课风格
课程精炼无废话,干货多多。
适合人群
- linux内核开发人员
- linux应用开发人员
- 其他上层应用开发人员
- 想了解linux底层机制的其他IT人员
课程详情
1.编译linux内核和文件系统
2.打包文件系统并通过qemu启动linux系统
3.linux内核源码各个目录功能讲解
4.实现最简单的字符设备驱动
5.字符设备驱动的Makefile和驱动的插入和卸载
6.应用层的write()函数怎么样调用到驱动里的write()函数
7.Iinux内核源码编译过程
8.HelloDev驱动代码添加到内核源码树
9.内核空间和用户空间的概念以及内核空间和用户空间的数据拷贝
10.X86段页式内存管理和页表映射机制
11.Linux内核同步场景以及解决之道
12.Linux内核同步机制之semaphore使用
13.Semaphore的内核源码实现
14.Atomic的使用方法
15.Atomic的内核源码实现
16.Spinlock的说明和使用方法
17.Spinlock在UP下的内核源码实现
18.Spinlock在SMP下的内核源码实现
19.Rw spinlock、seqlock、rcu对比
20.Char设备驱动到platform驱动架构的华丽转身
21.从源代码角度分析platform设备和驱动的匹配原则
22.页框和伙伴算法以及slab管理机制
23.Linux内存管理和分配方法概述
24.Linux内核kmalloc()的源码实现(上)
25.Linux内核kmalloc()的源码实现(下)
26.进程虚拟地址空间管理机制
27.同一个进程的不同线程如何共享虚拟地址空间
28.mmp()函数的内核实现
29.进程的用户栈和内核栈