模块是一个设计术语,是指对词条中部分内容进行格式化整理的模板。例如歌手类词条中的“音乐作品”模块,电视剧类词条的“分集剧情”模块。在程序设计中,为完成某一功能所需的一段程序或子程序;或指能由编译程序、装配程序等处理的独立程序单位;或指大型软件系统的一部分。
模块是在内核空间运行的程序,实际上是一种目标对象文件。没有链接不能独立运行,但是其代码可以在运行时链接到系统中作为内核的一部分运行或从内核中取下,动态的扩展内核的功能。
模块的作用
1.使得内核更加紧凑灵活。
2.修改内核时, 不必重新编译整个内核。
3.模块可以不依赖于某个固定的硬件平台,即使它依赖于某系统特殊的硬件特点。
4.模块的目标代码一旦被链接到内核,它的作用和静态链接的内核目标代码完全等价。当调用模块函数时,无须显式的消息传递。
模块有各种类型:如单元操作模块(换热器、精馏塔、压缩机等)、计算方法模块(加速收敛算法、最优化算法等)、物理化学性质模块(汽液相平衡计算、热焓计算等)等。
模块优点
- 使得内核更加紧凑灵活。
- 修改内核时, 不必重新编译整个内核。
- 模块可以不依赖于某个固定的硬件平台,即使它依赖于某系统特殊的硬件特点。
- 模块的目标代码一旦被链接到内核,它的作用和静态链接的内核目标代码完全等价.所以当调用模块函数时,无须显式的消息传递.。
- 截获系统调用。
模块缺点(模块机制带来安全上的隐患)
- 修改输出符号表;
- 通过修改系统调用,使模块自己隐性;
- 重定向文件操作;
- 修改文件属主;
- 隐藏进程;
- 重定向可执行文件;
- 通过修改系统调用 sys_socketcall,使得系统在收到指定数据包后打开后门;
- TTY 劫持;
- 病毒。