在 Unix 系统中,像是你的程式与硬体的一个仲裁者. 首先,它为所有执行中的程式(程序)做记忆体管理, 并且确保它们都能够平均(或不平均,如果你愿意)的分享处理机的运算资源. 此外,它还提供了一个良好的介面让刚刚提到的程式能透过它与你的硬体沟通.
其实核心所处理的工作比这还要更复杂一些,不过这些基本的功能是最必要知道的.
比较新的核心一般来说会提供更强的能力来与更多种奇奇怪怪的硬体沟通(也就是说,它们拥有更多的设备驱动程式), 它们能够有更好的行程管理,它们能够执行的比旧的版本更有效率,它们可能比旧的版本来的更稳定,而且它们修正了旧版里的一些错误. 大部分的人是因为他们需要那些新的设备驱动程式以及错误修正的部份而更新核心.
请看
Hardware-HOWTO 文件.
另一个方法是,你可以查看 Linux 原始程式码中的 `config.in
' 档,
或者就在当你试著去 `make config
' 时找出来.
`make config
' 将会让你看到标准的核心原始程式码支援的所有硬体,但这并不是 Linux 所支援的全部硬体;
许多普通的设备驱动程式(像是 PCMCIA 驱动程式以及某些磁带机的驱动程式)是个别维护及发行的可载入模组.
Linus 对这个问题的建议放在 Linux 原始程式的 README
档案□头.
如果你没有该版本或是更新的版本,新版的 gcc 应该会告诉你是否需要更新 libc 的版本.
这两个操作都不会有什麽问题,只要照著说明做就可以了.
它们是核心的一部分(通常是设备驱动程式),但是并没有编译到核心里面去. 它们被分别编译,然後几乎可以在任何时候将它们插入运作中的核心或从中取出. 由於它的便利性,这已经成为一种增加东西到核心里去的较好方式. 许多常用的设备驱动程式,例如 PCMCIA 驱动程式以及 QIC-80/40 磁带机的驱动程式就是可载入模组.
这与你系统的特殊配置有关.首先,压缩过後的 Linux 原始程式码在 2.0.10 版时约占 6 MB. 许多站台在解压缩後仍会保留一份.解压缩以後这将占掉约 24 MB. 但这还不是全部 — 你将会需要更多的磁碟空间来实际编译这些东西. 这与你配置多少东西到你的核心里头去有关.例如,在某部机器上,我有网路,3Com 3C503 的驱动程式, 并且配置了三种档案系统,而这全部共需要 30 MB.加上压缩过的 linux 原始程式码,这个配置大概需要用掉你 36MB . 在另外一个系统上,不需要支援网路设备(但仍然需要支援网路),加上音效卡,结果吃掉更多空间. 还有,一个新版本的核心几乎总是比旧版本的占更大的空间. 所以,一般来说,如果你有许多种硬体设备的话,确定你有足够的硬碟空间来容纳这个配置. (以今日的价格来说,对於储存空间的问题我不能不建议你再买一台磁碟机.)
对大部份的人而言,答案是``很久''.你的处理机速度有多快,以及你拥有的记忆体数量有多少将是决定所需时间的主要因素, 但是,在把多少东西配置到核心里头去这方面还是可以做点努力. 在一台有 16 MB 记忆体的 486DX4-100 电脑上,一个有五种档案系统、支援网路、以及音效卡驱动程式的 1.2 版核心可以在二十分钟以内完成. 类似的配置,在一台 386DX/40(8 MB 记忆体)上大约需要要 1.5 个小时. 在编译核心时通常一些好的建议是去喝一点咖啡,看点电视,织些毛线,或任何你喜欢的事. 如果你的机器真的很慢的话你也该换台较快的机器.