HACK#3 如何编写内核模块
本节将介绍向Linux内核中动态添加功能的结构—内核模块的编写方法。
内核模块
Linux内核是单内核(monolithic kernel),也就是所有的内核功能都集成在一个内核空间内。但是内核具有模块功能,可以将磁盘驱动程序、文件系统等独立的内核功能制作成模块,并动态添加到内核空间或者删除。
内核模块是可以动态添加到Linux内核空间的二进制文件,文件扩展名为ko。
内核模块的编写方法大致有两种。一种是将内核源码树带有的功能编写为模块的方法(参考Hack#2),另一种是将内核源码树中所没有的特有功能编写为模块的方法。