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