如果您对自由软件和其操作系统,比如各种 Unix 和 Linux 有所了解,多半会听说过 GNU 这个缩写。如果对 GNU 还不太了解,在本文中,我们将揭开 GNU 是如何引发了一场软件革命,了解自由软件原则,并介绍这一理念为何会如此重要。
在开始之前,思路必须先回到上世纪 70 年代,探究 GNU 诞生的原因,揭示 GNU 及其所依托的自由软件哲学背后的奥秘。
GNU 的诞生
故事要从 20 世纪 70 年代说起。当时,年仅 18 岁的数学天才 Richard Stallman 在哈佛大学学习物理,并在麻省理工学院人工智能实验室开始了他的职业生涯。他与一组专门使用自由软件的团队成员一起工作。
是的,你没看错,自由软件。当时,也就是 20 世纪 70 年代,软件免费分发已经非常普遍。然而,到了 20 世纪 80 年代初,情况急转直下:公司和组织开始大规模专利化他们的软件,导致自由软件的份额大幅下降。这严重扰乱了程序员们自由合作、共享代码以及共同开发的传统模式。
由于专有软件和限制性许可证的不断侵袭,Richard Stallman 感到非常沮丧。他设想了一个所有人都能自由获取、修改和分发软件的世界,这些因素促使他成立了一个致力于推广和捍卫自由软件原则的组织。
1983 年,Richard Stallman 宣布了 GNU 计划,这是一次雄心勃勃的尝试,旨在创建一个完全自由的操作系统。他的愿景围绕着「认为所有软件用户应该拥有的四项基本自由」展开:
- 自由运行软件,无论出于任何目的。(即使用于商业目的)
- 自由研究软件,以了解其工作原理,并根据需要对其进行修改。
- 自由分发软件副本的权利。
- 改进软件并与社区分享这些改进的自由。
什么是 GNU
Richard Stallman 选择了「GNU」作为「GNU’s Not Unix」的缩写,巧妙地表达了 GNU 的灵感来源和与 Unix 操作系统的差异。简而言之,这是一种富有趣味的方式,表达了 GNU 虽然受到 Unix 操作系统的启发,但它是不同的,更重要的是,它是自由的!
为什么 GNU 是免费的?Unix 不是免费操作系统吗?实际上,BSD 与 GNU 和 Unix 不同。BSD 在 2000 年世纪之交时非常流行,后来被 Linux 所超越,如今广泛被当作 Unix 的代名词,但这并不准确。
Unix 是一款专有操作系统,也就是说它的源代码不对外发布。有许多 Unix 的变种,而 BSD 则是一款「类 Unix」的开源操作系统。Unix 最初是由 AT&T 的贝尔实验室开发的,在 20 世纪 80 年代 GNU 崭露头角时,Unix 是当时主要的闭源操作系统。
为了传播自由软件的原则并支持 GNU 计划,Richard Stallman 于 1985 年成立了自由软件基金会(FSF)。同年,他发表了如今传世的《GNU 宣言》,详细阐述了 GNU 计划背后的动机、目标和哲学,同时也作为一种行动的呼唤,鼓励程序员加入该项目,鼓励用户支持这一倡议。
虽然「自由软件」和「开源」这两个术语有时会被混淆,但它们之间存在着微妙的哲学差异。自由软件强调用户的自由,包括使用、修改和分发软件的权利;开源软件则强调软件开发的协作和透明性,认为通过公开源代码,软件可以得到更快的改进和更广泛的使用。
在我们一般理解中,GNU 不是一个操作系统,而是一个核心工具集。它包括了构建操作系统所需的许多基本工具,例如 GCC(GNU 编译器集合)、Shell、文本编辑器、文件管理器等。
- GNU 计划的目标是创建一个完全自由的操作系统,也就是 GNU 操作系统。然而,GNU 计划没有开发内核,而内核是操作系统的核心。因此,GNU 操作系统的核心是 Linux 内核。
- Linux 内核是一个免费、开源的操作系统内核,由 Linus Torvalds 于 1991 年开发。Linux 内核是 GNU 操作系统的核心,它提供了操作系统的基础设施,包括进程管理、内存管理、设备驱动程序等。
因此,GNU 计划和 Linux 内核是两个相互依赖的项目。GNU 计划提供了构建操作系统所需的工具,而 Linux 内核提供了操作系统的核心。这两个项目的结合,使得 GNU/Linux 成为了世界上最流行的操作系统之一。
GNU + Linux:完美的组合
时间来到 1991 年,一位年仅 21 岁的芬兰赫尔辛基大学计算机科学学生 Linus Torvalds 正在编写一个操作系统内核。更引人入胜的是接下来的故事。
Linus Torvalds 拥有一个独立的内核软件,这个内核如果没有周边的工具和实用程序与之互动,几乎没有太多实际价值。而与此同时,GNU 计划已经开发了这些工具,但却没有相应的内核与之互动。结果显而易见了。
通过整合 GNU 计划开发的工具,Linus Torvalds 将他的内核打造成了一个完整的操作系统。在 1991 年 8 月 25 日,他发布了如今传世的声明,宣布已经完成了他的「爱好项目」。这一事件标志着 GNU/Linux 操作系统的诞生,并将永远改变软件行业。
Linux 还是 GNU/Linux,哪个说法更准确
简单总结前文内容,很久以前,曾经有两个雄心勃勃的项目诞生:
- GNU 计划由 Richard Stallman 于 1983 年发起,旨在创建一个完全自由的操作系统。GNU 开发了许多实用工具,但缺少一个至关重要的部分——内核,操作系统的核心。
- 1991 年,Linus Torvalds 发布了 Linux 内核。Linux 内核与 GNU 组件结合使用,形成了一个完整的、自由的操作系统。
关于这个操作系统的名称,人们一直存在争议。有些人认为应该称之为 GNU/Linux,以彰显 GNU 计划的巨大贡献。而另一些人则认为应该称之为「Linux」,强调内核的重要性。
从技术角度来看,Linux 仅指内核。但在现实中,Linux 已经成为了 GNU/Linux 操作系统的通用名称。
GNU 对当今软件世界的影响
- GNU 的自由软件访问理念在推动软件使用的民主化,和激发创新方面发挥了关键作用。它在软件界留下了不可磨灭的印记,开创了自由软件运动的先河,并为无数开源计划奠定了基础。
- GNU 和 Linux 开发者的共同努力创造了一个强大、可扩展且免费的操作系统,如今已经成为专有操作系统的可行替代品,在全球数百万台服务器、台式机和嵌入式系统上广泛运行。
- GNU 计划的影响也深远地延伸到了企业界。IBM、Google、Facebook、阿里巴巴、字节跳动等科技巨头都充分利用开源软件,认识到社区驱动开发的价值。
- 与此同时,Linux 已成为互联网的支柱,为大多数 Web 服务器提供支持,同时也已成为云计算、虚拟化和容器技术的事实标准,为现代全球信息基础设施提供了坚实的基础。
- 最后,全球的教育机构和研究组织都充分利用 GNU 工具和 Linux 操作系统的力量进行学习、教学和新技术的研发。
综合而言,由 Richard Stallman 于 40 年前发起的 GNU 计划是软件和计算历史上最重要的里程碑之一,它在很大程度上塑造了今天推动全球信息基础设施的核心元素。