基于Linux系统的内核编程小Demo.
编写Linux内核模块的demo及注意事项.
什么是内核模块呢?
首先内核是一个操作系统的最基础部分,它是一个向所有外部程序和硬件驱动提供一个插口的这么一个存在,然后内核模块就是对接这个抽口的模块。
内核又分了微内核和宏内核,宏内核又分为单内核和双内核。而Linux内核属于宏内核中的单内核,它汲取了微内核的思想和精华,故而提供了模块化机制,不仅实现了效率高,同时因为模块化的存在让其更加的便于维护和扩展。
更多的内核相关信息可自行上网了解
驱动程序在内核中,都是独立的模块,例如LED驱动、蜂鸣器驱动,它们驱动之间没有相互的联系,可以通过应用程序将两个驱动联系在一起,例如以下的代码,LED驱动和蜂鸣器驱动各自都是一个独立的模块(module)。
内核模块编译成功后会生成一个 (*.ko)(kernel object)文件。
当内核编写完成后,使用以下两个命令:
加载内核模块
insmod *.ko
卸载内核模块
rmmod *.ko
注意:驱动是安装在内存中正在运行的内核上。
应用程序代码结构和内核模块代码结构区别:
运行方法|C语言应用程序|内核模块
–|:–:|–
运行空间|用户空间|内核空间
出口|main|module_init函数指定
入口|-|module_exit函数指定
编译|gcc|Makefile
运行|./直接运行|insmod
退出|exit|rmmod
设计一个简单的内核demo.
默认已经下载好了Linux内核源码并且解压好。
|
|

最低0.47元/天 解锁文章
1056

被折叠的 条评论
为什么被折叠?



