一、现代内核派系
1、宏内核:
如下图左
关键功能 (如内存管理、进程调度…,不可裁剪)在 内核空间 提供。
服务功能 (如网络服务…,可裁剪)也在 内核空间 提供。
优点:运行效率高
缺点:扩展性较差
2、微内核:
如下图右
关键功能 在 内核空间 提供。
服务功能 在 用户空间 提供。
优点:安全性、扩展性较高
缺点:运行效率较低

二、linux内核模块机制
linux属于 宏内核 。
但是引入了 内核模块的机制 来解决linux内核 可扩展性和可维护性相对较差 的缺陷。
三、内核模块加载/卸载
使用 insmod / modprobe 加载。
使用 rmmod / modprobe -r 命令卸载。
四、内核模块入口/出口
module_init() :加载模块时该函数自动执行,进行初始化操作。(module_init解析)
module_exit() :卸载模块时函数自动执行,进行清理操作。
这两个函数定义在 include/linux/init.h
五、内核模块信息声明
MODULE_LICENSE() :表示模块代码接受的软件许可协议,Linux内核遵循GPL V2开源协议,内核模块与linux内核保持一致即可。
MODULE_AUTHOR() :描述模块的作者信息。
MODULE_DESCRIPTION() :对模块的简单介绍。
MODULE_ALIAS() :给模块设置一个别名。
这些宏定义在 include/linux/module.h
484

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



