Linux 内核是快25岁了。如果我必须想出一个简短的版本来介绍 Linux 内核自 1991 年(其成立日期)以来的发展历史,特别是自 1994 年(1.0.0)至今,我做不到。除了阅读每个内核发行说明之外,我能做的最好的事情就是提供以下一般内容发布功能添加到内核直至版本 3.11(省略注释和链接):
- 1.0版本Linux 内核于 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 的只读支持)。
- 版本2.4.0于 2001 年 1 月 4 日发布,包含对 ISA 即插即用、USB 和 PC 卡的支持。它还包括对惠普 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 文件大小的文件系统、内核抢占、支持本机 POSIX 线程库 (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处理器。
- 3.11版本于 2013 年 9 月 2 日发布,添加了许多新功能,例如用于减少临时文件漏洞的 open(2) 的新 O_TMPFILE 标志、实验性 AMD Radeon 动态电源管理、低延迟网络轮询和 zswap(压缩交换缓存)。
我还可以补充一点,多年来Linux基金会已经报告关于内核开发。以下是 2012-2013 年内核开发亮点:
- 代表 536 个公司(据我们所知)的 3,738 名个人开发人员合并了近 92,000 个变更集。
- 大量重要的新功能已合并到主线中。其中包括完全无滴答操作、用户命名空间、ARM 的 KVM 和 Xen 虚拟化、调度程序中的每个实体负载跟踪、用户空间检查点/重新启动、64 位 ARM 架构支持、F2FS 面向闪存的文件系统、许多网络改进旨在在延迟和缓冲区膨胀问题上,两个独立的子系统为块存储设备提供快速缓存等等。
- 关于 Android 特定内核功能的长期争论已经完全消失。备受讨论的“唤醒锁”功能已悄然被最新 Android 设备中使用的不同主线解决方案所取代。
- 在此期间,使用自动化工具查找开发内核中的错误的情况显着增加。像“trinity”模糊测试器和零日构建和启动系统这样的工具正在发现预发布内核中的大量错误,从而缩短了开发周期并使社区能够提供更高质量的版本。
- 移动和嵌入式行业的贡献持续增加。例如,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 基金会的话:
在之前的任何公共软件项目中,能够多年维持这种变化速度的能力是前所未有的。
但在我看来,所有这些都没有带来多少洞察力。因此,我想问:
- 这四分之一个世纪的演变可以概括吗合格的 除了随着时间的推移构成该内核的所有列出的功能的线性相加之外?
- 这是否能让我们深入了解 Linux 内核的含义或发展方向?经过25年的发展,一定可以得出一些结论吗?
寻找一个通俗易懂的抽象答案,无需诉诸一切。
答案1
你问:
这四分之一个世纪的演变是否可以概括地限定为超越随时间推移构成该内核的所有列出的功能的线性相加?这是否能让我们深入了解 Linux 内核的含义或发展方向?
我怀疑这些问题是否有明确的答案。不过,我认为不难理解推动 Linux 内核发展的力量。
首先,计算机变得越来越重要。乔姆斯基曾在某处说过,它们是任何工业化经济的核心。没有操作系统,计算机就什么都不是,因此操作系统变得很重要。
在 80 年代和 90 年代,专有操作系统一度占据主导地位。从某种意义上说,这是一种不自然的情况。微软的Windows曾一度占据主导地位,从某种意义上说现在仍然如此,但它只是通过利用网络效应来保持其地位。
随着互联网的兴起,创建社区操作系统成为可能。然而,这样的操作系统只有在不能被专有化的情况下才有用。 BSD 系列操作系统不属于该类别。因此,Linux 内核作为无法私有化的社区操作系统的核心而崛起。
请注意,许多大型计算机供应商都支持 Linux 内核。为什么?个人关心自由。社区关心自由。公司只关心利润和相关战略。我相信,如果你愿意的话,许多计算机公司都接受了“商品化”操作系统、“公平竞争环境”的概念。他们研究了微软通过操作系统私有化赚了很多钱的例子,但并不是每个人都可以成为微软,而让单一供应商处于这样的权力地位,可以说是最不成问题的,即使只是因为它给了从其他公司的角度来看,他们获得了不公平的优势。
因此,我认为,由于大多数公司无法成为微软,也许也不想成为微软,因此决定支持“商品”操作系统。再次,公平的竞争环境。因此,每个人都可以将这个操作系统用于他们想要的任何目的,并且组中的任何人都不会相对于其他人具有优势。另一种看待它的方式是,让像操作系统这样基本的东西变得专有是对自由市场原则的严重干扰。一般来说,如果企业能够站在胜利的一边,它们并不特别支持自由市场,但如果它们不能,那么它们就是。
Linux 内核的大部分特性确实可以从这些动态中推断出来。例如,类 Unix 操作系统的模块化和可延展性非常适合被设计为“商品”的操作系统。此外,内核项目快速发展的部分原因是它试图满足所有这些公司的需求。虽然许多活动都以硬件支持/驱动程序为中心,但在该领域之外也有许多活动;不断开发新功能并维护和改进现有功能。
当然,我们不应该低估社区(通常称为自由软件社区,有时也称为 FOSS(自由开源软件))的愿望,即拥有一个不受公司控制的免费操作系统供普通人使用。毕竟,像 Debian 和 Fedora 这样的项目是由相信这些价值观的志愿者运行的。不过,我认为企业所发挥的作用也不应该被低估。