当前位置: 首页 > article >正文

【Linux内核】Hello word程序

创建测试目录

mkdir -p ~/develop/kernel/hello-1 
cd ~/develop/kernel/hello-1

创建MakeFile文件和内核.c文件

nano Makefile
nano hello-1.c

编写内容

/* 
 * 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")
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文件等

查看内核模块信息

modinfo hello-1.ko

加载内核模块(执行内核内容:打印Hello world 1.)

sudo insmod hello-1.ko

卸载内核模块

sudo rmmod hello_1

查看内核的日志打印信息

dmesg | tail

文章参考:Linux 内核模块编程指南


http://www.kler.cn/a/428722.html

相关文章:

  • 论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(一)
  • 小哆啦解题记:如何计算除自身以外数组的乘积
  • Golang的文件处理优化策略
  • 【大模型】ChatGPT 高效处理图片技巧使用详解
  • 程序员不可能不知道的常见锁策略
  • PyTorch使用教程(8)-一文了解torchvision
  • AIGC实战——VQ-GAN(Vector Quantized Generative Adversarial Network)
  • C# (WinForms) 使用 iTextSharp 库将图片转换为 PDF
  • 分布式数据库:架构、挑战与未来趋势
  • MATLAB 控制系统快速入门
  • 期货分仓/风控/期货交易的原则!
  • Ubuntu系统中Redis的安装步骤及服务配置
  • Rust学习笔记_13——枚举
  • Ubuntu 22.04安装Nessus(离线激活模式)
  • Windows如何识别Linux主机名?
  • 力扣-图论-3【算法学习day.53】
  • java面试宝典
  • SQL DQL数据查询语言(后续)
  • PHP语法学习(第九天)—PHP连接mysql详解(下)
  • 力扣LCR 128.库存管理I
  • JAVA子类的无参构造器中第一行的super
  • 【Unity高级】在编辑器中如何让物体围绕一个点旋转固定角度
  • 解锁函数的魔力:Python 中的多值传递、灵活参数与无名之美
  • 11-27 周三 Postman自动解析响应查询可用节点数量
  • Python机器学习笔记(四、监督学习算法:朴素贝叶斯分类器和决策树)
  • 计算机毕业设计Python轨道交通客流预测分析可视化 智慧交通 机器学习 深度学习 人工智能 爬虫 交通大数据