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

相关推荐
心灵宝贝25 分钟前
openssl-1.0.1e.tar.gz编译安装步骤
linux·运维·服务器
自由鬼26 分钟前
开源免费虚拟化软件PVE功能介绍
运维·服务器·开源·虚拟化
想要打 Acm 的小周同学呀1 小时前
TCP基础篇(一)
服务器·网络·tcp/ip
矮油0_o2 小时前
5.好事多磨 -- TCP网络连接Ⅱ
服务器·网络·tcp/ip·网络编程·socket
m0_677904842 小时前
Nginx介绍及使用
服务器·nginx
菜鸟xy..2 小时前
麒麟系统桌面版本v10安装教程
linux·运维·服务器·虚拟机·安装教程·麒麟
什么半岛铁盒2 小时前
存储基石:深度解读Linux磁盘管理机制与文件系统实战
linux·运维·服务器
我命由我123453 小时前
C++ - 头文件基础(常用标准库头文件、自定义头文件、头文件引入方式、防止头文件重复包含机制)
服务器·c语言·开发语言·c++·后端·visualstudio·visual studio code
w23617346013 小时前
Linux常用基础命令应用
linux·服务器·php