![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
模块
anton_99
这个作者很懒,什么都没留下…
展开
-
内核模块与应用程序的区别
内核模块与普通的应用程序存在很大的差异,具体如下。(1)内核模块属于操作系统内核的一部分,运行在内核空间,应用程序运行在用户空间。(2)内核模块中的函数是被动调用的,如加载函数与卸载函数分别是在内核模块被加载和卸载时被调用,而应用程序则是顺序执行。(3)内核模块不能调用C库,应用程序可以随时调用C库。(4)内核模块必须要做一些清除性工作,如在卸载函数中将申请的内存空间释放,而应用程序忽略有些工作不会对系统造成影响,如应用程序执行结束前会自动释放使用的内存空间,因此释放内存的操作出现在程序结束前是可以原创 2020-09-14 08:44:47 · 2111 阅读 · 1 评论 -
内核模块的结构
一个完整的内核模块应该由以下结构组成。(1)模块加载(入口)函数(必需)。(2)模块卸载函数(必需)。(3)模块许可证声明(必需)。(4)模块参数(可选)。(5)模块导出符号(可选)。(6)模块作者等信息声明(可选)。...原创 2020-09-14 08:43:19 · 219 阅读 · 0 评论 -
Linux内核模块概述
Linux操作系统的内核为单一体系结构(单内核),其与微内核(如Windows操作系统)的最大区别在于所有的内核功能都被编译在一起,成为一个单独的镜像文件。单内核的优点是效率非常高,内核中各个功能模块的交互是通过直接的函数调用来进行的。而微内核则只实现内核中关键和核心的一部分,其他的功能模块单独编译,功能模块之间的交互由微内核提供的通信机制来建立。对于Linux的单内核而言,其缺点就是要增加或删除内核的某种功能,将不得不重新编译整个内核,然后再重新启动,这对于驱动开发前期是非常不友好的。为了弥补这一缺点,L原创 2020-08-02 10:54:27 · 171 阅读 · 0 评论