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

【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.lryc.cn/news/497920.html

相关文章:

  • PHP 与 MySQL 搭配的优势
  • 深入浅出:PHP中的变量与常量全解析
  • 初步简单的理解什么是库,什么是静态库,什么是动态库
  • 从ctfwiki开始的pwn之旅 3.ret2syscall
  • 使用 httputils + protostuff 实现高性能 rpc
  • 系统思考—战略共识
  • Java版-速通数据结构-树基础知识
  • 详尽的oracle sql函数
  • SAP IDOC Error VG205
  • DSP 的 CV 算子调用
  • WMI攻击-基础篇(一)
  • 使用Pygame创建一个简单的消消乐游戏
  • 证明直纹面是可展曲面沿着直母线,曲面的切平面不变
  • Chrome控制台 网站性能优化指标一览
  • Typora创建markdwon文件的基础语法
  • 《嵌入式硬件设计》
  • 【AIGC】大模型面试高频考点-位置编码篇
  • 如何使用 SQL 语句创建一个 MySQL 数据库的表,以及对应的 XML 文件和 Mapper 文件
  • Unity性能优化---动态网格组合(二)
  • JVM学习《垃圾回收算法和垃圾回收器》
  • GPS模块/SATES-ST91Z8LR:电路搭建;直接用电脑的USB转串口进行通讯;模组上报定位数据转换地图识别的坐标手动查询地图位置
  • 什么是TCP的三次握手
  • 《Clustering Propagation for Universal Medical Image Segmentation》CVPR2024
  • Linux ifconfig ip 命令详解
  • Vue3 对于echarts使用 v-show,导致显示不全,宽度仅100px,无法重新渲染的问题
  • C++实现俄罗斯方块
  • 鸿蒙分享:添加模块,修改app名称图标
  • 扫描IP段内的使用的IP
  • 【专题】虚拟存储器
  • Python之爬虫入门--示例(2)