将RMS逼上梁山,但它还为开源贡献了一个重要协议
出品 | OSC开源社区(ID:oschina2013)
麻省理工学院(Massachusetts Institute of Technology,简称 MIT),大名鼎鼎,无人不知。在开源世界也是一样,人人都识 The MIT License(MIT 协议),它几乎是当下采用率最高的开源协议之一。除此之外,从 MIT 的实验室中还飞出了自由软件运动发起人 RMS,说一句 MIT 是 “自由与开源软件的滥觞之一” 不为过。
但与另一个担得起该名称的大学加州大学伯克利分校相比,MIT 似乎又缺少了那么一点 “左派色彩”,而是展现出十足的实用主义。(伯克利的相关故事可查看:《谁还记得 Linux 之前,那个理想又骄傲的 BSD 吗?》)
MIT 似乎从未想过要在开源这个领域达成怎样的成就,可是,偏偏无心插柳柳成荫。从 RMS 和 MIT 协议这两条主线出发,我们会惊喜地发现,在上个世纪 80 年代,MIT 几乎是同时孕育出了开源协议中 copyleft 和 permission 两个最重要的门类。
01、copyleft 催化剂:没想到 RMS 会来这
OSI 创始人之一 Eric S. Raymond(简称 ESR)在《大教堂和集市》中将 “黑客文化” 的起源定位在了 1961 年的 MIT。他认为 “黑客” 一词起源于 MIT 的计算机文化,开始于技术模型铁路俱乐部的一些爱好者,后来大多数成员又加入了 MIT 人工智能实验室。
随着 1969 年 APRAnet 诞生,散落全美各地的黑客聚集到一起,黑客圈在那些联网的大学中 —— 特别是在计算机科学系 —— 开始发展壮大,其中 MIT 人工智能实验室首当其冲。
当然,同一时期还有很多其他大学的实验室也一样在萌芽黑客文化。在这里,ESR 将 MIT 人工智能实验室提到了最重要的位置,是为了引出之后的 RMS 和他所发起的自由软件运动。关于 RMS 为什么要发起自由软件运动,大家经常会搬出那个经典的 “打印机故事”(故事详情可戳:《开源,是背叛自由还是以退为进?》)。
▲ RMS(Richard Matthew Stallman)
但其实,这背后的故事要比一个打印机复杂得多。
1971 年,RMS 被 Russ Noftsker(记住他,这个人很重要)招到了 MIT 人工智能实验室。他跟随 Richard Greenblatt (这个人也很重要)和 Bill Gosper,将他们作为自己的良师,在这里他接受着黑客文化的洗礼,并很快展现出杰出的才能。
在 MIT 工作时,RMS 除了与同事一起实现一门叫做 “Lisp” 的语言,更多的时间花在了为各种程序添加扩展上。1975 年,他写了一个文本编辑器,叫 Emacs。当时 MIT 所使用的 TECO 行编辑器非常不方便,Emacs 在编辑方式和模式上做了至关重要的创新,几乎是第一个现代意义上的编辑器。
在实验室内,RMS 和同事一起打造和分享 Emacs:
和其他人交换,正是我们当时在人工智能实验室拥有的、驱动自由合作精神的动力。这种思想就是 —— 你可以把你拥有的程序拷贝分发给想要的人。我们和任何想要的人分享,这些知识归属于人类。我认为,正是人工智能实验室的那种生活方式导致了 Emacs 的诞生和发展。
这种分享且自由的技术环境,让 RMS 无比眷恋,以致于在后来 “大厦” 崩塌之时,他作出了强烈的反应。这好端端地黑客乌托邦是怎么破裂的?RMS 又为何要单枪匹马闯出来实行 “GNU 计划”?
一些错误说法表示,惹怒 RMS 的是 Java 之父 James Gosling,因为第一版 Emacs 编辑器是自由分发的,拿到它的 Gosling 用 C 语言重写了一个版本,还将它闭源卖给了商业公司。的确,这多少有点伤了 RMS 的心,说好的一起开放共享,你却偷偷卖了钱。
▲ Java 之父 James Gosling 在接受采访
在 2002 年 10 月 28 日的国际 Lisp 大会上,RMS 某种程度上验证了这一说法:
当我编写第二版 Emacs 时,底层的语言不再是机器语言,而是 C。但是,当时它不再是第一个用 C 编写并运行在 Unix 上的 Emacs 了。第一个是由 James Gosling 完成的,这个版本叫做 “GosMacs”。
一开始,他(James Gosling)看起来是具有合作分享精神的,他在一个使用手册里称此程序为 Emacs,希望社区能够改善它,使之配得上这个名字。这是参与社区的正确方式。但是,他似乎改变了态度,转眼就把程序卖给了一个公司。
但这件事对 RMS 的冲击力,远不及以下这一系列事件。
实际上,当时打着发财主意的黑客远不止 James Gosling,早在他之前,MIT 人工智能实验室里的核心人员就有此打算。上文所提到 Richard Greenblatt 和 Russ Noftsker 就是最典型的代表。
随着软件商业化盛行,黑客社区渐渐变得弱势。1979 年开始,MIT 人工智能实验室的一些黑客们不再采取社区免费使用的方式来流通软件,而是开始考虑用专利来赚钱。不仅如此,他们还分裂成了两股商业势力( LMI 和 Symbolics),彼此竞争,将实验室一开始如 “理想国” 般的氛围变得十分糟糕。RMS 是这样回忆的:
Greenblatt 想开一个他称之为 “黑客” 的公司。这意味着该公司会由黑客运作并且以有利于黑客的方式运作,以保持人工智能实验室的文化。不幸的是,Greenblatt 没有任何商业经验,Lisp 电脑团队的其他人对此表示怀疑。他们认为,他拒绝外部资金的做法行不通。
Greenblatt 就雇佣了 Russell Noftsker,就是招我进来的那个人。他后来离开了人工智能实验室并成功开创了一个公司。Russell 被认为很有商业头脑。他说:“我们抛开 Greenblatt,不要管他的想法,去开另一间公司吧。” 背后捅刀子,是真正的生意人。这些人决定开一个叫 Symbolics 的公司。他们吸纳外部投资、不会有任何良心不安地、竭尽所能地获取成功。
但是,Greenblatt 并没有放弃。他和少数忠诚于他的人开办了 Lisp Machines 公司,并按自己的计划前进。两家公司都成功启动了,相互竞争,当 Symbolics 看到 LMI 不是走向失败时,他们开始寻机搞破坏。
因此,实验室不仅被离弃了,还爆发了 “战争”。Symbolics 挖走了实验室的所有黑客,只剩下我和几个在 LMI 兼职的人。然后,他们又把在兼职的人都赶走,只剩下我一人了。
别看 RMS 描述得如此轻描淡写,但其实非常痛心疾首。因此,在他心里开始酝酿一个计划,这场计划 Russell Noftsker 没想到,Russell Noftsker 也没想到,整个 MIT 都没有想到。
Symbolics 发起的战争毁灭了 MIT 社区,社区所剩寥寥了。是时候再开始创建一个新的社区来代替那个被他们毁灭的社区了。
当初,我是被 Russ Noftsker 招到人工智能实验室的。这一点最讽刺,想到后来发生的事,他一定在后悔那天把我招进去。
—— RMS
他决定跟 Symbolic 公司抗争到底。1984 年之前,他自称为最后一个黑客,留在了 AI 实验室,孤身一人致力于将 LMI 和 Symbolics 开发的新功能通过自己的实现安装在 MIT 的机器上。
在那两年,他一个人的代码量相当于十几个一流水平的黑客的工作量。在这期间,第二版的 Emacs 诞生,著名的 GNU 计划也被启动。在这版 Emacs 中,RMS 开始尝试将一种叫做 copyleft 的理念写进软件协议中,GPL 由此诞生。
1984 年 1 月,因为已经发起了 GNU 计划,RMS 担心 MIT 会要求产品的所有权,会给产品强加入他们的销售条件,最终又会成为专有软件,因而他辞去了 MIT 的工作。更有趣的是,辞职后,他为买不起电脑而发愁时,发现自己原来在人工智能实验室的办公室,还没有分给其他人用时,他就每天晚上溜进去工作。
我不得不考虑下一步做什么。我必须做一个自由的操作系统,让人们能够一起工作和分享。
—— RMS
02、permission 代表作:赚钱不如留名
很显然,RMS 和自由软件运动对于 MIT 来说,完全是意料之外的事情。但是差不多就在同一时期,MIT 因为自身技术发展的需求,撺掇出了 MIT 软件协议。
多年以后,在诸多有关开源协议的研究中,人们都喜欢将这些协议分为以 GPL 为代表的 copyleft 门类和以 MIT 为代表的 permission 门类,来形成对比,因为后者往往更加宽松。
根据人们后来的回忆和考据,MIT 协议并非一蹴而就的,而是经历了前后几版的变化,才呈现出我们现在看到的样子。期间, MIT 不是没有想过使用专有许可证,但发现完全开放的版权授予才是最佳选择。
第一阶段:大量与商业公司的合作科研项目结出果实,MIT 为了进一步分发而确立了 4 项基本原则。
1983 年秋天,麻省理工学院计算机科学实验室 (MIT-LCS) 的计算机系统研究 (CSR) 小组开发了几款网络软件,其中就包括了为施乐 Alto 开发的 TCP/IP 协议栈的 BCPL 实现、为 IBM 个人计算机 (PC/IP) 所做的带有网络应用的 TCP/IP 实现和为数字设备 LSI-11 开发了一个称为 C – 网关的多协议网络路由系统等。
这些软件都在网络领域取得了突破,引起了外界的广泛兴趣,更多的大学研究人员和商业组织开始请求提供信息和代码副本。于是,问题就出现了:MIT 应该保留版权吗?保留的话,MIT 是否应该要求签订书面合同并收取许可费?
在 MIT 计算机科学系教授 Jerome H. Saltzer 的叙述中,该小组的主要目标是影响网络的方式,许可收入似乎也不会太多;而且如果涉及许可费用,律师将要花很多时间来准备和谈判许可协议。因此,MIT 当时得出的结论是:最好是在赠送软件时附上版权声明,说明软件的来源,不需要任何签名。
于是,1984 年 1 月(巧的是这时候 RMS 刚好从 MIT 辞职),Jerome H. Saltzer 和同事起草了一份拟议的措辞,版权声明的同时允许任何人免费使用。简单来说,这版 MIT 协议有基本的四个指导原则:
1、允许用于任何目的,包括商业用途。
2、不需要签署许可协议,也不需要付费。
3、许可受三个限制:
a. 任何再传播必须注明麻省理工学院的名字.
b. 任何再分配必须包括相同的版权和许可声明。
c. 限制对 MIT 名称的宣传使用。
4、本软件 “按原样” 提供,不作任何保证。
第二阶段:X window 系统诞生后,“IBM 不会同意进入公共领域的”。
这一段还要从 MIT 与数字设备公司 (DEC) 和 IBM 的一个联合项目 —— 雅典娜计划说起。这个项目在 1983 年就推出了,旨在生产一个校园范围内的分布式计算环境,它的成果包括了 X Window 系统 和 Kerberos。
X 最初是在专有许可证下的,而在这样的许可下分发 X 非常痛苦,我认为我们应该放弃它。但是,IBM 是不会让代码进入公共领域的。于是,我们去找了 MIT 的律师制作文本,Jerry Saltzer(就是 Jerome H. Saltzer)可能也参与到了文本的编写中去。
—— X Window 系统开发者 Jim Gettys
从 1984 年 6 月 X 的第 1 版问世,到 1985 年秋天 X Window 系统的许可证问题已经很严重了。然而,进入公共领域意味着放弃版权,将代码完全置于公共共享之中,这对于专利大户 IBM 来说,是个不可能选项。
X Window 系统早期版本的专有许可证对他们和潜在的接受者来说都是一个麻烦,很有可能影响到后来的传播采用。早期采用者做出了重大贡献,必须要尽量减少许可方面的摩擦。与此同时,Sun 公司和卡内基梅隆大学都在进行类似的竞争性项目,他们都需要签署许可证。
—— Jerome H. Saltzer
于是,新一批律师在仔细研究上一版的 MIT 版权和许可声明之后,保留了 4 项指导原则,重新制作了新一版的许可协议,这可以被称作为第二版的 MIT 协议,并在 1986 年 2 月首次应用于 X Window 系统 10 版本 3。
事实证明,这个决定是正确的。X window 系统在众多工作站图形能力的尝试中脱颖而出,战胜了 Sun 公司自己的专有图像处理系统。它吸纳了十多家公司数百名员工的贡献,每个开发者都遵守黑客道德将源码免费提供,并且是通过互联网发布。
这种授权策略达到了预期的效果:实现了影响力。PC/IP 成为 IBM 个人电脑上十几个商业网络栈的基础。X windows 系统成为 Unix 和 Linux 的标准窗口系统,并在今天的数百万系统上运行。Project Athena 的 Kerberos 认证系统被包含在许多计算机系统发行版中,特别是微软的 Windows、苹果 macOS、大多数版本的 Unix 和 Linux 以及 IBM z/OS。
因为这些软件包的免费分发,MIT 的研究和教育受到了更多资金的资助。与这些钱相比,收费许可的收入简直相形见绌。应该把眼光放远一点,不要只看收费授权的前景,这可能会带来几美元的收入,但如果你把软件赠送出去,会带来更多机会。这些潜在的回报将会是另一个更大的数量级。
—— Jerome H. Saltzer
第三阶段:被纳入开源运动中的 MIT 开源协议,成为世界上最宽松的开源许可证之一。
网络资料显示,MIT 协议又被称为 “X 条款”,其实并不准确。实际上,用于 X11 window 系统的许可证和 OSI 批准的 MIT 许可证在措辞上有明显的不同,尽管它们体现的精神相似。
现代意义上的 MIT 开源协议与大约 1998 年开始用于 Expat XML 解析器库的许可证相同。这一版本的 MIT 协议成为了 OSI 在 1999 年批准的第一批开源许可证之一。
https://mit-license.org/
在最后这一版本中,MIT 开源协议在保留版权的前提下,尽最大可能地充分授权使用者,保持了 MIT 协议 “不赚钱只留名” 的理念,只需履行 “在软件和软件的所有副本中都必须包含版权声明和声明许可” 这一义务就可以随便使用。
近几年,以 MIT 为代表的宽松开源许可证渐渐超越 GPL,成为开源项目采用协议的主力。其中最受欢迎的当属 MIT,其次则为 Apache 2.0。这些宽松许可证为何会异军突起?GPL 又为何渐渐没落?敬请期待 OCS 编辑部接下来的系列文章。
本文文字及图片出自 OSC开源社区
你也许感兴趣的:
- 【外评】哪些开源项目被广泛使用,但仅由少数人维护?
- 【外评】瑞士现在要求所有政府软件都必须开源
- 【外评】开源既不是社区,也不是民主
- Winamp 宣布将开放源代码
- 【外评】什么是开源贡献,什么不是开源贡献?
- 【译文】开放源代码与微软:新的反叛开始了
- 开源 Redis 的生命将就此终结?Redis 之父回应分叉浪潮:未来谁能领先,各凭本事!
- 开发者阵营分化,.NET 开源生态系统如何走向未来?
- 马斯克控告OpenAI违约、要求恢复开源;OpenAI否认三连
- 干开源 15 年后,我开启了“自救”,把开源项目变成一项月收入为 4.7 万元的业务!
你对本文的反应是: