向 GNU 项目、自由软件运动和 Richard Matthew Stallman (RMS) 致敬
对于今天的我们开发人员来说,开源是一种根深蒂固的本能。我们有一个蓬勃发展的开发者社区,每天有成千上万的开发者为开源代码做出贡献。作为我们开发过程一部分的社区实际上从未存在过,如果没有Richard Matthew Stallman (RMS)的哲学,它可能也不存在。为了让您了解这位先生所宣讲的内容,请考虑一种情况,您必须在不使用 Internet 上提供的数百万个开源故障排除线程(包括 Stackoverflow 上的那些)的情况下进行编程。
Linus Torvalds 有句名言:“把 Richard Stallman 想象成伟大的哲学家,把我想象成工程师。”
一提到开源,首先想到的就是 Linux 和Linus Torvalds 。尽管 Linus Torvalds 创建了 Linux 并设计了当今大多数服务器工作的内核,但Richard Stallman 推广了自由软件的概念并在 1985 年开始了这一时刻。那时,Richard Stallman 通过 GNU 操作系统为自由软件运动奠定了法律、技术和哲学基础。如果没有这些贡献,Linux 和开源就不可能演变成我们今天看到的当前形式。
Richard Stallman 于 1971 年加入麻省理工学院人工智能实验室,当时这是一个蓬勃发展的黑客社区(热爱编程的人)。在 1970 年代末和 1980 年代初,Richard Stallman 在麻省理工学院人工智能实验室进行了一些人工智能研究和编程。在此期间,Richard 对所有者软件和 Unix 操作系统有过一些负面的体验。他想要处理和修复的一些代码被锁定,他无法进行所需的更改。尽管拥有该软件的公司会从理查德提议的更改中受益,但他被拒绝访问源代码。这种情况让他对专有软件的整个想法感到不安。由于这样的经历,他对知识产权和软件的概念产生了深刻的敌意。作为报复,他创立了自由软件基金会。
Stallman 是一名操作系统开发人员,他想开发另一种操作系统,让社区中的每个人都可以自由使用并根据需要调整源代码。
他想创建一个社区,该社区可以使用新的操作系统,而不会遇到无法与社区内的其他人共享的道德困境。
Richard Stallman 于 1984 年 1 月辞去了他在 MIT 大学的工作,开始研究GNU 操作系统。 GNU 本身的工作是一个 hack,一个递归的首字母缩写词,它代表GNU - Gnu's Not Unix 。这在 At&t 实验室大获成功,该实验室拥有 Unix 操作系统并且是专有的。
这个名字意味着 Stallman 正在设计一个类似于 Unix 但不是 Unix 的操作系统,因为 GNU 不是专有的,不像 Unix。
那么计划是什么? Stallman 自己打算如何构建一个像 Unix 一样的操作系统? Unix 由多个程序绑定到一个操作系统中。 Stallman 首先为每个程序编写一个替代程序,并邀请社区内的其他软件开发人员加入他的行列。当其他人看到这一进展时,许多软件开发人员开始加入他的行列,到 1991 年,正如 Stallman 所说,他们几乎完全重写了 Unix 的所有组件。这包括C 编译器、调试器、文本编辑器、邮件程序和许多其他程序。 GNU 操作系统的关键在于它是自由软件。自由软件意味着用户有运行、复制、分发、学习、更改和改进软件的自由。免费软件重在自由,而非价格。
要理解这个概念,您应该将“免费”视为“言论自由”,而不是“免费啤酒”。 ——理查德·斯托曼
由于免费软件并不意味着“免费啤酒”,因此该软件确实有所有者,并且也有许可证。自由软件不是公共领域。正如 Stallman 所说,将软件置于公共领域的问题在于,其他人会捡起、修改它,然后将其作为专有软件出售。如果自由软件最终被某人转换为专有软件,那将破坏自由软件运动的整个理念。为了防止这种情况,Stallman 决定使用一种称为“Copyleft”的技术,它是“Copyright”的一种反面。为此,Stallman 决定强制任何重新分发软件的人在软件中包含GNU 通用公共许可证的副本。这样,它确保了收到软件副本的人也有权自由使用它,正如最初在原始副本的许可证中所述。
GNU 项目从开发用于创建操作系统的基本工具包开始。工具包括文本编辑器、C 编译器、调试器和其他必要的设备。其目的是最终构建一个内核,该内核将位于参与 GNU 项目的开发人员开发的所有这些程序之下,并将其转换为完整的操作系统。整个工具包在 1990 年代完成并被广泛使用,但问题是它仍然使用 Unix 内核。这就是 Linus Torvalds 进入故事的地方。
虽然 GNU 项目已经准备好内核开发的基本工具包,但 Linus Torvalds 是在参与 GNU 项目的人之前开发内核的人。 Torvalds 指出,构建 Linux 的最初想法是在他的个人计算机上使用一个类似的环境,他在赫尔辛基大学曾经使用过这种环境。他试图找到类似大学计算机的软件,但找不到,所以他决定编写自己的内核。由于赫尔辛基大学的计算机使用的是SunOS ,Linux 的大部分灵感最初都来自于它。 SunOS曾经是Sun Microsystems拥有的基于 Unix 的专有操作系统。
Linus Torvalds 开发了一个单片内核,这意味着整个内核是一个广泛的程序,而 GNU 项目的成员正在尝试构建一个微内核。这就是为什么 Linus Torvalds 开发内核的速度比他在微内核上工作的同行要快。微内核由许多异步交互的小服务组成,使开发变得困难和耗时。 Richard Stallman 表示,Linus Torvalds 开发内核的速度比他快得多,因此最终社区决定使用 Linux 内核作为 GNU 操作系统的一部分。
具有讽刺意味的是,当 GNU 项目需要内核时,Linus Torvalds 开始独立开发 Linux。 Linus Torvalds 相信 Richard Stallman 在 GNU 自由和开放软件项目下制定的相同理念。这就是他们相互依赖的原因。如果没有 Linux 内核,GNU 操作系统就不可能出现,如果没有参与 GNU 项目的开发人员创建的免费和开源 C 编译器,Linus 也无法开发 Linux。
他们树立了一个完美的榜样,说明社区如何通过每个成员的小额贡献而蓬勃发展。开源社区的这一概念是当今 DNA 软件开发的一部分,这要归功于 Richard Stallman 的理念和贡献。
如果您喜欢这篇文章,请考虑订阅 [Cloudaffle,我的 YouTube 频道] ( https://www.youtube.com/c/cloudaffle ),我会在其中不断发布深入的教程和所有适合软件开发人员的寓教于乐的内容。你也可以在Hashnode上关注我;这是我的个人资料句柄@cloudaffle如果您喜欢这篇文章,请点个赞;它让我保持高动力👍。
也在这里发布。