Linux 内核教学¶
本文档包含一系列 Linux 内核主题的课程和实验。课程侧重于理论和 Linux 内核探索。
实验侧重于设备驱动程序主题,文档风格类似“howto”。每个主题分两部分:
- 主题概述,包含概述、主要抽象概念、简单示例和对 API 的指引。
- 实践部分,包含几个应由学生解决的练习;为了使学生专注于当下的主题,学生会得到一个起始编码框架和深入的解决练习的技巧提示。
本文档内容基于布加勒斯特理工大学自动控制与计算机学院计算机科学与工程系的 “操作系统 2” 课程。
你可以在 https://github.com/linux-kernel-labs-zh 获取最新版本。
在你的主机上安装 docker-compose 后,可以从源代码构建文档:
cd tools/labs && make docker-docs
然后用你的浏览器中打开 Documentation/output/labs/index.html。
或者,你可以直接在主机上构建(参见 tools/labs/docs/Dockerfile 中的依赖项):
cd tools/labs && make docs
- 操作系统 2
- SO2——基本规则和评分
- SO2 课程 01——课程概要以及 Linux 内核介绍
- SO2 课程 02——系统调用
- SO2 课程 03——进程
- SO2 课程 04——中断
- SO2 课程 05——对称多处理
- SO2 课程 06——地址空间
- SO2 课程 07——内存管理
- SO2 课程 08——文件系统管理
- SO2 课程 09——内核调试
- SO2 课程 10——网络
- SO2 课程 11——体系结构层
- SO2 课程 12——虚拟化
- SO2 实验 01——介绍
- SO2 实验 02——内核 API
- SO2 实验 03——字符设备驱动
- SO2 实验 04——I/O 访问和中断
- SO2 实验 05——延迟工作
- SO2 实验 06——内存映射
- SO2 实验 07——块设备驱动
- SO2 实验 08——文件系统驱动(第一部分)
- SO2 实验 09——文件系统驱动程序(第二部分)
- SO2 实验 10——网络
- SO2 实验 11——ARM 内核开发
- SO2 实验 12——内核分析
- 合作
- 作业 0——内核 API
- 作业 1——基于 Kprobe 的跟踪器
- 作业 2——驱动 UART
- 作业 3——软件 RAID
- 作业 4——SO2 传输协议
- 作业 7——使用 KVM 的 SO2 虚拟机管理器
- 基础设施
- 介绍
- 内核模块
- 内核 API
- 字符设备驱动程序
- I/O 访问和中断
- 延迟工作
- 块设备驱动程序
- 文件系统驱动程序(第一部分)
- 文件系统驱动程序(第二部分)
- 网络
- ARM 内核开发
- 内存映射
- Linux 设备模型
- 内核分析