【Linux内核】Hello word程序

创建测试目录

cpp 复制代码
mkdir -p ~/develop/kernel/hello-1 
cd ~/develop/kernel/hello-1

创建MakeFile文件和内核.c文件

cpp 复制代码
nano Makefile
nano hello-1.c

编写内容

cpp 复制代码
/* 
 * hello-1.c - The simplest kernel module. 
 */ 
#include <linux/module.h> /* Needed by all modules */ 
#include <linux/printk.h> /* Needed for pr_info() */ 
 
int init_module(void) 
{ 
    pr_info("Hello world 1.\n"); 
 
    /* A non 0 return means init_module failed; module can't be loaded. */ 
    return 0; 
} 
 
void cleanup_module(void) 
{ 
    pr_info("Goodbye world 1.\n"); 
} 
 
MODULE_LICENSE("GPL")
cpp 复制代码
obj-m += hello-1.o 
 
PWD := $(CURDIR) 
 
all: 
    $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules 
 
clean: 
    $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

make运行程序生成.ko .o文件等

查看内核模块信息

cpp 复制代码
modinfo hello-1.ko

加载内核模块(执行内核内容:打印Hello world 1.)

cpp 复制代码
sudo insmod hello-1.ko

卸载内核模块

cpp 复制代码
sudo rmmod hello_1

查看内核的日志打印信息

cpp 复制代码
dmesg | tail

文章参考:Linux 内核模块编程指南

相关推荐
Linux运维老纪16 分钟前
Ansible 铸就 Linux 安全之盾(Ansible Builds Linux Security Shield)
linux·服务器·网络·安全·云计算·ansible·运维开发
唐青枫31 分钟前
Linux apropos 命令使用详解
linux
刘大猫.40 分钟前
Centos Ubuntu RedOS系统类型下查看系统信息
linux·ubuntu·centos·ip·ifconfig·redos·查询系统信息
YuSun_WK2 小时前
程序&进程&多任务&线程
linux·运维·服务器
HeLLo_a1193 小时前
第11章 安全网络架构和组件(一)
linux·服务器·网络
南川琼语3 小时前
TCP概念+模拟tcp服务器及客户端
linux·服务器·网络·tcp/ip
winfredzhang7 小时前
Deepseek 生成新玩法:从文本到可下载 Word 文档?思路与实践
人工智能·word·deepseek
潘yi.8 小时前
web技术与nginx网站环境部署
服务器·网络·nginx
安顾里8 小时前
Linux命令-iostat
linux·运维·服务器
whoarethenext8 小时前
初始https附带c/c++源码使用curl库调用
服务器·c++·qt·https·curl