paint-brush
GNU 项目的第一个里程碑经过@samwilliams
987 讀數
987 讀數

GNU 项目的第一个里程碑

经过 Sam Williams27m2022/12/03
Read on Terminal Reader

太長; 讀書

1976 年的版权法赋予程序员和公司对共同构建的程序主张个人作者权的权力。在这样的系统中,公司而不是黑客自动占据了优势。 Stallman 说,在 Emacs 15.0 发布前后的某个时候,他开始感受到版权的有益性质,这是该程序的免费软件版本的最后一次重要的前 GNU 项目升级。免费软件项目的第一个里程碑是基于 Lisp 的免费软件版本,称为 GOSMACS。 Stallman:“鼓励其他人采用相同的许可做法”
featured image - GNU 项目的第一个里程碑
Sam Williams HackerNoon profile picture

Free as in Freedom,作者 Sam Williams,是 HackerNoon Books Series 的一部分。你可以在这里跳转到本书的任何章节。 GNU 通用公共许可证

GNU 通用公共许可证

到 1985 年春天,Richard Stallman 已经确定了 GNU 项目的第一个里程碑——基于 Lisp 的 Emacs 自由软件版本。然而,为了实现这一目标,他面临着两个挑战。首先,他必须以一种使其独立于平台的方式重建 Emacs。其次,他必须以类似的方式重建 Emacs 公社。

与 UniPress 的纠纷凸显了 Emacs 公社社会契约中的一个缺陷。在用户依赖 Stallman 专家洞察力的地方,Commune 的规则仍然有效。例如,在 Stallman 不再担任 1984 年之前 Unix 系统 alpha hacker 职位的领域中,个人和公司可以自由制定自己的规则。

在 GOSMACS 之前,修改自由和行使作者特权的自由之间的紧张关系已经形成。 1976 年的版权法全面修订了美国版权法,将版权的法律保护范围扩大到软件程序。根据该法案第 102(b) 节,个人和公司现在拥有对软件程序的“表达”而非“程序中体现的实际过程或方法”进行版权保护的能力。参见 Hal Abelson、Mike Fischer 和Joanne Costello,“软件和版权法”,更新版(1998 年)。换句话说,程序员和公司有能力像对待故事或歌曲一样对待软件程序。其他程序员可以从作品中汲取灵感,但要制作直接副本或非讽刺性的衍生作品,他们首先必须获得原作者的许可。尽管新法律保证即使没有版权声明的程序也受到版权保护,但程序员们很快就维护了他们的权利,在他们的软件程序上附加了版权声明。

起初,斯托曼惊恐地看着这些通知。很少有软件程序不从过去的程序中借用源代码,然而,总统大笔一挥,国会就赋予了程序员和公司对共同构建的程序主张个人作者权的权力。它还为原本是非正式的系统注入了一定的正式性。即使黑客能够证明给定程序的源代码血统可以追溯到数年(如果不是数十年),用于与每个版权声明作斗争的资源和金钱也超出了大多数黑客的能力。简而言之,曾经由黑客与黑客解决的纠纷现在由律师与律师解决。在这样的系统中,公司而不是黑客自动占据了优势。

软件版权的支持者有他们的反对意见:如果没有版权,作品可能会进入公共领域。在作品上贴上版权声明也可以作为质量声明。将自己的名字附加到版权上的程序员或公司也附加了他们的声誉。最后,这是一份合同,也是一份所有权声明。使用版权作为一种灵活的许可形式,作者可以放弃某些权利以换取用户的某些行为形式。例如,只要最终用户同意不创建商业分支,作者就可以放弃禁止未经授权复制的权利。

正是这最后一个论点最终软化了斯托曼对软件版权声明的抵制。回顾 GNU 项目之前的那些年,Stallman 说他在 Emacs 15.0 发布前后的某个时候开始感受到版权的有益性质,这是 Emacs 的最后一次重要的前 GNU 项目升级。 “我看到过带有版权声明和简单的‘允许逐字复制’许可证的电子邮件,”Stallman 回忆道。 “那些绝对是 [an] 灵感。”

对于 Emacs 15,Stallman 起草了版权,赋予用户制作和分发副本的权利。它还赋予用户制作修改版本的权利,但无权要求对这些修改版本的独家所有权,就像 GOSMACS 的情况一样。

Stallman 说,虽然 Emacs 15 许可证有助于编纂 Emacs 公社的社会契约,但对于 GNU 项目而言,它仍然过于“非正式”。在开始开发 Emacs 的 GNU 版本后不久,Stallman 就开始与自由软件基金会的其他成员协商如何支持许可证的语言。他还咨询了帮助他建立自由软件基金会的律师。

专攻知识产权法的波士顿律师马克菲舍尔回忆起这段时间与斯托曼讨论许可的情况。 “理查德对它应该如何工作有非常强烈的看法,”菲舍尔说,“他有两个原则。第一个是让软件尽可能完全开放。第二个是鼓励其他人采用相同的许可做法。”

