为啥需要模块
内核的整体架构非常庞大,如何让所有的功能都放入内核中而不让内核显得臃肿,如何在增加或者
删除功能的时候不需要整个的编译内核?为了解决这两个问题,模块被提出来了。
模块有两个优点:
1. 模块本身不被编译入内核映像,从而控制了内核的大小
2. 模块一旦被加载,它就和内核中的其他部分完全一样
常用命令:insmod(加载) rmmod(卸载) lsmod(查看已安装的模块)
modprobe:在加载某模块的时候会同时加载该模块依赖的其他模块
modprobe -r filename : 卸载模块同时卸载其依赖的其他模块
modinfo hello.ko: 获得该模块的信息
模块的构成
模块加载函数
模块卸载函数
模块许可证证明
模块参数(可选)
模块导出符号(可选)
模块作者等信息(可选)