2011-05-22 131 views

回答

2

具有非模块化内核是嵌入式系统中的常见做法。与桌面/服务器机器不同,在手机上,硬件不太可能发生变化,其中大多数没有USB端口,因此不需要以模块形式加载内核功能/硬件支持。

你知道你想使用的文件系统,你需要支持的网络接口等,所有这些都可以内置到内核中,而不是让它们动态加载。

标准我用来决定进入内核的内容和内置模块的内容 - 如果有一些您需要的功能(如网络接口支持/文件系统支持),请将它们包含在内核中。如果有某些功能只需要某些点(如netfilter模块),请将它们作为模块构建。

+0

感谢您的回复。但是,这种方法的缺点是,由于内核较大,启动时间会增加。将模块放置在sysstem/lib/modules中并在需要时将它们'insmod'不是更好吗? – alumat 2011-05-22 02:08:59

+0

我已经更新了我的答案,以部分回答你的问题,关于启动时间,如果它的模块支持文件系统,你最终必须加载它,所以在启动时加载它并没有真正的区别,作为模块 – freethinker 2011-05-22 02:25:59

+0

实际上,您可以使用模块更快地启动嵌入式系统,即使您最终需要知道您需要的内容。例如,只需构建让显示器工作和用户空间运行到内核所需的内容,以便您可以显示GUI,然后在后台加载您的网络模块等。这使得系统看起来更快响应,即使它没有真正完全引导再长一点。 – Roland 2011-05-23 23:20:30