详谈内核模块(KLM)

上传人:仙*** 文档编号:181873674 上传时间:2023-01-18 格式:DOC 页数:5 大小:103.50KB
返回 下载 相关 举报
详谈内核模块(KLM)_第1页
第1页 / 共5页
详谈内核模块(KLM)_第2页
第2页 / 共5页
详谈内核模块(KLM)_第3页
第3页 / 共5页
点击查看更多>>
资源描述
详谈Linux内核模块(LKM)目录一序言. .1二什么是Linux内核模块.1三Linux内核模块的实现.2四Linux内核模块的优势.5一序言对于初学者而已,Linux内核模块(LKM)是一个非常模糊的概念,网络上的描述也是林林总总,并不能很好的理解,但无论如何,都得自己实际操作一番,才能彻底领悟。为了纪念花了两天的时间理解Linux内核模块这概念,所以把自己的实际操作及理解写下来,仅供参考。二什么是Linux内核模块Linux可加载内核模块(从内核的1.2版本开始引入)是Linux内核的最重要创新之一。它们提供了可伸缩的、动态的内核。Linux就是通常所说的单内核,而操作系统的大部分功能都被成为内核,并在特权模式下运行。它与微型单核不同,后者只把基本的功能当做内核运行,而把其他功能(驱动程序、网络堆栈和文件系统)排除在特权空间之外。因此,可以认为Linux是一个完全静态的内核。但事实恰恰相反,可以通过Linux内核模块(LKM)可以在内核运行时进行动态的更改Linux。“可动态更改”是指在内核运行时,可以将新的功能加载到内核、从内核去除某个功能,甚至添加使用其他的新LKM。Linux不是可以进行动态更改的唯一(也不是第一个)单内核。Berkeley Software Distribution(BSD)的变体、Sun Solaris、更老的内核(比如OpenVMS),以及其他流行的操作系统(比如Microsoft Windows和Apple Mac OS X)都支持可加载模块。三Linux内核模块的实现1、简单的Hello模块例子步骤1:在内核根目录下新建hellomod文件夹,里头创建一个hellomod.c文件,代码如下#include#include#includeint hello_init(void) printk(HelloWorldn); return 0;void hello_exit(void)printk(GoodByen);MODULE_AUTHOR(xmcwc);MODULE_DESCRIPTION(hello);MODULE_LICENSE(GPL);module_init(hello_init);module_exit(hello_exit);步骤2:与hellomod.c同文件夹中,再创建一个Makefile文档,无需扩展名,代码如下obj-m:=hello.o步骤3:编译模块从终端进入hellomod文件的根目录下,输入make C $(kernel_path) M=$(PWD) modules。其中,kernel_path是指内核路径,而PWD则是指当前模块文档的路径。例如,我的kernel_path=/media/malata/xmcwc/s5pv210/android_kernel_2.6.32而hellomod模块路径为/media/malata/xmcwc/s5pv210/android_kernel_2.6.32/usr/hellomod所以,我输入make C /media/malata/xmcwc/s5pv210/android_kernel_2.6.32 M=/media/malata/xmcwc/s5pv210/android_kernel_2.6.32/usr/hellomod modules执行结果如下:执行后多出了以下几个文档步骤4:动态加载和卸载模块S5PV210开发板准备一套,电脑进入命令提示符CMD,在adb目录下,输入adb push 如:adb push X:s5pv210android_kernel_2.6.32usrhellomodhellomod.ko system可以在system路径中看到hellomod.ko从上图可知,hellomod.ko模块已经push到system中,接下来要进行加载,继续在CMD中输入insmod hellomod.ko在开发板串口会打印消息卸载模块也如此,输入rmmod hellomod.ko在开发板串口会打印消息四Linux内核模块的优势1.将来修改内核时,不必全部重新编译整个内核,可节省不少时间2.系统中如果需要使用新模块,不必重新编译内核,只要插入相应的模块即可
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!