从UNIX到GitHub:十个关于自由和开源软件历史的重要事件
jopen 7年前
<p>本文记录了自由和开源历史上的一些重要时刻,也称得上是 FOSS 历史上的大事件。从 UNIX 的全盛时期,到 GNU 和 Linux 的诞生,再到 GitHub 将开源“民主化”,以及在它们之间的一切。</p> <p style="text-align:center"><img alt="从UNIX到GitHub:十个关于自由和开源软件历史的重要事件" src="https://simg.open-open.com/show/8e412fb1f96677deda9b98b8585bf1d9.jpg" /></p> <p>现在看来,大家很容易会把开源软件当作是理所当然的,但事实上,我们应该知道自由和开源软件是经历了长达半个世纪的一系列漫长发展的产物。</p> <p>本文记录了自由和开源历史上的一些重要时刻,也称得上是 FOSS 历史上的大事件。从 UNIX 的全盛时期,到 GNU 和 Linux 的诞生,再到 GitHub 将开源“民主化”,以及在它们之间的一切。</p> <p><strong><strong>1969:UNIX 的诞生</strong></strong></p> <p style="text-align:center"><img alt="从UNIX到GitHub:十个关于自由和开源软件历史的重要事件" src="https://simg.open-open.com/show/66c51cc39a2b111f6fb76bda8398f166.jpg" /></p> <p>1969 年,AT&T 贝尔实验室的工程师开始开发 UNIX。此后的 10 年,UNIX 在学术机构和大型企业中得到了广泛的应用,当时的 UNIX 拥有者 AT&T 公司以低廉甚至免费的许可将 UNIX 源码授权给学术机构做研究或教学之用,许多机构在此源码基础上加以扩充和改进。后来 AT&T 意识到了 UNIX 的商业价值,从 1979 年 UNIX 的版本 V7 开始,不再将 UNIX 源码授权给学术机构,并对之前的 UNIX 及其变种声明了版权权利。事实上,UNIX 在自由或开源软件的概念存在之前就已诞生,可以说,UNIX 从来都不是一个自由或开源的操作系统。从某种意义上来说,UNIX 在促进共享源码方面起了很小的作用。</p> <p>然而,围绕 UNIX 而成长起来的文化在后来的自由和开源软件的意识形态和社区诞生过程中起到了奠基性的作用。UNIX 的开发者和用户把自己看成是对抗软件商业化的“反叛者”,他们自由地共享源码,以分散的方式共同合作开发 UNIX 系统。</p> <p><strong><strong>1984:AT&T 将 UNIX 商业化</strong></strong></p> <p style="text-align:center"><img alt="从UNIX到GitHub:十个关于自由和开源软件历史的重要事件" src="https://simg.open-open.com/show/df51479de53e4339f9e9863f97318dfb.jpg" /></p> <p>从 UNIX 诞生起的前十五年,UNIX 操作系统的拥有者 AT&T 是被法院禁止从中获利的。起因是 1958 年 AT&T 为避免美国司法部起诉它违反《反垄断法》而签订的和解协议。AT&T 垄断了美国长途电话业务,因此它同意不进入计算机行业,不销售任何与计算机有关的产品,UNIX 是计算机操作系统,所以 AT&T 不能销售它,任何要求得到源码的机构,都能免费得到。</p> <p>然而在 1984 年,事情发生了变化,当时对 AT&T 的限制法令被解除,AT&T 开始以能获利的价格销售 UNIX。UNIX 的源码依然可用,但 AT&T 将 UNIX 从研究性质的项目转变为一个商业项目,这在 UNIX 黑客社区里产生了危机。他们开始寻找一个可替代的类 UNIX 系统,且不受商业陷阱的阻碍。</p> <p><strong><strong>1984:GNU 的诞生</strong></strong></p> <p style="text-align:center"><img alt="从UNIX到GitHub:十个关于自由和开源软件历史的重要事件" src="https://simg.open-open.com/show/abeca2f37096e37600e7b5ed2987e613.png" /></p> <p>在 AT&T 将 UNIX 商业化的同一年,理查德·斯托曼(简称 RMS)发起了 GNU 项目(GNU's Not Unix! 的递归缩写),目标是创建一个完全自由且向下兼容 UNIX 的操作系统。RMS 在 1985 年曾说过,GNU 是一个我正在编写的完全兼容 UNIX 的项目,所以我可以让每一个使用它的人都能自由地使用。</p> <p>GNU 项目刚启动时,自由软件这一现代概念也才刚刚诞生,即便是 RMS 也没能充分表达其中“自由”的含义,早期 GNU 项目的追随者轻易地认为 RMS 只是旨在开发不收任何费用的软件。</p> <p>然而,在接下来的几年里,由于开发者和公司越来越少地在发布程序的同时提供源码。此时,对于程序员和用户,GNU 的真正含义开始变得清晰。GNU 的重要性体现在项目承诺所有的源码都能自由使用。</p> <p><strong><strong>1985:自由软件基金会的建立</strong></strong></p> <p style="text-align:center"><img alt="从UNIX到GitHub:十个关于自由和开源软件历史的重要事件" src="https://simg.open-open.com/show/581d51bd25ffd651961e35dad333fa71.jpg" /></p> <p>随着 RMS 推动自由软件发展和成熟的愿景日益强烈,他意识到仅通过编写和分享 GNU 代码是远远不够的。于是,他建立了自由软件基金会来协助该计划。</p> <p>自由软件基金会(简称 FSF)是一个致力于推广自由软件的美国民间非营利性组织。它于 1985 年 10 月由理查德·斯托曼建立。其主要工作是运行 GNU 计划,开发更多的自由软件。FSF 帮助创建了保护 GNU 和其他自由软件项目的法律和制度框架。</p> <p><strong><strong>1991:Linux 内核的诞生</strong></strong></p> <p style="text-align:center"><img alt="从UNIX到GitHub:十个关于自由和开源软件历史的重要事件" src="https://simg.open-open.com/show/aa32e35d1bb4da0cd24897b1aa313128.jpg" /></p> <p>作为操作系统,GNU 最大的问题是具有完备功能的内核尚未被开发成功。虽然 GNU 项目的开发者成功编写了大量重要的程序,但他们努力创建一个类似 UNIX 的内核来完善 GNU 的工作却长期停滞不前。GNU 的内核,称为 Hurd,是自由软件基金会发展的重点,今天仍在开发中,经过近三十年的开发,它仍然不能可靠地用于生产环境。同时,BSD 项目的自由软件内核也受到法律方面问题的困扰。</p> <p>这为 Linux 内核创建了一个开放的机会。Linux 内核是 1991 年 Linus Torvalds 在其大学时期开发的一个项目,并将代码贡献了出来。最初,Linus 采用的是自己拟定的许可证,这个许可证会限制商业使用,后来他转用了 GNU 项目使用的 GPL 许可证。当时 GNU 项目仍未完成,GNU 系统软件集与 Linux 内核结合后,GNU 软件构成了这个 POSIX 兼容操作系统 GNU/Linux 的基础。</p> <p>所以,Linux 内核填补了 GNU 用户需要完整的且使用自由软件的类 UNIX 系统的空白。</p> <p><strong><strong>1998:开源峰会 (</strong>Open Source Summit<strong>)</strong></strong></p> <p style="text-align:center"><img alt="从UNIX到GitHub:十个关于自由和开源软件历史的重要事件" src="https://simg.open-open.com/show/a49c50f07a38f0c108a8f067bffff8bf.jpg" /></p> <p>到了 20 世纪 90 年代后期,GNU,Linux 以及其他重要项目(如 Apache)的自由软件越来越普及。</p> <p>由于像 Eric S. Raymond 这样的黑客们开始担心 RMS 和 FSF 在推动自由软件的时候,受意识形态的影响太深,从而与现实脱节。Raymond 和他的追随者认为,为了自由软件尽可能大范围地取得成功,他们应该侧重于提供源代码的实用价值,而不是过多的涉及共享和道德的哲学原则。</p> <p>同时期,Netscape 宣布将其 Navigator 浏览器的源代码在 Internet 上公布。这一系列举动使得在 1998 年 2 月 3 日,资深黑客 Eric S. Raymond 邀请了大约十几个自由软件社区的著名成员一起开会(RMS 没被邀请),希望可以促使更多公司能够理解黑客社区早已行之有时的开放式软件开发流程的独特优势,使这种先进流程能够得到更广泛的应用。与会者都认为,这是一个有助于消除过去人们对“自由软件”存在误解的大好时机,除了 free(免费?自由?)这个词的含混之外,还有自由软件给公众留下的宗教化和喜对抗的印象,从实际出发,针对企业的顾虑,将自由软件中实用和有助于业务的核心理念推广出去。</p> <p>与会者决定使用“开源软件(open source software)”来代替“自由软件(free software)”,以推广开源这一概念,让大众更清晰地明白其与自由软件之间的差别,并以较少的意识形态方式来传递价值。</p> <p><strong><strong>1999:Red Hat 的 IPO</strong></strong></p> <p style="text-align:center"><img alt="从UNIX到GitHub:十个关于自由和开源软件历史的重要事件" src="https://simg.open-open.com/show/ac681fc6b1e38d842f5141d30623237e.jpg" /></p> <p>1999 年 8 月 11 日,红帽公司正式上市,成为第一家开始公开交易的开源公司,这是自由和开源软件具有商业意义最有力的证明。</p> <p>虽然在同一时期上市的其他开源公司 —— 尤其是 VA Linux,它的表现并不好,但红帽仍然是当今开源市场中的领先公司。</p> <p><strong><strong>2004:Ubuntu 的推出</strong></strong></p> <p style="text-align:center"><img alt="从UNIX到GitHub:十个关于自由和开源软件历史的重要事件" src="https://simg.open-open.com/show/37739ab6312998e0f0f0673642e7e7fd.jpg" /></p> <p>到 20 世纪 90 年代末,已经提供了许多 GNU/Linux 发行版。但因为缺少对用户友好的图形界面程序,除了极客之外,极少的用户能熟练使用。</p> <p>诞生于 2004 年 10 月 20 日的 Ubuntu 改变了这个情况。Ubuntu 由南非慈善家和企业家 Mark Shuttleworth 所创立,被称为“为人类而生的 Linux”。</p> <p>Ubuntu 的目标在于为一般用户提供一个最新同时又相当稳定且拥有友好的界面,主要以自由软件构建而成的操作系统。Ubuntu 目前拥有蓬勃发展的用户社区,具有庞大的社区力量支持,用户可以方便地从社区获得帮助,是目前使用最广泛的 GNU/Linux 发行版。</p> <p><strong><strong>2007:Android 的推出</strong></strong></p> <p style="text-align:center"><img alt="从UNIX到GitHub:十个关于自由和开源软件历史的重要事件" src="https://simg.open-open.com/show/e119fa28af12f7342650365fcdd0ed70.jpg" /></p> <p>将自由和开源软件提供给最多人使用的软件项目无疑是 Android 移动设备操作系统。Android 是使用最广泛的移动应用平台。</p> <p>虽然大多数 Android 用户可能不知道 Android 部分是基于 Linux 内核的,然而,很多自由和开源软件的倡导者抱怨 Android 的许可证没有提供软件自由,而且 Android 设备往往会被专有的组件和预装软件限制着,类似这种使用的不便,更多人倾向于使用 GNU/Linux。对于这种情况,Android 的开发者认为“Android 不是 Linux”,尽管有这个平台的根源。</p> <p><strong><strong>2008:GitHub 将开源“民主化”</strong></strong></p> <p style="text-align:center"><img alt="从UNIX到GitHub:十个关于自由和开源软件历史的重要事件" src="https://simg.open-open.com/show/ce3913dd359b33224985a1904c13ee9f.jpg" /></p> <p>最初,大多数自由和开源软件项目的贡献者通过电子邮件或私有的版本控制系统(如 Subversion 或 BitKeeper)进行协作。这种做法不仅笨重(因为没有集中的、精简的位置来查找开源项目和为其贡献),而且某些版本控制系统还是专有的。</p> <p>诞生于 2008 年的 GitHub 改变了这一情况。GitHub 提供使用 Git 进行版本控制的软件源代码托管服务。Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 开发,于 2005 年在 GPL 开源许可证下发布。最初目的是为更好地管理 Linux 内核的开发,用于替代他们曾经使用的闭源解决方案 —— BitKeeper。</p> <p>GitHub 的出现,使得更多开发者能更方便地参与开源项目,为开源项目贡献,任何人都可以轻松提交自己的代码,并在 GitHub 上托管自己的开源项目。</p> <p>因为几乎所有人都把自己的代码托管在 GitHub 上,所以更容易查找开源项目,而且协作方式的改变,开发者也不再需要获得开发者社区的权限才能参与开源项目。</p>