Linux Kernel Programming 项目教程
1. 项目的目录结构及介绍
Linux-Kernel-Programming/
├── Chapter01/
│ ├── Makefile
│ ├── ch1_ex1.c
│ ├── ch1_ex2.c
│ └── ...
├── Chapter02/
│ ├── Makefile
│ ├── ch2_ex1.c
│ ├── ch2_ex2.c
│ └── ...
├── ...
├── ChapterXX/
│ ├── Makefile
│ ├── chXX_ex1.c
│ ├── chXX_ex2.c
│ └── ...
├── README.md
└── ...
- ChapterXX/: 每个章节对应一个文件夹,包含该章节的示例代码和Makefile。
- README.md: 项目的主介绍文件,包含项目的基本信息和使用说明。
2. 项目的启动文件介绍
项目的启动文件通常是指每个章节的Makefile和第一个示例代码文件。例如,Chapter01/Makefile 和 Chapter01/ch1_ex1.c。
Chapter01/Makefile
obj-m += ch1_ex1.o
obj-m += ch1_ex2.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
Chapter01/ch1_ex1.c
#include <linux/module.h>
#include <linux/kernel.h>
int init_module(void)
{
printk(KERN_INFO "Hello, World!\n");
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Goodbye, World!\n");
}
MODULE_LICENSE("GPL");
3. 项目的配置文件介绍
项目的配置文件通常是指Makefile和一些特定的配置文件,例如内核模块的配置文件。
全局 Makefile
all:
for dir in Chapter*; do \
$(MAKE) -C $$dir; \
done
clean:
for dir in Chapter*; do \
$(MAKE) -C $$dir clean; \
done
内核模块配置文件
内核模块的配置文件通常在每个章节的Makefile中定义,例如:
obj-m += ch1_ex1.o
obj-m += ch1_ex2.o
这些配置文件定义了哪些模块需要编译和加载。
以上是 Linux Kernel Programming 项目的目录结构、启动文件和配置文件的介绍。希望这些信息能帮助你更好地理解和使用该项目。