为什么 linux 内核包含所有设备的文件?

cod*_*ent 1 linux kernel linux-kernel

我的设备的内核包含许多其他设备和情况的文件,我的设备无法使用。内核携带所有文件,并且比我的设备文件大得多。

这是什么原因?为什么不删除不必要的文件并使用更小的内核?

Jou*_*eek 6

如果您愿意,您实际上可以为您的特定硬件构建一个内核。我认为 gentoo 是一个很好的发行版来说明这一点 - 您可以运行针对您的硬件调整的内核或运行 genkernel。

您可以使用更大的通用内核,或者根据您的需要构建内核。忘记一些不能作为模块加载的东西,你重建整个内核。

当然有内核模块(即打包了多少第三方驱动程序),但是拥有一组默认的、健全的内核模块的重点是能够知道您的系统是否有可能正常工作。想象一下,因为忘记启用 X 而需要花费几个小时来编译内核(这发生在我身上,我上次尝试安装 gentoo 时)!

但是,您没有所有设备的驱动程序-您通常最终自己安装驱动程序-例如,nvidia 在许多发行版具有的 noveau 软件包之外有单独的驱动程序(这是在内核之外),许多网络也是如此牌。还有一些机制可以根据需要加载必要的模块

如果你想要一组最小的驱动程序,在一个纤薄的内核上,按照你自己系统的规格构建,那就去做吧。请记住它的大量工作,并且通用内核通常是发行版开发人员选择的一组合理的权衡,因为它是可靠的。