Linux内核模块编程——hello,world
来源:互联网 发布:vb安装包 拆分 编辑:程序博客网 时间:2024/06/05 18:59
文件hello.c(放在目录/root/lnq/modules/hello下):
#include<linux/kernel.h>#include<linux/module.h>#include<linux/init.h>MODULE_LICENSE("GPL");static int hello_init(void){ #模块初始化函数 printk(KERN_INFO "Hello,world!\n"); return 0;}static void hello_exit(){ #模块退出和清理函数 printk(KERN_INFO "Hello,exit!\n");}module_init(hello_init); module_exit(hello_exit);MODULE_AUTHOR("lnq");MODULE_DESCRIPTION("This is hello modules");MODULE_ALIAS("a simple example");
文件Makefile:
obj-m += hello.o #产生hello模块的目标文件kernel_path=/usr/src/kernels/objms-kernel #自己的内核文件路径all: make -C $(kernel_path) M=$(pwd) modules #pwd是当前所在目录clean: make -C $(kernel_path) M=$(pwd) clean
编译:
make
编译成功之后,在此目录下会生成如下几个文件:
hello.c 、hello.ko 、 hello.mod.c 、 hello.mod.o 、 hello.o 、Makefile 、modules.order 、 Module.symvers
其中,hello.ko就是所需要的模块。
加载模块(会调用hello_init函数):
insmod hello.ko
如果加载成功,用dmesg查看可以看到打印出“hello,world!”信息。
查看模块:
lsmod
卸载模块(会调用hello_exit函数):
rmmod hello
如果卸载成功,用dmesg查看可以看到打印出“hello,exit!”信息。
0 0
- Linux内核模块编程入门——Hello World
- Linux内核模块编程——hello,world
- Linux 内核模块编程 Hello World 模块
- 内核模块编程---hello world
- linux内核驱动模块编程框架---(hello world模块)
- linux Hello World 模块编程
- Linux内核编程初体验 —— hello world
- Linux内核编程初体验 —— hello world
- Linux内核编程初体验 —— hello world
- linux内核模块开发之Hello world
- Linux 内核模块之hello world
- Linux内核驱动模块编写(Hello,World)
- Linux内核驱动模块编写(Hello,World)
- linux 第一个内核模块Hello World
- linux 第一个内核模块Hello World
- Linux内核模块(hello world)
- linux内核hello world模块编写
- linux内核之旅---"hello world"模块
- hdu 4936 Rainbow Island (状压dp+高斯消元)
- Handler初体验
- hoj2543 Stone IV 【最小费用最大流】
- 常见浏览器兼容性问题与解决方案
- 在Editor模式下编辑贝塞尔曲线
- Linux内核模块编程——hello,world
- [javase]多线程(三)
- 如何删除保存在Mac 上的密码
- spark/hadoop整合mongodb
- Ubuntu 14 .04 下安装Gitlab
- Java相对路径读取文件
- mysql source导入多个sql文件和较大文件及在线互转
- Laravel5框架的搭建
- PCA详解-并用scikit-learn实现PCA压缩红酒数据集