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

相关推荐
小安运维日记16 分钟前
RHCA - DO374 | Day03:通过自动化控制器运行剧本
linux·运维·数据库·自动化·ansible·1024程序员节
无聊的小坏坏1 小时前
从零开始:C++ TCP 服务器实战教程
服务器·c++·tcp/ip
乐十九2 小时前
IIC总线原理详解
linux
TG_yunshuguoji2 小时前
亚马逊云渠道商:本地SSD缓存如何保障数据安全?
运维·服务器·安全·云计算·aws
mi20062 小时前
银河麒麟v10 sp1更改data目录挂载
linux·运维
shandianchengzi3 小时前
【经验】Word/WPS|用邮件合并批量填写表格或教案,单个Word导出成多个文件
word·wps·邮件·办公·邮件合并
tft36403 小时前
An attempt was made to access a socket in a way forbidden by its access
服务器·网络·tcp/ip
tan180°3 小时前
Linux网络HTTP(下)(9)
linux·网络·http
半路_出家ren3 小时前
设计一个学生管理系统的数据库
linux·数据库·sql·mysql·网络安全·数据库管理员
着迷不白3 小时前
华为堡垒机
linux·运维·服务器·centos