【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 内核模块编程指南

相关推荐
吠品14 分钟前
Wine 在 Linux 上运行 Windows 软件完整指南
java·linux·服务器
深念Y2 小时前
从 Windows 迁移到 Linux 开发环境的记录
linux·windows·链接·bun·ram·imdisk
AuTumn-L2 小时前
使用 SSH 密钥认证实现安全免密登录
服务器·安全·ssh
知无不研3 小时前
Linux I/O复用之epoll
linux·服务器·epoll·socket编程
dogstarhuang4 小时前
OpenAI GPT-5.6 降价后如何重算 API 账单?多模型路由与成本治理实战
服务器·网络·人工智能·大模型·api·ai应用开发·接口管理
苏宸啊4 小时前
linux网络编程udp服务器和客户端代码编写(echo版本和字典版本)
linux·网络
~|Bernard|5 小时前
Linux 定时任务(Cron)完整教程
linux·运维·服务器
小周学学学5 小时前
vmware-horizon第一章:horizon服务器安装
运维·服务器·vmware
小雪崩5 小时前
嵌入式学习 day25:哈希表及排序与查找
linux·c语言·数据结构·学习·排序算法
奇树谦6 小时前
HDD 为什么适合顺序大文件读写:从 RAID 5 到 RAID 50 的原理与性能分析
linux·运维·网络