想知道为什么基于 ARM 的设备(如 Raspberry Pi、Android 手机、路由器等)没有附带最新的 Linux 内核?这仅仅是由于缺乏专有设备驱动程序支持吗?比如缺少 GPU、DSP 等开源驱动程序?或者他们运行最新内核版本有一些限制?
答案1
Raspberry Pi 根本不附带任何内核;它不包含软件,但您可以从一些第三方零售商处购买带有预格式化 SD 卡的软件(并且您可以单独购买此类卡)。有许多专门针对 A/B/+ pi 的二进制 GNU/Linux 发行版(由于 Pi 2 是 ARMv7,因此不需要这个,可以使用通用 ARM 发行版);它们大多基于现有的主流发行版并使用相同版本的软件除了对于内核,它不是 vanilla,并且包含一些专有部分。那个的最新版本是 4.1,与撰写本文时最新的 vanilla 内核相同。
但是,与官方内核一样,pi 内核独立于任何发行版,并且以 pi 为中心的发行版不一定使用最新的可用内核,就像普通发行版不一定使用最新的可用内核一样。
对于 Android,这些内核可能包含更多专有的东西,并且基础内核本身我认为,仍然与普通内核不同——我不知道最新版本是什么,但如果它有点落后也不足为奇,因为在这种情况下需要仔细检查的东西比与 pi。
我所熟悉的实际 Android 制造商不会经常更新内核,而且他们会在某个点之后停止更新,因为他们没有承诺让您的设备可无限更新。他们之所以不经常更新它,首先可能是因为“如果它没有损坏,就不要修复它”——这样做比保持原样风险更大。
这是一种理智的态度;对于消费设备制造商来说,如果尝试跟上 kernel.org 的步伐,那就太疯狂了。这不是重点。 Linux 是开源的,其开发是公开的;您可以访问与内核开发人员相同的通信渠道和 git 存储库。事实并非如此,因为他们认为每个人都应该在发布某些东西后立即升级。之所以如此,是因为开发是公开且开源的。我可以向您保证,专有操作系统不会从生产它们的公司一直更新到绝对最新的内核——它们可能需要几个月的时间和岁月后面——但是因为你不了解那里的情况,所以你不会注意到这一点。
与此相关,还值得注意的是 Linux 内核开发独立于任何发行版。严格来说,它们并不一起工作,因此新内核的目的并不是专门部署在 Android、ARM 或 Debian 上。这些是独立的实体,可以自行决定使用什么和不使用什么。他们没有理由早上醒来说,“好吧,Torvalds 先生发布了 4.2 - 最好继续下去”。
这种关系的优点的一个具体例子是,如果内核 4.2 发现有一些错误,发行版 X 不会立即受到这些错误的影响。除非它一发布就盲目更新内核。相反,发行版 X 可以等到 4.2 进行合理的现场测试;如果有问题,可以跳过,等待下一个。
大多数最终用户也可能不希望每周更新其操作系统内核。发行版不会先发布 3.17.1,然后发布 3.17.2,然后发布 3.17.3。他们可能会发布 3.17.2,然后发布 3.18.5。事实上,这些版本之间的差异对于大多数用户来说可能并没有多大意义——因此除了令人恼火之外,它毫无意义。
同样的逻辑也适用于路由器和 Android 设备。