linux内核实验helloworld
时间: 2024-10-20 17:03:36 浏览: 17
在Linux内核中创建一个简单的"Hello World"示例,通常是指创建一个非常基础的模块(kernel module)来输出一条消息到系统日志。这个例子可以帮助新手理解如何编写和加载内核模块的基本流程。以下是一个简单的步骤:
1. **创建一个新目录**:首先,创建一个新目录如`/home/user/kernel-hello-world`,将所有相关文件放在其中。
2. **创建Makefile**:在这个目录里,编写一个基本的Makefile,例如:
```bash
obj-m += helloworld.o
KVER := $(shell uname -r)
default:
make -C /lib/modules/$(KVER)/build M=$(PWD) clean
```
3. **编写helloworld.c**:创建名为`helloworld.c`的文件,内容如下:
```c
#include <linux/module.h>
#include <linux/kernel.h>
static int __init hello_init(void) {
printk(KERN_INFO "Hello, world! from kernel module\n");
return 0;
}
static void __exit hello_exit(void) {
printk(KERN_INFO "Goodbye, cruel world!\n");
}
module_init(hello_init);
module_exit(hello_exit);
```
这里的` printk()` 函数用于向内核日志输出信息。
4. **编译和加载模块**:回到顶层目录,运行 `make` 然后 `sudo insmod helloworld.ko` 来编译并加载模块。如果一切顺利,你会在终端看到"Hello, world!"的信息。
5. **卸载模块**:要卸载模块,只需运行 `sudo rmmod helloworld`。
阅读全文