谷歌搜索显示这个 slashdot 故事产生了这个自 2016 年以来没有提交过的 github 存储库。github.com上列出了 22,602 个分支,但这些将大部分(如果不是几乎全部)只是用于torvalds/linux的开发分支。
我之前读过 Linux 已经变得相当笨拙。在我看来,至少在用户体验方面,Linux 比我记忆中的 10 多年前要精致得多(显然这不是对内核的准确评估;我现在才读 K&R,从未涉足内核源代码,除了粗略的一瞥,产生了“哇,我无法理解这一行”,但我知道内核中有关 linux-on-the-laptop 功能的大量开发,例如) . 无论如何,我知道我见过 BSD 人抱怨 Linux 垃圾。考虑到基于 vim 的 vim 的 neovim 分支,我认为类似的努力会对内核有所回报。
引发这个问题的是这篇关于 LWN的文章,该文章讨论了使用 clang 编译 Linux 的尝试。我读到内核使用了许多特定于 gcc 的怪癖/特殊功能进行优化(尽管与我的记忆相比,链接的文章似乎淡化了它们),我开始怀疑是否有人试图重构/分叉内核来制作它更便携,或者至少可以在 gnu 环境之外编译。我也明白 gcc 本身很粗鲁,Linus 自己也批评过。
我知道我个人对 RMS 和 GNU 的厌恶以及对没有 GNU 的 Linux 的兴趣并不孤单。我知道Alpine Linux没有 gnu 工具,但内核仍然是用 gcc 编译的,不是吗?有很多关于替代工具链和用户区软件的参考,但我特别想知道内核以及是否有消除 gcc/gnu 依赖的分叉——考虑这是标题的一个附属问题——在我看来这将是一个浪费单独问。
没有人会完成同步 clang 和 Linux 的工作,然后将其作为一个长期的 fork 来维护。尤其是当主线有这样的兴趣和意愿时。 除非它是您会发现的大型可见项目的一小部分。(正如你所做的......)。
Android,如第一个答案所述。
有些部分被合并了,所以也许它没有以前那么糟糕。我真的不是最新的。Mainline 肯定适用于一些与 ARM CPU 相关的东西,例如 BIG.little。并且 Android 在主线版本上反复变基;谷歌不会落后太多。
但这是一个长期运行的叉子。它不按照“上游优先”规则运行。他们提供了大量的硬件支持。
IMO 的“Android”和“Google”很好地指出了你需要的资源水平,这证明被称为 Linux 的分支是合理的。
还有 RHEL 内核,截至 2018 年,它们的名称很吓人,例如 2.6.32-754。这些不仅仅是安全更新;它们将包括对一些新硬件的支持,同时旨在提供更接近基本内核版本的行为,例如 2.6.32。我相信 fork 是一个合适的词,用于 RH 维护它所需的资源。
在广泛的最新硬件上运行良好是昂贵的,因此很有价值。这主要是 Linux 内核项目的内容,我想说这是理解这两个分支的最重要的因素。
你可能会在 openhub.net 上比较 vim 和 Linux 的代码大小,然后想,哦,Linux “只是”大约 20 倍大小。然而,提交数量的差异要大得多;流失率相当凶猛。
此外,不仅仅是内核代码更难正确......虽然它是......但它也是硬件支持。当您看似无害的重构最终破坏了一些设备时,您需要访问这些特定设备来调试和修复问题。
硬件支持让我想到了 https://en.wikipedia.org/wiki/Embeddable_Linux_Kernel_Subset :-P。
在这个服务器虚拟化的世界中,您可能还认为会有针对它进行优化的分叉,因为它们不需要跟上这么多不同的硬件。我想不出任何好的例子。您可以查找“unikernels”;似乎有几个不是基于Linux的。
linux-rt / PREEMPT_RT也被认为是树外补丁集。这是一个基于连续主线版本的补丁集。200 KB(压缩)的专业代码是一个可观的补丁集。它的一些大块已经被合并了,至少有一点。
Android 是 Linux 的一个分支。根据莱纳斯。 https://www.youtube.com/watch?v=duDC_u4ydVo 我敢肯定不是很有帮助,您可能正在寻找一种适合桌面使用的.. android 不是