Linux 内核模块入门:Hello, kernel world!
本文代码地址:https://github.com/Shibo-Zhu/linux-try/tree/master/kernel_module_hello
本文代码地址:https://github.com/Shibo-Zhu/linux-try/tree/master/kernel_module_hello
struct task_struct 是 Linux 内核中用于表示进程的核心数据结构。它包含了进程的各种信息,如状态、调度信息、内存管理信息、文件描述符等。理解 task_struct 的结构和各个字段的作用,对于深入了解 Linux 进程调度机制至关重要。
对于每一位 Linux 用户来说,无论是初学者还是资深系统管理员,理解其文件系统的层级结构(Filesystem Hierarchy Standard, FHS)都是一项至关重要的基本功。这个结构定义了系统中每个目录应该存放什么样的文件,保证了软件和用户都能以一种可预测的方式找到所需的数据。
Linux内核调度器是操作系统的核心,它负责决定哪个进程在何时、运行多久。理解其工作原理的关键在于回答两个问题:1. 何时触发调度? 和 2. 调度时选择哪个任务? 本文将深入探讨这两个问题,解析其背后的机制、代码和具体场景。
当谈论 Linux 内核时,我们常常被一堆名词绕得云里雾里:vmlinux、bzImage、vmlinuz、initrd、initramfs、内核模块…… 它们名称相似,却在系统启动的宏大交响乐中扮演着各自不可或不可缺的角色。
1. 准备环境
安装交叉编译工具链和git。
sudo apt update
sudo apt install git
sudo apt install crossbuild-essential-arm64
sudo apt install bison flex libssl-dev bc libncurses-dev2. 获取源码