Linux 内核 25 年的发展历程能否用通俗的语言来限定或抽象?

12 kernel history

Linux 内核已经有将近 25 年的历史了。如果我必须提出自 1991 年(其成立日期)以来 Linux 内核的发展历史的简短版本,特别是自 1994 年(1.0.0)至今,我做不到。如果没有阅读每一个内核发行说明,我能做的最好的事情就是提供以下内容,这些是添加到内核 3.11 之前的一般发行功能(省略了注释和链接):

  • Linux 内核1.0 版于 1994 年 3 月 14 日发布。该 Linux 内核版本仅支持基于 i386 的单处理器计算机系统。便携性成为一个问题,因此 1.2 版(1995 年 3 月 7 日发布)获得了对使用基于 Alpha、SPARC 和 MIPS 架构的处理器的计算机系统的支持。
  • 2.0 版于 1996 年 6 月 9 日发布。该系列共有 41 个版本。2.0 的主要特点是支持 SMP(即在单个系统中支持多个处理器)和支持更多类型的处理器。
  • 2.2 版(1999 年 1 月 26 日发布)移除了全局自旋锁并提供了改进的 SMP 支持,并增加了对 m68k 和 PowerPC 架构以及新文件系统的支持(包括对 Microsoft 的 NTFS 的只读支持)。
  • 2001 年 1 月 4 日发布的2.4.0 版包含对 ISA 即插即用、USB 和 PC 卡的支持。它还包括对 Hewlett-Packard 的 PA-RISC 处理器的支持。2.4.x 的开发发生了一些变化,因为在整个系列期间提供了更多功能,包括:支持蓝牙、逻辑卷管理器 (LVM) 版本 1、RAID 支持、InterMezzo 和 ext3 文件系统。
  • 2.6.0 版本于 2003 年 12 月 18 日发布。2.6.x 的开发进一步改变为在整个系列期间包含新功能。在 2.6 系列中所做的更改包括:将 µClinux 集成到主线内核源代码中、PAE 支持、支持多条新的 CPU 线、将 ALSA 集成到主线内核源代码中、最多支持 2 32 个用户(从 2 16 起),最多支持 2 29 个进程 ID(仅限 64 位,32 位架构仍限制为 2 15),大幅增加设备类型和每种类型的设备数量,改进64位支持,支持文件系统最大支持16 TB的文件系统,内核抢占,支持Native POSIX Thread Library (NPTL)、用户模式 ​​Linux 集成到主线内核源代码、SELinux 集成到主线内核源代码、InfiniBand 支持等等。同样值得注意的是在 2.6.x 版本中添加了几个文件系统:FUSE、JFS、XFS、ext4 等等。有关 2.6 内核系列历史的详细信息可以在 kernel.org 的 2.6 内核系列源代码发布区域的 ChangeLog 文件中找到。
  • 3.0 版于 2011 年 7 月 22 日发布。Torvalds 宣布重大变化是,“没有。绝对没有。” 2011 年 5 月 30 日,Torvalds 宣布:“...让我们确保下一个版本不仅是一个全新的闪亮数字,而且也是一个好的内核。” 经过预期的 6-7 周开发过程,它将在 Linux 20 周年纪念日附近发布。
  • 2012 年 12 月,Torvalds 决定通过取消对 i386 处理器的支持来降低内核复杂性,使3.7 内核系列 成为最后一个仍然支持原始处理器的内核。同系列统一支持ARM处理器。
  • 2013 年 9 月 2 日发布的3.11 版添加了许多新功能,例如用于 open(2) 的新 O_TMPFILE 标志以减少临时文件漏洞、实验性 AMD Radeon 动态电源管理、低延迟网络轮询和 zswap(压缩交换缓存)。