鼓励其他人采用相同的许可做法意味着关闭允许私人拥有的 Emacs 版本出现的出口。为了关闭这个逃生通道,Stallman 和他的自由软件同事提出了一个解决方案:用户可以自由修改 GNU Emacs,只要他们发布了他们的修改。此外,由此产生的“衍生”作品也将携带相同的 GNU Emacs 许可证。

这个最终条件的革命性本质需要一段时间才能被接受。Fischer 说,当时他只是将 GNU Emacs 许可证视为一个简单的合同。它为 GNU Emacs 的使用贴上了价格标签。 Stallman 向用户收取访问他们自己的后期修改的费用,而不是钱。也就是说,Fischer 确实记得合同条款是独一无二的。

“我认为要求其他人接受这个价格,即使不是独一无二的,在当时也是非常不寻常的,”他说。

当 Stallman 最终于 1985 年发布 GNU Emacs 时,GNU Emacs 许可证首次亮相。发布后,Stallman 欢迎普通黑客社区就如何改进许可证语言提出意见。一位接受提议的黑客是未来的软件活动家 John Gilmore,当时他是 Sun Microsystems 的顾问。作为咨询工作的一部分,Gilmore 将 Emacs 移植到了公司内部的 Unix 版本 SunOS 上。在此过程中,Gilmore 根据 GNU Emacs 许可证的要求发布了更改。 Gilmore 没有将许可证视为一种责任,而是将其视为黑客精神的清晰简洁的表达。 “在那之前,大多数许可证都是非常非正式的,”Gilmore 回忆道。

作为这种非正式性的一个例子,Gilmore 引用了一个 Unix 实用程序 trn 的版权声明。由 Perl 编程语言的未来创造者 Larry Wall 编写,patch 使 Unix 程序员可以轻松地将源代码修复(黑客术语中的“补丁”)插入任何大型程序。认识到此功能的实用性后,Wall 在程序随附的 README 文件中加入了以下版权声明:

版权所有 (c) 1985,Larry Wall 您可以全部或部分复制 trn 工具包,只要您不试图从中赚钱或假装它是您编写的。请参阅 Trn 工具包自述文件。 http://www.za.debian.org/doc/trn/trn-readme

这些声明虽然反映了黑客道德,但也反映了将这种道德松散、非正式的性质转化为严格的版权法律语言的困难。在编写 GNU Emacs 许可证时,Stallman 所做的不仅仅是关闭允许专有分支的逃生舱口。他以律师和黑客都能理解的方式表达了黑客道德。

Gilmore 说,没过多久,其他黑客就开始讨论如何将 GNU Emacs 许可证“移植”到他们自己的程序中。 1986 年 11 月,在 Usenet 上的一次对话的提示下,Gilmore 向 Stallman 发送了一封电子邮件,建议修改:您可能应该从许可证中删除“EMACS”,并将其替换为“SOFTWARE”或其他内容。很快,我们希望 Emacs 不会成为 GNU 系统的最大部分,并且许可证适用于所有部分。参见 John Gilmore,引用自发给作者的电子邮件。 Gilmore 并不是唯一提出更通用方法的人。到 1986 年底,Stallman 本人正致力于 GNU 项目的下一个重要里程碑,一个源代码调试器,并且正在寻找修改 Emacs 许可证的方法,以便它可以适用于这两个程序。 Stallman 的解决方案:删除所有对 Emacs 的特定引用,并将许可证转换为 GNU 项目软件的通用版权保护伞。 GNU通用公共许可证,简称GPL,由此诞生。

在制定 GPL 时,Stallman 遵循了使用十进制数字表示原型版本和使用整数表示成熟版本的软件惯例。 Stallman 于 1989 年发布了 GPL 的 1.0 版(Stallman 于 1985 年开发的一个项目),几乎是在 GNU Debugger 发布后整整一年,这是 Stallman 第二次涉足 Unix 编程领域。该许可证包含一个序言,阐明了其政治意图:

通用公共许可证旨在确保您可以自由赠送或出售免费软件的副本,您可以收到源代码或在需要时可以获得源代码,您可以更改软件或使用其中的一部分新的免费程序;而且你知道你可以做这些事情。

为了保护您的权利,我们需要做出限制,禁止任何人拒绝您这些权利或要求您放弃这些权利。如果您分发软件的副本或修改软件,这些限制将转化为您的某些责任。请参阅 Richard Stallman 等人,“GNU 通用公共许可证:版本 1”(1989 年 2 月)。 http://www.gnu.org/copyleft/copying-1.0.html

在塑造 GPL 的过程中,Stallman 被迫对旧 Emacs 公社的非正式原则进行了额外的调整。他曾经要求公社成员发布任何和所有更改,而 Stallman 现在只在程序员以与 Stallman 相同的公开方式传播他们的衍生版本的情况下才要求发布。换句话说,仅仅修改 Emacs 供私人使用的程序员不再需要将源代码更改发送回 Stallman。在后来成为自由软件原则的罕见妥协中,斯托曼大幅削减了免费软件的价格标签。用户可以在 Stallman 不注意的情况下进行创新,只要他们不禁止 Stallman 和黑客社区的其他成员将来交流同一程序即可。

