1

Linux 的一些事:了解 GNU,自由软件理念的支柱

 11 months ago
source link: https://www.sysgeek.cn/what-is-gnu/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
GNU/Linux

如果您对自由软件和其操作系统,比如各种 Unix 和 Linux 有所了解,多半会听说过 GNU 这个缩写。如果对 GNU 还不太了解,在本文中,我们将揭开 GNU 是如何引发了一场软件革命,了解自由软件原则,并介绍这一理念为何会如此重要。

在开始之前,思路必须先回到上世纪 70 年代,探究 GNU 诞生的原因,揭示 GNU 及其所依托的自由软件哲学背后的奥秘。

GNU 的诞生

故事要从 20 世纪 70 年代说起。当时,年仅 18 岁的数学天才 Richard Stallman 在哈佛大学学习物理,并在麻省理工学院人工智能实验室开始了他的职业生涯。他与一组专门使用自由软件的团队成员一起工作。

是的,你没看错,自由软件。当时,也就是 20 世纪 70 年代,软件免费分发已经非常普遍。然而,到了 20 世纪 80 年代初,情况急转直下:公司和组织开始大规模专利化他们的软件,导致自由软件的份额大幅下降。这严重扰乱了程序员们自由合作、共享代码以及共同开发的传统模式。

由于专有软件和限制性许可证的不断侵袭,Richard Stallman 感到非常沮丧。他设想了一个所有人都能自由获取、修改和分发软件的世界,这些因素促使他成立了一个致力于推广和捍卫自由软件原则的组织。

1983 年,Richard Stallman 宣布了 GNU 计划,这是一次雄心勃勃的尝试,旨在创建一个完全自由的操作系统。他的愿景围绕着「认为所有软件用户应该拥有的四项基本自由」展开:

  1. 自由运行软件,无论出于任何目的。(即使用于商业目的)
  2. 自由研究软件,以了解其工作原理,并根据需要对其进行修改。
  3. 自由分发软件副本的权利。
  4. 改进软件并与社区分享这些改进的自由。

什么是 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 计划是软件和计算历史上最重要的里程碑之一,它在很大程度上塑造了今天推动全球信息基础设施的核心元素。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK