MIT 许可证的神秘历史

鉴于其受欢迎程度,你可能会认为 MIT 许可证的起源会有详细的记录,但实际上它是一个谜。
199 位读者喜欢这篇文章。
A diagram of a branching process

Opensource.com

最近,David Humphrey 在 Twitter 上提出了一个看似简单的问题。

我说“看似简单”,是因为 MIT 许可证是开源软件使用的最流行的许可证之一。 MIT 许可证、Apache 许可证和 BSD 许可证是主要的宽松许可证,这个术语与像 GPL 这样的互惠许可证形成对比,后者要求在重新分发软件时提供源代码。

鉴于其受欢迎程度,你可能会认为该许可证的起源会有详细的记录。我发现各种线索表明日期在 1980 年代后期,但没有确定的结论。然而,Keith PackardJim Gettys 加入了 讨论串,提供了关于许可证创建的第一手资料。除了提供许可证的早期示例外,他们的帮助还让我更好地理解了许可证如何随着时间的推移而演变。

日期? 最佳的单一答案可能是 1987 年。 但完整的故事更加复杂,甚至有点神秘。

这个故事始于麻省理工学院 (MIT) 的 Athena 项目。“Athena 项目是 MIT、数字设备公司 (DEC) 和 IBM 的一个联合项目,旨在为教育用途创建一个校园范围内的分布式计算环境,”维基百科 如此描述。该项目于 1983 年启动,孕育了重要的软件,最终被广泛使用,包括 X Window System 和 Kerberos。

具体来说,X Window System 提供了“在显示设备上绘制和移动窗口以及与鼠标和键盘交互”的基本框架,维基百科 如此描述。 X 的第 1 版于 1984 年 6 月发布。该软件在 1987 年达到了第 11 版(因此所有后续版本都称为“X11”)。小版本使用 X10R4 或 X11R7.7 等命名法。

X 最初采用专有许可证,但根据 Packard 的说法,我们现在称之为开源许可证的 被添加到 1985 年的 X 版本 6 中。(我说“现在称之为”,是因为“开源”这个术语直到 1998 年才由 Christine Peterson 创造。)根据 Gettys 的说法,“在许可证下分发 X 变得非常麻烦,所以我主张我们应该直接放弃它。” 然而,事实证明,仅仅将其放入公共领域并不是一个选择。“IBM 不会接触公共领域代码(任何没有特定许可证的代码)。我们去找了 MIT 的律师来撰写文本,明确允许将其用于任何目的。我认为 Jerry Saltzer 可能与他们一起撰写了文本。我记得我批准了这个结果,”Gettys 补充道。

关于早期许可证语言何时稳定存在一些模糊之处;正如 Gettys 所写,“我们在措辞上不是很一致。” 但是,Packard 指出在 1985 年添加到 X 版本 6 的许可证似乎一直持续到 X 版本 11,Release 5。许可证语言的稍后版本似乎是在 1994 年的 X 版本 11,Release 6 中引入的。

因此,有充分的理由认为 MIT 许可证(当时也称为 X Consortium 或 X11 许可证)在 1987 年随着 X11 的发布而结晶,这是使用的最佳日期。你可以说它是在 1985 年创建的,并在接下来的几年中进行了可能的调整。在那些日子里,许可证经常逐步发展。例如,Gettys 观察到,虽然 GPLv1 许可证于 1989 年正式发布,但 Richard Stallman 的 Emacs 之前是在类似于 GPL 的许可证下分发的。

但故事并没有就此结束。 如果你查看用于 X11 的许可证和开放源代码促进会 (OSI) 上批准的 MIT 许可证,它们并不相同。 精神相似,但使用的词语有很大不同。

“现代”MIT 许可证与 1998 年左右开始用于 Expat XML 解析器库的许可证相同。使用此文本的 MIT 许可证是 1999 年 OSI 批准的第一批许可证的一部分。 奇怪的是,尽管 OSI 将其描述为“MIT 许可证(有时称为‘X Consortium 许可证’)”,但它实际上与 X Consortium 许可证并不相同。

这种转变是如何以及为何发生的——甚至是否是偶然发生的——仍然未知。 但很明显,到 1999 年,OSI 记录的 MIT 许可证的批准版本使用的语言与 X Consortium 许可证不同。 这就是为什么包括自由软件基金会在内的一些人更喜欢完全避免使用“MIT 许可证”术语的原因,因为它可能指的是几个相关的但不同的许可证。

(MIT 许可证在这种不一致性方面并不是唯一的。 例如,有一个 3-Clause BSD 许可证和一个较早的 4-Clause BSD 许可证,即使没有明确的版本控制。)

所以,你明白了。 选择你的日期。 1985 年的前身。 1987 年的 X Consortium 或 X11 许可证变体。 或 1998 年或 1999 年的 Expat 许可证。

感谢 此 Twitter 帖子的参与者,使本文成为可能。

User profile image.
Gordon Haff 是红帽的技术推广者,是客户和行业活动中经常出现且广受好评的演讲者,专注于包括红帽研究、开源采用以及广泛的新兴技术领域。

6 条评论

Gordon,多么棒的故事,能让周五早上变得活跃起来!感谢您进行研究并将各种线索汇集在一起​​。

今天学到了新知识!谢谢,戈登。

同意 @Dennis 所说,@Gordon!足够回答整个 Jeopardy 类别。 在阅读本文之前,我可能只会得到 200 或 300 美元的问题。

与此有些相关的是 UUNET 和 X11R2 的历史。 1987 年,我当时在 Fairchild 的 Palo Alto Research Lab 工作,担任他们的系统管理员。 我与 UUNET 建立了付费 UUCP 连接,以便我们可以注册域名 parfs.com。 在 Usenix 会议上,X11R2 在经过重大重写后被宣布为稳定可靠的代码。 回到家的开发人员想要下载代码,但它很大,大约 50Mb。 那时 2400 波特是一种快速调制解调器。 UUNET 宣布他们将为他们的客户提供代码下载。 许多组织注册了他们的服务,以便他们可以获得代码。 我记得我们有新的 Trailblazer 9600 波特调制解调器,所以只花了几天时间就下载了代码。

X11R2 启动了 UUNET,我认为这是第一个成功的商业 ISP。 许多公司在 X11R2 发布后注册了他们的第一个域名。

啊,只是在记忆中漫步...

哇,我喜欢 MIT 许可证的复杂生活方式。

Creative Commons License本作品已获得 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.