1.1. 什么是内核模块?

所以,你想编写一个内核模块。你了解C语言,你已经编写了一些作为进程运行的普通程序,现在你想进入真正发生作用的地方,在那里一个简单的错误指针就能抹去你的文件系统,而一次核心转储就意味着重启。

究竟什么是内核模块? 模块是在需要时可以加载和卸载到内核中的代码片段。 它们扩展了内核的功能,而无需重启系统。 例如,模块的一种类型是设备驱动程序,它允许内核访问连接到系统的硬件。 如果没有模块,我们将不得不构建单内核并将新功能直接添加到内核镜像中。 除了拥有更大的内核之外,这还存在一个缺点,即每次我们想要新功能时,都需要重建和重启内核。