要解释什么是 Linux,你必须先解释什么是操作系统。
关于操作系统,有一点很重要:你永远不应该看到它。
因为没有人真正“使用”操作系统。
在二十世纪的最后几年,正值互联网泡沫和新千年狂热的高潮,一场无声的革命正在悄然发生。
一个全新的操作系统,诞生于芬兰赫尔辛基一间卧室里的一个业余爱好,正席卷全球。
它的名字叫 Linux。
仿佛在一瞬间,这个叛逆的软件从一个学生分享的想法,演变成一个全球性的现象,吸引了各大洲数百万忠实用户。
到 21 世纪初,Linux 已经开始驱动网络服务器,甚至在美国宇航局(NASA)的太空设备上运行。
这不仅仅是一项从零开始的技术。
它是一种全新的软件开发方式的融合:开源的理想与协作社区相结合,挑战了当时技术的构建方式。
今天,Linux 的影响无处不在。
你口袋里的安卓手机,其内核直接源于 Linux。
世界上几乎所有的超级计算机和绝大多数服务器都依赖于它。
要理解 Linux 是如何开始的,我们必须回到 80 年代初,当时理查德·斯托曼点燃了自由软件运动的火花。
十年后,这些原则为芬兰的一名学生铺平了道路,他编写的内核将改变整个世界。
自由的火花:GNU 项目的诞生
时间回到 1980 年,在麻省理工学院(MIT)著名的人工智能实验室里。
在一间凌乱的打印室里,一位名叫理查德·斯托曼的年轻程序员正对着一台新买的激光打印机皱眉,它又卡纸了。
通常情况下,斯托曼会通过修改打印机的代码来轻松解决这个问题,就像他处理旧设备一样。
但这一次,情况不同了。
当他寻找源代码进行修改时,却一无所获。
代码是专有的,被公司锁定。
斯托曼找到了持有代码的研究员,并请求一份副本。
然而,对方拒绝了,因为代码是根据保密协议(NDA)提供的,他承诺不会与任何人分享。
从那一刻起,斯托曼发誓再也不会在计算机面前感到如此无助。
他构想了一个任何人都可以学习、改进和分享的操作系统。
这正体现了 70 年代实验室里盛行的黑客文化的协作精神。
1983 年,他在一个网络新闻组上宣布了一个大胆的计划:
他将创建一个与 Unix 完全兼容的操作系统,并免费分发给所有人。
他将其命名为 GNU。
[!NOTE] GNU 是一个递归缩写,意思是 “GNU’s Not Unix”(GNU 不是 Unix)。 这既体现了黑客的幽默感,也传达了明确的挑战信息。
斯托曼写道:
“从下个感恩节开始,我将编写一个与 Unix 完全兼容的操作系统,名为 GNU,并免费提供给任何可以使用它的人。”
到 80 年代末,GNU 项目已经构建了几乎一个完整的操作系统。
工具如 GCC 编译器和 Emacs 文本编辑器已经就位。
但一个至关重要的部分仍然缺失:内核。
斯托曼的团队开始了一个名为 GNU Hurd 的项目,但进展缓慢。
这个内核从未达到可用的阶段。
没有人能想到,这块缺失的拼图很快就会出现,但它来自一个意想不到的来源。
不是来自麻省理工学院或任何科技巨头。
而是来自世界一个遥远角落里,一位谦逊的大学生。
一个学生的业余爱好
一位名叫林纳斯·托瓦兹的 21 岁计算机科学学生,正坐在他小公寓里的个人电脑前。
林纳斯天性害羞但充满好奇,完全沉浸在一个个人项目中。
他正在为自己的乐趣编写一个操作系统的内核。
促使他这么做的是好奇心和现实限制的结合。
自从读了他的教授安德鲁·塔南鲍姆写的《操作系统:设计与实现》一书后,林纳斯就对 Unix 系统深深着迷。
他想在自己的家用电脑上运行 Unix。
但当时唯一的选择是一个名为 Minix 的系统,由他的教授安德鲁·塔南鲍姆编写。
Minix 系统功能非常有限,因为它主要是为教学目的而设计的。
塔南鲍姆对其施加了严格的限制,使其保持简单,并且不鼓励任何外部的修改。
由于对这些限制感到沮丧,并渴望探索他新的 Intel 386 处理器的全部潜力,林纳斯做了一个任何感到厌烦的黑客都会做的事情。
他决定自己创造一个更好的东西。
在 1991 年的夏天,林纳斯与世隔绝地编程。
他编写代码来控制 CPU、内存和硬盘——内核的核心。
他没有统治世界的宏伟计划。
他没有想过要改变计算机行业,甚至没有想过要实现斯托曼的梦想。
他后来承认,他开始这个项目主要是为了学习 Intel 386 处理器,并拥有一个可以在家运行的类 Unix 系统。
到八月底,林纳斯的内核开始工作了。
它可以运行一些来自 GNU 的基本程序,比如 Bash shell 和 GCC 编译器。
系统不会崩溃。
它非常原始,但它能工作。
在这一点上,任何一个黑客都可能会选择秘密地继续修补。
但林纳斯做出了一个改变软件历史进程的决定。
他决定向世界伸出援手,征求反馈。
改变世界的宣告
1991 年 8 月 25 日。
在线社区 comp.os.minix 的用户们,这个 Minix 系统爱好者的聚集地,看到了一个引人注目的新帖子。
标题是:“你最想在 Minix 中看到什么?”
帖子内容谦逊,甚至有些自嘲。
“大家好,所有使用 Minix 的人 -”
“我正在做一个(免费的)操作系统(只是一个业余爱好,不会像 gnu 那样庞大和专业)。”
“我从四月份就开始酝酿这个项目,现在它开始成形了。”
“我希望得到大家对 Minix 的好恶之处的任何反馈,因为我的操作系统与它有些相似。”
“我不会承诺会实现你们的建议,但最终我会简单地结束这个话题。”
这听起来像是一个普通的学生项目公告,没什么大不了的。
但在帖子末尾,他仿佛事后想起似的,又加了一行:
“附言:是的——它没有任何 minix 代码,并且它有一个多线程文件系统。它不可移植,并且可能永远不会支持除 AT 硬盘之外的任何东西,因为我只有这个。”
林纳斯明确地声明了他这个项目的谦逊规模和有限能力。
简而言之,林纳斯在说:
“我做了这个东西。它勉强能用。我打算免费发布它,但别指望太多。”
正如他所承诺的,林纳斯在 1991 年 9 月中旬发布了他的内核的第一个版本——0.01 版。
他将源代码上传到了一个 FTP 服务器上。
“Linux”之名的由来
你可能会问,Linux 这个名字是怎么来的?
关于这个名字的来源有很多说法,但真实的故事纯属偶然。
一个自然的想法是将他的名字 Linus 和 Unix 结合起来,得到 Linux。
但令人惊讶的是,林纳斯自己并不想这么称呼它。
他曾将他的项目命名为 Freax,这是 “free”、“freak” 和代表 Unix 的字母 “x” 的混合词。
当他将第一个版本上传到 FTP 服务器时,服务器管理员 Ari Lemmke 认为 Freax 是一个奇怪且没有吸引力的名字。
于是,他自作主张地将文件夹命名为 Linux。
这个名字迅速传播开来,并固定下来,最终成为官方名称。
林纳斯自己后来也说,起初他对这个系统以他的名字命名感到有些尴尬。
集市模式的演进
在 1991 年末和 1992 年,这个系统发展得非常快。
贡献开始是零星的,然后变成了洪流。
- 错误修复
- 硬件驱动
- 新功能补丁
这个过程是有机的,甚至有些混乱。
林纳斯频繁地发布更新,有时一周多次,并整合人们发送的有意义的补丁。
这种开发风格后来被称为“早发布,常发布”(Release Early, Release Often),并成为开源方法的基石。
林纳斯也证明了自己是一位务实且平易近人的领导者。
他信任贡献者,让他们负责。
他开放、快速和去中心化的方法可能看起来混乱,但对 Linux 来说,它奏效了。
Linux 随着每个版本的发布而迅速改进。
到 1992 年初,它开始作为一个快速、免费的内核引起人们的注意。
当它与 GNU 项目的用户程序(如 GCC 编译器、shell 和库)结合时,Linux 成为了一个完整、可用的操作系统。
斯托曼的 GNU 项目花费了数年时间构建了除内核之外的所有东西——那个直接与硬件对话的部分。
而林纳斯,恰好编写了那个缺失的部分。
因此,林纳斯的内核填补了 GNU 的空白。
结果是他们任何一方都无法单独实现的:一个完全免费、类似 Unix 的操作系统,由两个追求不同目标的独立力量共同构建,但在正确的时间汇合了。
宏内核与微内核之争
但并非所有人都对 Linux 印象深刻。
1992 年 1 月,林纳斯和他的偶像安德鲁·塔南鲍姆教授之间爆发了一场激烈的争论。
塔南鲍姆批评 Linux 的内核被设计成一个单一的、巨大的整体,即所谓的宏内核(Monolithic)。
他称之为“向 70 年代迈出的一大步”。
林纳斯则激烈地为自己的项目辩护,反击称 Minix 是“脑残”(brain-damaged)。
这场争论为项目吸引了更多的关注。
当林纳斯意识到他最初的限制性许可证阻碍了协作时,他做出了另一个决定性的决定。
他将 Linux 的许可证更改为理查德·斯托曼项目的 GNU 通用公共许可证(GPL)。
这确保了 Linux 将永远保持自由和开放。
更重要的是,它使 Linux 在法律上与庞大的 GNU 工具库兼容。
可以说,身体终于找到了它的心脏。
桌面战争
随着内核的稳定,社区面临着一个新的挑战:如何让它变得易于使用?
这引发了所谓的“桌面战争”(Desktop Wars)。
- 一群开发者创建了 KDE Plasma,一个功能强大且时尚的图形界面。但它基于一个名为 Qt 的软件工具包,在斯托曼和 GNU 项目看来,其许可证并非完全自由。
- 作为回应,GNU 项目发起了自己的倡议,并推出了 GNOME 界面。这直接反映了斯托曼毫不妥协的理想主义。
因此,桌面完全建立在开源之上。
务实的 KDE Plasma 和理想主义的 GNOME 之间的竞争异常激烈,推动了双方在追求使 Linux 易于使用的过程中实现了惊人的创新。
大教堂与集市
这种看似混乱但去中心化的进步,最终由黑客兼哲学家埃里克·雷蒙德(Eric S. Raymond)赋予了一个名字。
他在 1997 年写了一篇名为《大教堂与集市》(The Cathedral and the Bazaar)的文章。
在文章中,他将传统的、封闭的软件开发模式(大教堂)与 Linux 的开放、协作模式(集市)进行了对比。
graph TD;
subgraph 大教堂模式 (传统开发)
A[少数精英工程师] --> B{闭门造车};
B --> C[发布完美成品];
C --> D{用户被动接收};
D --> E[发现问题? 等待原始开发者修复];
end
subgraph 集市模式 (Linux 开发)
F[任何人都可以参与] --> G{开放式协作};
G --> H[持续迭代与发布];
H --> I{成千上万双眼睛审查代码};
I --> J[快速发现并修复缺陷];
end
如果你不理解这两种模式的区别,让我来解释一下。
大教堂模式
这是像微软这样的公司过去采用的老方法。
想象一小群工程师把自己锁在实验室里好几年,为了建造一座“大教堂”(一个复杂的程序)。
没有人能看到建筑过程。
当它完成后,它以一个完整、封闭的形式交付给人们。
如果管道或电力系统有问题,你必须等待原始工程师回来打开墙壁进行修复。
集市模式
这是 Linux 的工作方式,就像一个熙熙攘攘的露天市场。
建筑周围没有围墙。
每个人都参与其中:一个人砌砖,一个人刷墙,另一个人修理管道。
这看起来可能有些混乱,但实际上工作进展得更快,因为有成千上万双眼睛在审视每一个细节。
埃里克·雷蒙德用一句话总结了这一点,即“林纳斯定律”(Linus’s Law):
“只要有足够多的眼睛,所有的错误都是浅显的。”(Given enough eyeballs, all bugs are shallow.)
巨头的觉醒
世界开始注意到。
2000 年,最大的认可到来了。
计算机世界的旧巨头 IBM 宣布将向 Linux 投资 10 亿美元。
这一举动向各地的公司发出了一个信号:Linux 已经为严肃的、关键任务的业务做好了准备。
但随着 Linux 的崛起,另一个巨头也苏醒了:微软。
微软并不认为这个免费的操作系统是一种新奇事物,而是一个威胁。
史蒂夫·鲍尔默发表了他那句名言,称 Linux “是一种癌症,它会附着在它所接触的任何知识产权上”。
微软发起了一场恐惧、不确定性和怀疑(FUD)的运动。
它发布研究报告,试图证明其 Windows 系统更便宜、更好。
但真正的威胁尚未到来。
2003 年,一家名为 SCO Group 的公司对 IBM 提起了 10 亿美元的诉讼。
其指控是爆炸性的:SCO 声称其拥有的 Unix 代码被非法复制到了 Linux 内核中。
这对 Linux 来说是一个生存威胁。
如果 SCO 获胜,Linux 可能会陷入多年的法律战。
或者更糟,它可能被迫为每个下载的副本支付版税。
这起诉讼是关于开源精神本身的一场战斗。
整个社区团结一致,众志成城。
经过多年的激烈法律斗争,法院最终裁定支持 IBM 和 Linux 社区。
项目终于安全了。
成熟与未来
在经受住大公司的攻击和法律战之后,Linux 项目需要走向成熟。
2007 年,Linux 基金会成立。
这是一个中立的、非营利性组织,负责培育该项目、托管其基础设施,并聘请林纳斯·托瓦兹和其他核心开发人员来维护内核的稳定性。
今天,该基金会的成员包括技术领域的一些大腕:
- Oracle
- Intel
- Amazon
你可能不会感到惊讶,Linux 基金会最大的贡献者之一是微软。
昔日的敌人终于加入了革命。
Linux 的革命不是通过推翻国王来实现的。
而是通过在他脚下为新世界奠定基础。
这是一个证明,充满激情的人们跨越国界分享代码,确实可以改变世界。
不是通过策划一场革命。
而是通过在一个赫尔辛基学生的卧室里,偶然地开始一场革命。