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

相关推荐
意疏12 分钟前
【Linux 篇】Docker 容器星河与镜像灯塔:Linux 系统下解锁应用部署奇幻征程
linux·docker
朱包林13 分钟前
k8s-Pod基础管理,标签管理,rc控制器及重启策略实战
linux·运维·云原生·容器·kubernetes·云计算
勇闯逆流河27 分钟前
【Linux】linux进程概念(环境变量详解)
linux·运维·服务器
郭涤生1 小时前
CANopen 基础复习
服务器·网络·c++
东芝、铠侠总代136100683931 小时前
从混合存储架构看SSD与HDD的互补性:技术特性决定应用场景
服务器·架构·ssd·hdd
jinanwuhuaguo1 小时前
《OpenClaw v2026.3.24-beta.1 深度技术分析报告》
运维·服务器·人工智能·openclaw
_evenif1 小时前
MySql 8 一机多实例部署
linux·数据库·mysql
李昊哲小课1 小时前
PyMySQL完整教程
服务器·数据库·python·pymysql
程序员差不多先生1 小时前
小米Openvela生态成熟度如何?
linux
互联网科技看点2 小时前
2025-2026年研发管理软件推荐:产品研发全流程一体化靠谱解决方案评测
服务器·数据库·人工智能