我试图了解使用 Linux 内核模块的缺点。我了解使用它们的好处:能够将代码动态插入到正在运行的系统中,而无需重新编译和重新启动基本系统。鉴于这种强大的优势,我猜测大部分内核代码应该在内核模块中,而不是作为基本内核的一部分,但情况似乎并非如此——大量的核心子系统(如内存管理)仍然进入基础内核。
我能想到的一个原因是内核模块在引导过程中加载得很晚,因此核心功能必须在基本内核中。我阅读的另一个原因是关于碎片化。
我真的不明白为什么内核模块会导致内存碎片,有人可以解释一下吗?使用内核模块还有其他缺点吗?