Linux内核深入解析: 开发者必读的内核内部机制, 架构与开发指南 | Introduction to Kernel Development
揭开 Linux 内核的神秘面纱:开发者必读的内核内部机制、架构与开发指南。
您将会学到
通过对各种内核子系统的基本了解,学习 Linux 内核的工作原理
在 VirtualBox 虚拟机中搭建个人开发环境,探索 Linux 内核开发
学习与现代化操作系统相关的重要概念
学习如何从官方 Linux 内核源码中自定义编译并启动二进制镜像
学习如何创建一个使用自定义构建的 Linux 内核和 busybox 作为用户空间的 Linux 可启动镜像
学习如何用 busybox 作为用户空间来创建自定义的 initramfs 镜像
学习如何浏览内核源代码,了解新功能和 API
学习如何编写 Linux 内核模块,并理解可加载内核模块的开发流程
学习如何通过可加载内核模块接口 procfs 和 debugfs 进行调试
学习 Linux 内核开发的技巧、技术和最佳实践,成为熟练的 Linux 内核开发者
学习如何制作可提交至官方 Linux 内核社区的补丁
要求
使用 C 语言进行编程技巧
关于 Linux 命令行界面的知识 – 包括使用 bash shell、编写基本的 shell 脚本以及管理文件和进程的基本 Linux 命令
对计算机硬件架构的基本认识
一台 x86 架构(Intel/AMD)的笔记本电脑或台式机,内存至少 16GB,存储空间至少 128GB,且支持运行 VirtualBox 虚拟机
一个可工作的操作系统设置 – 支持 Windows 10+、MacOS (x86) 或任何桌面 Linux 发行版,并安装了最新版本的 VirtualBox。
描述
本课程将全面介绍 Linux 内核的设计与架构,旨在帮助您掌握理论知识和实践技能。课程将从操作系统的基础概念和术语入手,为您奠定坚实基础。随后,您将深入探索 Linux 内核的复杂运作机制,学习如何从源代码构建内核,并创建一个功能完整、可自定义启动的 Linux 系统。课程还将指导您设置 BusyBox 用户空间环境,以完成操作系统,让您获得对系统内部机制的直观理解。
除了内核构建之外,本课程还将教你如何开发自己的 Linux 内核模块,并深入探讨可加载内核模块(LKMs)。你将学习如何动态扩展内核功能,从而能够高效地创建、加载和调试模块。课程还深入介绍了 kthreads 等关键特性,以及与 procfs(/proc)文件系统的接口,让你能够将任何模块或内核相关的统计数据展示给用户空间;同时,通过 debugfs(/sys/kernel/debug)接口,你可以将内核空间的变量暴露给用户空间,以便进行诊断和调试。
此外,你将学习如何创建补丁并遵循官方的 Linux 内核开发流程来应用它们,从而积累为 Linux 内核贡献的经验。完成本课程后,你将熟练掌握探索、管理和修改 Linux 内核源代码的技能,准备好开始成为一名熟练的 Linux 内核开发者的旅程。
此课程面向哪些人:
- 对 Linux 内核内部和开发感兴趣的初级 Linux 爱好者
- 其他操作系统领域的系统工程师,希望了解和探索 Linux 内核功能
- Linux 内核开发者 / 对 Linux 内核基础知识感兴趣并希望复习相关知识的设备驱动开发者