模块
模块是在内核空间运行的程序,实际上是一种目标对象文件,没有链接,不能独立运行,但是其代码可以在运行时链接到系统中作为内核的一部分运行或从内核中取下,可以动态的扩展内核的功能。 内核模块和应用程序的比较 应用程序: 模块程序: 入口: main() init_modle() 出口: 无 cleanup_module() 编译: gcc -c gcc -c -DMODULE -D__KERNEL__ 连接: gcc insmod 运行: 直接运行 insmod 调试: gdb kdbug,kdb,kgdb等内核调试工具 文件类型:EXEC(可执行文件) REL(可重定位文件) 模块机制的优缺点。
优点: 1,使得内核更加紧凑灵活. 2,修改内核时, 不必重新编译整个内核. 3,模块可以不依赖于某个固定的硬件平台,即使它依赖于某系统特殊的硬件特点 4,模块的目标代码一旦被链接到内核,它的作用和静态链接的内核目标代码完全等价.所以当调用模块函数时,无须显式的消息传递。 |