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

相关推荐
想唱rap5 分钟前
Linux指令(1)
linux·运维·服务器·笔记·新浪微博
woshihonghonga8 分钟前
Ubuntu20.04下的Pytorch2.7.1安装
linux·人工智能·ubuntu
字节高级特工10 分钟前
网络协议分层与Socket编程详解
linux·服务器·开发语言·网络·c++·人工智能·php
广都--编程每日问27 分钟前
deepseek 的对话json导出成word和pdf
pdf·json·word·deepseek·exprot
minji...1 小时前
Linux 权限的概念及shell命令运行原理
linux·运维·服务器
欢鸽儿2 小时前
理解Vivado的IP综合策略:“Out-of-Context Module Runs
linux·ubuntu·fpga
taulee012 小时前
在云服务器搭建部署私人饥荒联机版游戏服务器 [2025.10.3][ubuntu 24.04][腾讯云2核2G服务器]
服务器·ubuntu·游戏
HappyGame022 小时前
Linux多线程编程
linux
躺着数星星2 小时前
Linux中安装es
linux·elasticsearch·jenkins
带土12 小时前
32位ubuntu14.0.4安装chrome
linux·chrome