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