我的近期目标是在不牺牲可用性的情况下为我的笔记本电脑编译一个小内核。熟悉内核编译步骤(不一定了解流程)。我可以在 menuconfig 中删除哪些选项以获得更快的速度,更苗条核心?我一直在使用试错法,即取消选中未使用的文件系统和驱动程序,但这是一个非常缓慢的过程。有人可以指出我的事情吗不应该触摸还是更好的方式来完成这个过程?这个小“项目”仅供娱乐。
系统规格和操作系统:
i7 580M、Radeon HD5850、8Gb DDR3、MSI 主板 x86_64 Ubuntu 11.10。
答案1
取消选中文件系统和驱动程序根本不会减少内核的大小,因为它们被编译为模块,并且仅加载与您所拥有的硬件相对应的模块。
内核的一些功能无法编译为模块,并且您可能不会使用它们。从 Ubuntu 开始.config
,然后查看内核中编译的(y
,不是m
)。如果您不明白某个功能的用途,请不要理会它。
大多数内核的可选功能都是可选的,因为您可能不希望它们出现在嵌入式系统上。嵌入式系统有两个特点:它们很小,因此不要在未使用的代码上浪费内存很重要,并且它们有专用用途,因此有许多功能您知道您不会需要。 PC 是一种通用设备,您通常会在其中连接大量第三方硬件并运行大量第三方软件。您无法真正提前知道您永远不会需要这个或那个功能。大多数情况下,您将能够做的就是对除您之外的 CPU 类型的支持以及针对您没有的芯片组中的错误的解决方法(少数芯片组没有编译为模块)。如果您编译 64 位内核,则不会有很多这样的问题,远不如 32 位 x86 内核那么多,因为 32 位 x86 内核有相当多的历史包袱。
无论如何,你不会获得任何重要的东西。有了8GB内存,内核使用的内存可以忽略不计。
如果您真的想尝试内核和其他东西,我建议您购买一个业余爱好者或实用程序嵌入式板(比格犬委员会,古姆斯蒂克斯,希瓦插头,……)。
答案2
我完全不同意这里给出的所有答案。编译您自己的内核将为您提供更快的整体系统,并且更快的启动时间在笔记本电脑系统中非常受欢迎。这很重要。只是如果你想要一个自定义内核,你就必须为它付出努力。并不是所有的人都愿意这样做。如果您不介意花时间学习如何操作,那么它就是您的完美解决方案。
关于 .config 步骤,一个简单的技巧是从当前工作的内核 .config 开始,随着您对选项的理解增加,从那里开始逐步剥离。只需“make menuconfig”到底部并选择“加载备用配置文件”,然后从那里找到当前的内核.config(cat /proc/config.gz > .config-current 以便于查找)。
答案3
精简内核不会带来任何明显的收益。最好把时间花在削减用户空间应用程序上。
要查看内核启动的速度以及一个非常裸的系统使用了多少内存,您可以仅加载一个纯 shell。为此,请重新启动计算机并停止 grub。编辑通常启动的条目(它应该已经突出显示,通常是“e”来编辑它)并找到以“linux”开头的行。该行允许您为内核提供一些参数。添加到该行的末尾“init=/bin/sh”,然后启动您编辑的条目(屏幕上可能会显示如何执行此操作的说明)。
它应该启动得相当快。一旦启动,您就可以free
查看有多少可用内存。
您可能还想看看引导图,它为您提供有关进程启动时正在执行哪些操作的信息。
答案4
在任何现代 PC 上,剥离内核都不太重要。您可以节省的几兆字节将不存在。内核调整在 VAX 11/750 时代非常重要,当时您可能只有 1-2MB RAM 的机器。调整缓冲池、进程表大小等确实需要在这么小的机器上对机器 RAM 进行重大权衡,因此有一段时间它获得了一种“unix 大师”应该理解的神话地位。
实际上,过去 15 年生产的任何 PC 都可能拥有足够的内存,因此这并不重要。