回顾过去,Stallman 说 GPL 妥协是由于他自己对原始 Emacs 公社社会契约的“老大哥”方面的不满。尽管他很喜欢窥探其他黑客的系统,但了解到某些未来的源代码维护者可能会利用这种权力产生不良影响,这迫使他缓和 GPL。

“要求人们发布所有更改是错误的,”斯托曼说。 “要求将它们交给一个享有特权的开发商是错误的。这种集中化和特权不符合所有人享有平等权利的社会。”

随着 hacks 的发展,GPL 成为 Stallman 最好的之一。它在版权法通常的专有范围内创建了一种共有制。更重要的是,它证明了法律代码和软件代码之间的智力相似性。 GPL 序言中隐含了一个深刻的信息:黑客不应怀疑地看待版权法,而应将其视为另一个乞求被黑客入侵的系统。

“GPL 的发展很像任何自由软件,有一个大型社区讨论它的结构,在他们的观察中它的尊重或相反,需要调整甚至温和地妥协以获得更大的接受度,”另一位帮助的律师杰里科恩说Stallman 拥有创建许可证。 “这个过程非常有效,GPL 的几个版本已经从普遍的怀疑和有时敌对的反应转变为广泛接受。”

在 1986 年接受 Byte 杂志采访时,Stallman 用丰富多彩的术语总结了 GPL。 Stallman 说,除了宣扬黑客的价值观外,读者还应该“将其视为一种智力柔术,利用软件囤积者建立的法律体系来对付他们。”参见 David Betz 和 Jon Edwards,“Richard Stallman 讨论了他的公众-domain [sic] 带有 BYTE 编辑器的 Unix 兼容软件系统,”BYTE(1996 年 7 月)。 (在 GNU 项目网站上转载:http://www.gnu.org/gnu/byte-interview.html。)这次采访提供了一个有趣的,更不用说坦率的,一瞥 Stallman 在 2007 年早期的政治态度。 GNU 项目。这也有助于追溯斯托曼修辞的演变。在描述 GPL 的目的时,Stallman 说:“我正在努力改变人们一般获取知识和信息的方式。我认为,尝试拥有知识,尝试控制人们是否被允许使用它,或者试图阻止其他人分享它,是破坏行为。”将此与 2000 年 8 月对作者的声明进行对比:“我敦促你不要在你的思想中使用‘知识产权’这个词。它会让你产生误解,因为这个词概括了版权、专利和商标。并且这些事情的影响如此不同,因此试图立即谈论它们是完全愚蠢的。如果你听到有人在谈论知识产权,但没有引述,那么他没有想得很清楚,你不应该加入。”多年后,Stallman 会用不那么敌意的术语来描述 GPL 的创建。 “我在考虑某种意义上的道德问题,某种意义上的政治问题和某种意义上的法律问题,”他说。 “我必须尝试做我们所处的法律体系可以维持的事情。从精神上讲,这项工作是为新社会的基础立法,但由于我不是政府,我实际上不能改变任何法律。我必须尝试通过建立在现有法律体系之上来做到这一点,而现有法律体系并不是为这样的事情而设计的。”

就在 Stallman 思考与自由软件相关的伦理、政治和法律问题时,一位名叫 Don Hopkins 的加利福尼亚黑客给他邮寄了一份 68000 微处理器的手册。 Hopkins 是一名 Unix 黑客和科幻小说爱好者,早些时候从 Stallman 那里借了这本手册。为了表示感谢,霍普金斯在回邮信封上装饰了一些在当地科幻大会上获得的贴纸。一张贴纸特别引起了斯托曼的注意。上面写着,“Copyleft (L), All Rights Reversed”。在 GPL 第一版发布后,Stallman 向贴纸致敬,将自由软件许可证昵称为“Copyleft”。随着时间的推移,昵称和它的简写符号,一个倒过来的“C”,将成为 GPL 的官方自由软件基金会同义词。

德国社会学家马克斯·韦伯曾提出,所有伟大的宗教都建立在魅力的“常规化”或“制度化”之上。韦伯认为,每一个成功的宗教都会将最初宗教领袖的魅力或信息转化为一种更容易跨文化和跨时间翻译的社会、政治和道德机制。

虽然 GNU GPL 本身不是宗教性的,但它确实有资格作为现代、分散的软件开发世界中工作的这种“例行化”过程的一个有趣例子。自从它揭幕以来,对 Stallman 表示忠诚或效忠的程序员和公司都愿意按表面价值接受 GPL 交易。一些人甚至接受 GPL 作为他们自己的软件程序的先发制人的保护机制。即使那些拒绝 GPL 合同过于强制的人,仍然认为它具有影响力。

属于后一组的黑客是 Keith Bostic,他是 GPL 1.0 发布时加州大学的一名雇员。 Bostic 的部门,即计算机系统研究小组 (SRG),自 20 世纪 70 年代末以来一直参与 Unix 开发,负责 Unix 的许多关键部分,包括 TCP/IP 网络协议,现代互联网通信的基石。到 1980 年代后期,Unix 品牌名称的原始所有者 AT&T 开始专注于 Unix 的商业化,并开始寻找 Berkeley Software Distribution,或 BSD,Bostic 和他的伯克利同行开发的 Unix 学术版本,作为关键商业技术的来源。

尽管 Berkeley BSD 源代码在研究人员和商业程序员之间以源代码许可共享,但这种商业化带来了一个问题。伯克利代码与专有的 AT&T 代码混合在一起。因此,伯克利发行版仅适用于已经拥有 AT&T 的 Unix 源代码许可证的机构。随着 AT&T 提高许可费,这种最初看似无害的安排变得越来越麻烦。

Bostic 于 1986 年受雇,负责将 BSD 移植到 Digital Equipment Corporation 的 PDP-11 计算机的个人项目。 Bostic 说,正是在这段时间里,在 Stallman 偶尔去西海岸的时候,他与 Stallman 进行了密切的互动。 “我清楚地记得,当 Stallman 坐在 CSRG 借来的工作站前与他争论版权时,”Bostic 说。 “我们之后会去吃晚饭,并在晚餐时继续争论版权问题。”

争论最终站稳了脚跟,尽管不是斯托曼所希望的那样。 1989 年 6 月,伯克利将其网络代码从 AT&T 拥有的操作系统的其余部分中分离出来,并根据加利福尼亚大学的许可进行分发。合同条款是自由的。被许可人所要做的就是在宣传衍生程序的广告中给大学以信用。加利福尼亚大学的“令人讨厌的广告条款”后来被证明是一个问题。为了寻找一个限制较少的 GPL 替代方案,一些黑客使用了加利福尼亚大学,用他们自己的机构名称替换了“加利福尼亚大学”。结果:从许多其他程序中借鉴的免费软件程序将不得不在广告中引用数十个机构。 1999 年,经过 Stallman 十年的游说,加州大学同意取消该条款。与 GPL 不同,专有分支是允许的。只有一个问题阻碍了许可证的快速采用:BSD Networking 版本不是一个完整的操作系统。人们可以研究代码,但它只能与其他专有许可代码一起运行。

在接下来的几年里,Bostic 和其他加州大学的员工致力于替换缺失的组件,并将 BSD 变成一个完整的、可自由再分发的操作系统。尽管因 Unix 系统实验室(AT&T 的分拆公司保留了 Unix 品牌名称的所有权)的法律挑战而推迟,但这项努力最终在 1990 年代初期取得了成果。然而,甚至在此之前,许多 Berkeley 实用程序已经进入 Stallman 的 GNU 项目。

“我认为如果没有 GNU 的影响,我们不可能像以前那样强大,”Bostic 回顾过去时说。 “这显然是他们努力推动的事情,我们喜欢这个想法。”

到 80 年代末,GPL 开始对自由软件社区产生引力效应。一个程序不必携带 GPL 就可以成为自由软件——BSD 实用程序就是一个例子——但是将一个程序置于 GPL 之下发出了一个明确的信息。 “我认为 GPL 的存在激发了人们思考他们是否在制作自由软件,以及他们将如何获得许可,”流行的 Unix 实用程序 Electric Fence 的创建者和 Debian GNU 的未来领导者 Bruce Perens 说/Linux 开发团队。 GPL 发布几年后,Perens 说他决定放弃 Electric Fence 的本土许可证,转而支持 Stallman 的律师审查版权。 “这实际上很容易做到,”Perens 回忆道。

曾对 Stallman 最初的 GNU 声明持怀疑态度的程序员 Rich Morin 回忆说,他们对开始聚集在 GPL 保护伞下的软件印象深刻。作为 SunOS 用户组的领导者,Morin 在 1980 年代的主要职责之一是分发包含最佳免费软件或免费软件实用程序的分发磁带。这项工作通常要求召集原始程序作者,以验证他们的程序是否受版权保护或是否已委托给公共领域。 Morin 说,大约在 1989 年,他开始注意到最好的软件程序通常都在 GPL 许可下。 “作为一名软件发行商,我一看到 GPL 这个词,就知道我自由了,”Morin 回忆道。

为了补偿之前为 Sun 用户组编译分发磁带的麻烦,Morin 向收件人收取了一笔便利费。现在,随着程序转向 GPL,Morin 突然将他的磁带整理成一半的时间,并在此过程中赚取了可观的利润。感觉到商机,莫林将他的爱好重新命名为生意:Prime Time Freeware。

这种商业利用完全在自由软件议程的范围内。 “当我们谈到自由软件时,我们指的是自由,而不是价格,”Stallman 在 GPL 的序言中建议道。到 80 年代后期,斯托曼将其精炼为更简单的助记符:“不要像免费啤酒中那样思考自由;像言论自由中那样思考自由。”

大多数情况下,企业无视斯托曼的恳求。尽管如此,对于一些企业家来说,与自由软件相关的自由与与自由市场相关的自由是一样的。将软件所有权从商业等式中剔除,你会遇到这样一种情况,即使是最小的软件公司也可以自由地与世界上的 IBM 和 DEC 竞争。

最早掌握这一概念的企业家之一是迈克尔·蒂曼 (Michael Tiemann),他是斯坦福大学的一名软件程序员和研究生。在 1980 年代,Tiemann 像一位有抱负的爵士音乐家追随一位最喜欢的艺术家一样追随 GNU 项目。然而,直到 1987 年 GNU C 编译器的发布,他才开始领会自由软件的全部潜力。 Tiemann 称 GCC 为“重磅炸弹”,该程序本身的存在突显了 Stallman 作为程序员的决心。

“就像每个作家都梦想写出伟大的美国小说一样,1980 年代的每个程序员都在谈论编写伟大的美国编译器,”蒂曼回忆道。 “突然之间,斯托曼做到了。这让人感到非常谦卑。”

“你谈论单点故障,GCC 就是这样,”Bostic 附和道。 “那时没有人有编译器,直到 GCC 出现。”

Tiemann 没有与 Stallman 竞争,而是决定在他的工作基础上再接再厉。 GCC 的原始版本有 110,000 行代码,但 Tiemann 回忆说该程序非常容易理解。实际上非常简单,Tiemann 说只用了不到五天的时间就掌握了,又用了一周的时间将软件移植到一个新的硬件平台,即美国国家半导体公司的 32032 微芯片。在接下来的一年里,Tiemann 开始研究源代码,为 C+ 编程语言创建了一个本地编译器。一天,蒂曼在贝尔实验室就该项目发表演讲时,遇到了一些 AT&T 的开发人员,他们正在努力完成同样的事情。

“房间里大约有 40 或 50 人,我问有多少人在研究本机代码编译器,”Tiemann 回忆道。 “我的主人说这些信息是保密的,但补充说如果我环顾一下房间,我可能会有一个很好的大概了解。”

蒂曼说,不久之后,他脑子里的灯泡就熄灭了。 “我在那个项目上工作了六个月,”蒂曼说。我只是在想,无论是我还是代码,这都是自由市场应该准备好奖励的效率水平。”

Tiemann 在 GNU 宣言中找到了更多的灵感,它在谴责一些软件供应商的贪婪的同时,鼓励其他供应商从消费者的角度考虑自由软件的优势。通过从商业软件问题中消除垄断的力量,GPL 使最聪明的供应商可以在服务和咨询的基础上竞争,这是软件市场中利润最丰厚的两个角落。

在 1999 年的一篇文章中,蒂曼回忆了斯托曼宣言的影响。 “它读起来像是一场社会主义论战,但我看到了不同的东西。我看到了伪装的商业计划。”7。参见 Michael Tiemann,“Cygnus 解决方案的未来:企业家的账户”,开源(O'Reilly & Associates, Inc.,1999):139。

Tiemann 与另一位 GNU 项目粉丝 John Gilmore 合作,推出了专门用于定制 GNU 程序的软件咨询服务。这家名为 Cygnus Support 的公司于 1990 年 2 月签署了第一份开发合同。到年底,该公司拥有价值 725,000 美元的支持和开发合同。

GNU Emacs、GDB 和 GCC 是面向开发人员的“三大”工具,但它们并不是 Stallman 在 GNU 项目的头五年中开发的唯一工具。到 1990 年,Stallman 还生成了 Bourne Shell(重新命名为 Bourne Again Shell,或 BASH)、YACC(重新命名为 Bison)和 awk(重新命名为 gawk)的 GNU 版本。与 GCC 一样,每个 GNU 程序都必须设计为在多个系统上运行,而不仅仅是单个供应商的平台。在使程序更加灵活的过程中,Stallman 和他的合作者也经常让它们变得更有用。

回顾 GNU 普遍主义方法,Prime Time Freeware 的 Morin 指出了一个关键的,尽管平凡的软件包,叫做 hello。 “这是一个由五行 C 语言组成的 hello world 程序,就像 GNU 发行版一样打包,”Morin 说。 “所以它有 Texinfo 的东西和配置的东西。它有 GNU 项目提出的所有其他软件工程 goo,以允许包顺利地移植到所有这些不同的环境。这是非常重要的工作,它不会影响不仅是 [Stallman 的] 软件,还有所有其他 GNU 项目软件。”

根据 Stallman 的说法,改进软件程序比起构建它们来说是次要的。 “对于每一件作品,我可能会或可能不会找到改进它的方法,”Stallman 对 Byte 说。 “在某种程度上,我得到了重新实现的好处,这使许多系统变得更好。在某种程度上,这是因为我在该领域工作了很长时间,并在许多其他系统上工作过。因此,我有很多想法可以发挥作用。” “参见 Richard Stallman,BYTE (1986)。

尽管如此,随着 GNU 工具在 1980 年代后期取得成功,Stallman 在 AI 实验室因设计严谨而享有盛誉很快成为整个软件开发社区的传奇。

Jeremy Allison 是 1980 年代后期的 Sun 用户,也是注定要在 1990 年代运行他自己的自由软件项目 Samba 的程序员,他笑着回忆起那个名声。 80 年代后期,Allison 开始使用 Emacs。受到该项目社区发展模式的启发,Allison 说他发送了一段源代码,结果被 Stallman 拒绝了。

“这就像洋葱新闻的标题,”艾莉森说。
“‘孩子向上帝的祈祷得到了回答:没有。’”

然而,斯托曼作为软件程序员的地位不断提高,但他作为项目经理的努力却得到了平衡。尽管 GNU 项目在创建面向开发人员的工具方面从成功走向成功,但它无法生成一个工作内核——所有 Unix 系统中的中央“交通警察”程序,它决定哪些设备和应用程序可以访问微处理器以及何时——随着 1980 年代的结束,它开始引起抱怨。与大多数 GNU 项目的努力一样,Stallman 通过寻找现有程序进行修改来开始内核开发。根据 1987 年 1 月的“Gnusletter”,Stallman 已经在着手彻底改造 TRIX,这是麻省理工学院开发的 Unix 内核。

回顾 1980 年代后期的 GNU 项目“GNUsletters”,反映了管理上的紧张。 1987 年 1 月,Stallman 向全世界宣布 GNU 项目正在努力彻底改造 TRIX,这是麻省理工学院开发的 Unix 内核。一年后,即 1988 年 2 月,GNU 项目宣布它已将注意力转移到卡内基梅隆大学开发的轻量级“微内核”Mach。然而,总而言之,正式的 GNU 项目内核开发直到 1990 年才开始。参见“HURD 历史”。 http://www.gnu.org/software/hurd/history.html

内核开发的延迟只是在此期间压在 Stallman 身上的众多问题之一。 1989 年,Lotus Development Corporation 对竞争对手软件公司 Paperback Software International 提起诉讼,要求其复制 Lotus 流行的 1-2-3 电子表格程序中的菜单命令。 Lotus 的诉讼,加上苹果和微软的“外观和感觉”之争,为 GNU 项目提供了一个麻烦的背景。尽管这两起诉讼都不在 GNU 项目的范围之内,但都围绕着为个人计算机开发的操作系统和软件应用程序,而不是与 Unix 兼容的硬件系统——它们有可能对整个软件开发文化产生寒蝉效应。 Stallman 决心做点什么,他招募了一些程序员朋友,并撰写了一本杂志广告来宣传这些诉讼。然后,他通过帮助组织一个团体来抗议提起诉讼的公司来跟进广告。该组织自称为编程自由联盟,在 Lotus, Inc. 办公室和主持 Lotus 审判的波士顿法庭外举行了抗议活动。

抗议活动引人注目。据编程自由联盟新闻报道,抗议活动以第一个十六进制抗议口号为特色:1-2-3-4,把律师赶出门; 5-6-7-8,创新不打官司; 9-ABC,1-2-3 不适合我; DEFO,外观和感觉必须去

http://lpf.ai.mit.edu/Links/prep.ai.mit.edu/demo.final.release
他们记录了软件不断发展的本质
行业。应用程序悄然取代了操作
系统作为企业的主要战场。在其
建立一个自由软件操作的未完成的追求
系统,GNU 项目似乎无可救药地落后于
次。事实上,斯托曼已经感觉到了这一事实
有必要组建一个全新的团队
致力于与“外观和感觉”诉讼作斗争
在一些观察家眼中,这种情况更加明显。

1990 年,约翰 D. 和凯瑟琳 T. 麦克阿瑟基金会授予斯托曼麦克阿瑟奖学金,证明了斯托曼的天才地位,因此他成为了该组织所谓的“天才奖”的获得者。这笔 240,000 美元的赠款用于启动 GNU 项目并为自由软件理念发声,减轻了一些短期担忧。首先也是最重要的是,它让 Stallman,一个 FSF 的非受薪雇员,一直通过咨询合同养活自己,能够投入更多的时间来编写 GNU 代码。我在这里随意使用术语“编写”。大约在获得麦克阿瑟奖的时候,斯托曼的手开始出现慢性疼痛,并且将他的工作口述给 FSF 雇佣的打字员。尽管有人推测手部疼痛是重复性压力损伤 (RSI) 的结果,RSI 是软件程序员中常见的一种损伤,但 Stallman 并不是 100% 确定。 “这不是腕管综合症,”他写道。 “我的手部问题出在手上,而不是手腕上。”在改用触感更轻的键盘后,斯托曼学会了在没有打字员的情况下工作。

具有讽刺意味的是,该奖项也让斯托曼有机会投票。颁奖前几个月,斯托曼公寓发生火灾,烧毁了他为数不多的世俗财产。在获奖时,Stallman 将自己列为“擅自占地者”参见 Reuven Lerner,“Stallman wins $240,000 MacArthur award”,MIT,The Tech(1990 年 7 月 18 日)。 http://the-tech.mit.edu/V110/N30/rms.30n.html,地址为 545 Technology Square。 “[选民登记员]不想接受那个作为我的地址,”斯托曼后来回忆道。 “一篇关于麦克阿瑟奖助金的报纸文章是这样说的,然后他们让我注册了。”参见 Michael Gross,“Richard Stallman:High School Misfit,自由软件的象征,MacArthur 认证的天才”(1999 年)。

最重要的是,麦克阿瑟的钱给了斯托曼更多的自由。已经致力于软件自由的问题,Stallman 选择使用额外的自由来增加他的旅行以支持 GNU 项目使命。

有趣的是,GNU 项目和整个自由软件运动的最终成功都源于其中一次旅行。 1990年,斯托曼访问了芬兰赫尔辛基理工大学。观众中有 21 岁的 Linus Torvalds,他是 Linux 内核的未来开发者 - 自由软件内核注定要填补 GNU 项目最大的空白。

Torvalds 当时是附近赫尔辛基大学的一名学生,他对 Stallman 感到困惑。 “我有生以来第一次看到典型的长头发、留胡子的黑客类型,”Torvalds 在他 2001 年的自传 Just for Fun 中回忆道。 “我们在赫尔辛基没有太多这样的人。”参见 Linus Torvalds 和 David Diamond, Just For Fun: The Story of an Accidentaly Revolutionary (HarperCollins Publishers, Inc., 2001): 58-59。

虽然不完全适应 Stallman 议程的“社会政治”方面,但 Torvalds 仍然赞赏该议程的基本逻辑:没有程序员会编写无错误的代码。通过共享软件,黑客将程序的改进置于贪婪或自我保护等个人动机之上。

与他那一代的许多程序员一样,Torvalds 不是在 IBM 7094 这样的大型计算机上崭露头角,而是在各种各样的自制计算机系统上崭露头角。作为大学生,Torvalds 使用大学的 MicroVAX 从 C 编程升级到 Unix。这种阶梯式的进展让 Torvalds 对机器访问的障碍有了不同的看法。对于斯托曼来说,主要障碍是官僚主义和特权。对于 Torvalds 来说,主要障碍是地理和赫尔辛基严酷的冬天。为了登录他的 Unix 帐户,Torvalds 被迫跋涉穿过赫尔辛基大学,他很快开始寻找一种方法来从他校外公寓的温暖空间中登录。

通过搜索,Torvalds 找到了操作系统 Minix,它是荷兰大学教授 Andrew Tanenbaum 为教学目的而开发的 Unix 轻量级版本。该程序适合 386 PC 的内存限制,这是 Torvalds 能买得起的最强大的机器,但仍然缺少一些必要的功能。最值得注意的是,它缺少终端仿真,这一功能让 Torvalds 的机器可以模仿大学终端,从而可以在家中登录 MicroVAX。

1991 年夏天,Torvalds 从头开始重写了 Minix,同时添加了其他功能。到夏末,Torvalds 将他不断发展的工作称为“终端仿真程序的 GNU/Emacs”。参见 Linus Torvalds 和 David Diamond,Just For Fun: The Story of an Accidentaly Revolutionary (HarperCollins Publishers, Inc., 2001): 78. 自信满满的他向 Minix 新闻组索要 POSIX 标准的副本,即确定程序是否与 Unix 兼容的软件蓝图。几周后,Torvalds 发布了一条令人毛骨悚然地让人想起 Stallman 1983 年最初发布的 GNU 帖子的消息:

大家好使用 minix-

我正在做一个(免费)操作系统(只是一个爱好,不会像 gnu 那样大而专业,用于 386 (486) AT 克隆)。这从四月份就开始酝酿了,现在已经开始准备好了。我想要任何关于人们喜欢/不喜欢 minix 的东西的反馈,因为我的操作系统有点像它(文件系统的相同物理布局(由于实际原因)等等)。参见“Linux 10th Anniversary”。 http://www.linux10.org/history/

该帖子引起了一些回应,在一个月内,Torvalds 在 Internet FTP 站点上发布了操作系统的 0.01 版本——即适合外部审查的最早版本。在这样做的过程中,Torvalds 不得不为新系统想出一个名字。在他自己的 PC 硬盘驱动器上,Torvalds 将该程序保存为 Linux,这个名称表达了对软件惯例的敬意,即为每个 Unix 变体赋予一个以字母 X 结尾的名称。Torvalds 认为这个名称过于“自负”,因此更改了它到 Freax,只是让 FTP 站点管理员将其改回。

尽管 Torvalds 着手构建一个完整的操作系统,但他和其他开发人员当时都知道,由于 GNU、BSD 和其他自由软件开发人员的工作,大多数所需的功能工具已经可用。 Linux 开发团队使用的首批工具之一是 GNU C 编译器,该工具可以处理用 C 编程语言编写的程序。

集成 GCC 提高了 Linux 的性能。也提出了问题。尽管 GPL 的“病毒式”权力并不适用于 Linux 内核,但 Torvald 出于他自己的自由软件操作系统的目的而愿意借用 GCC 表明了让其他用户借回的某种义务。正如 Torvalds 后来所说:“我已经把自己抬上了巨人的肩膀。”参见 Linus Torvalds 和 David Diamond,Just For Fun:The Story of an Accidentaly Revolutionary(哈珀柯林斯出版社,2001 年):96-97 .毫不奇怪,他开始思考当其他人向他寻求类似支持时会发生什么。在做出决定十年后,Torvalds 在总结他当时的想法时呼应了自由软件基金会的 Robert Chassel:你将六个月的生命投入到这件事上,你想让它可用,你想从中得到一些东西,但您不希望人们利用它。我希望人们能够看到 [Linux],并根据自己的喜好进行更改和改进。但我也想确保我从中得到的是看到他们在做什么。我希望始终能够访问这些资源,以便如果他们做出改进,我也可以自己做出这些改进。参见 Linus Torvalds 和 David Diamond,Just For Fun:The Story of an Accidentaly Revolutionary(HarperCollins Publishers, Inc.,2001 年): 94-95。当 Linux 的 0.12 版本发布时,第一个包含完全集成的 GCC 版本,Torvalds 决定表达他对自由软件运动的忠诚。他丢弃了旧的内核许可证并用 GPL 取而代之。这一决定引发了一场移植热潮,因为 Torvalds 和他的合作者希望将其他 GNU 程序融入不断增长的 Linux 炖菜中。三年内,Linux 开发人员推出了他们的第一个产品版本 Linux 1.0,其中包括 GCC、GDB 和大量 BSD 工具的完全修改版本。

到 1994 年,合并后的操作系统在黑客界赢得了足够的尊重,以至于一些观察家怀疑 Torvalds 是否在项目的最初几个月没有通过切换到 GPL 而放弃了农场。在 Linux Journal 的第一期中,出版商 Robert Young 对 Torvalds 进行了采访。当 Young 问这位芬兰程序员是否后悔放弃 Linux 源代码的私有所有权时,Torvalds 说不。 “即使有 20/20 的后见之明,”Torvalds 说,他认为 GPL 是在 Linux 项目的早期阶段做出的“最佳设计决策之一”。参见 Robert Young,“Linux 作者 Linus 访谈”, Linux 杂志(1994 年 3 月 1 日)。 http://www.linuxjournal.com/article.php?sid=2736

该决定是在对 Stallman 和自由软件基金会零吸引力或尊重的情况下做出的,这说明了 GPL 日益增长的可移植性。尽管 Stallman 需要几年的时间才能认可它,但 Linux 发展的爆炸式发展让人想起了 Emacs。然而,这一次,引发爆炸的创新不是像 Control-R 这样的软件破解,而是在 PC 架构上运行类 Unix 系统的新颖性。动机可能不同,但最终结果肯定符合道德规范:一个完全由自由软件组成的功能齐全的操作系统。

正如他给 comp.os.minix 新闻组的第一封电子邮件所表明的那样,在 GNU 开发人员交付 HURD 内核之前,Torvalds 花了几个月的时间才将 Linux 视为一种保留。这种最初不愿从政治角度看待 Linux 的态度将对自由软件基金会造成重大打击。

就 Torvalds 而言,他只是一长串为了好玩而拆开和重新组装东西的孩子中的最新成员。尽管如此,在总结一个本可以轻松地在废弃的计算机硬盘驱动器上度过余生的项目取得的巨大成功时,Torvalds 认为年轻的自己有放弃控制权并接受 GPL 讨价还价的智慧。

“我可能还没有看到曙光,”Torvalds 在回忆 Stallman 1991 年在理工大学的演讲以及他随后转向 GPL 的决定时写道。 “但我猜他的演讲中有些东西沉没了。”参见 Linus Torvalds 和 David Diamond,Just For Fun:The Story of an Accidentally Revolutionary(HarperCollins Publishers, Inc.,2001):59。采访提供了一个有趣的,更不用说坦诚了,一瞥 Stallman 在 GNU 项目早期的政治态度。这也有助于追溯斯托曼修辞的演变。在描述 GPL 的目的时,Stallman 说:“我正在努力改变人们一般获取知识和信息的方式。我认为,尝试拥有知识,尝试控制人们是否被允许使用它,或者试图阻止其他人分享它,是破坏行为。”将此与 2000 年 8 月对作者的声明进行对比:“我敦促你不要在你的思想中使用‘知识产权’这个词。它会让你产生误解,因为这个词概括了版权、专利和商标。并且这些事情的影响如此不同,因此试图立即谈论它们是完全愚蠢的。如果你听到有人在谈论知识产权,但没有引述,那么他没有想得很清楚,你不应该加入。”

关于 HackerNoon Book Series:我们为您带来最重要的技术、科学和富有洞察力的公共领域书籍。

这本书是公共领域的一部分。山姆·威廉姆斯 (2004)。自由即自由:理查德·斯托曼 (Richard Stallman) 的自由软件运动。伊利诺伊州厄巴纳:古腾堡计划。 2022 年 10 月检索,来自https://www.gutenberg.org/cache/epub/5768/pg5768.html

这本电子书供任何人在任何地方免费使用,几乎没有任何限制。您可以根据本电子书或www.gutenberg.org网站 https://www.gutenberg.org/policy/license包含的 Project Gutenberg 许可条款复制、赠送或重新使用它。 HTML。