我还可以补充一点,Linux 基金会多年来一直在报告内核开发。这些是 2012-2013 内核开发亮点:

  • 来自代表 536 家公司(我们知道)的 3,738 名个人开发人员合并了近 92,000 个变更集。
  • 大量重要的新功能已合并到主线中。其中包括完整的无滴答操作、用户命名空间、ARM 的 KVM 和 Xen 虚拟化、调度程序中的每个实体负载跟踪、用户空间检查点/重启、64 位 ARM 架构支持、面向 F2FS 闪存的文件系统、许多针对在延迟和缓冲膨胀问题上,两个独立的子系统为块存储设备提供快速缓存等等。
  • 针对 Android 特定内核功能的长期争论已经完全消失。广受讨论的“唤醒锁”功能已被用于最新 Android 设备的不同主线解决方案悄悄取代。
  • 在此期间,使用自动化工具查找开发内核中的错误的情况显着增加。“三位一体”模糊测试器和零日构建和启动系统等工具正在预发布内核中发现大量错误,缩短开发周期并使社区能够提供更高质量的版本。
  • 移动和嵌入式行业的贡献继续增加。例如,Linaro、三星和 TI 共同贡献了本文前一版更改的 4.4%;在 3.10 之前的这段时间里,它们贡献了所有变化的近 11%。
  • 核心项目首次参与妇女外展计划,导致 7 个可用职位的 41 份申请。在申请过程中,向内核提交了 374 个补丁,其中超过 1/3 的补丁在 3.10 内核版本中被接受。实习过程现在正在进行中,但是直到未来的内核版本才会开始显示结果。

此外,量化内核发生的事情并不是很难,因为我们有超出单个提交的指标。例如,我们知道 1994 年的 1.0.0 内核有 176 250 行代码;我们知道像 3.10 这样的现代内核有 15 803 499 行代码。相当多。内核发布频率已增加(3.10 为 63 天),以及更改率(我们所说的每小时 9 次提交或更多)。引用 Linux 基金会的话:

在任何以前的公共软件项目中,保持这种变化速度多年的能力是前所未有的。

但在我看来,所有这些都没有带来什么洞察力。因此,我想问:

  1. 除了构成这个内核的所有列出的特征随着时间的推移线性相加之外,这 25 年的演变能否被概括地限定
  2. 这是否对 Linux 内核的内容或发展方向有任何了解?经过25年的发展,肯定可以得出一些结论吗?

寻找通俗易懂的抽象答案,无需诉诸一切。

Fah*_*tha 11

你问:

除了构成这个内核的所有列出的特征随着时间的推移线性相加之外,这 25 年的演变能否被概括地限定?这是否对 Linux 内核的内容或发展方向有任何了解?

我怀疑这些问题是否有明确的答案。但是,我认为不难理解推动 Linux 内核发展的力量。

首先,计算机是越来越重要的东西。乔姆斯基在某处评论说,它们是任何工业化经济的核心。没有操作系统,计算机就一无是处,因此操作系统很重要。

在 80 年代和 90 年代的一段时间内,专有操作系统逐渐兴起。这在某种意义上是一种不自然的状态。微软的 Windows 一度占据主导地位,在某种意义上仍然如此,但它只是通过利用网络效应来保持其地位。

随着互联网的兴起,产生社区操作系统成为可能。然而,这样的操作系统只有在不能被私有化的情况下才有用。BSD 操作系统系列不属于该类别。因此,Linux 内核作为无法私有化的社区操作系统的核心而兴起。

请注意,许多大型计算机供应商都支持 Linux 内核。为什么?个人关心自由。社区关心自由。公司只关心利润和相关战略。我相信,如果您愿意的话,许多计算机公司都接受了“商品化”操作系统、“公平竞争环境”的概念。他们看到了微软通过专有操作系统赚了很多钱的例子,但不是每个人都可以成为微软,让一个单一的供应商处于这样的权力位置,至少可以说是有问题的,如果仅仅是因为它给从其他公司的角度来看,他们是一种不公平的优势。

因此,我认为由于大多数公司都无法成为微软,或许也不想成为,因此决定支持“商品”操作系统。再次,一个公平的竞争环境。因此,每个人都可以将这个操作系统用于他们想要的任何目的,并且该组中的任何人都没有比其他任何人具有优势。另一种看待它的方式是,让像操作系统这样基本的东西成为专有是对自由市场原则的严重干扰。一般来说,如果公司可以站在胜利的一方,他们不会特别支持自由市场,但如果他们不能,那么他们就是。

Linux 内核的大部分特性都可以真正从这些动态中推导出来。例如,类 Unix 操作系统的模块化和可延展性非常适合设计为“商品”的操作系统。此外,内核项目的快速发展在一定程度上是因为它试图满足所有这些众多的企业需求,使其成为他们所需要的。虽然很多活动都集中在硬件支持/驱动程序上,但在该领域之外也有很多活动;不断开发新功能并维护和改进现有功能。

当然,我们不应该忽视社区的愿望,通常称为自由软件社区,有时也称为 FOSS(自由和开源软件),拥有一个免费的操作系统供普通人使用,不受公司控制。毕竟,像 Debian 和 Fedora 这样的项目是由相信这些价值观的志愿者运营的。不过,我认为企业的作用也不可小觑。