美国政治传播学家拉斯韦尔提出了 5W 流传模式,通过前人的一直使用和倒退总结,造成了一套逐步成熟的“5W1H”体系,即:对选定的我的项目、工序或操作,都要从起因(何因 Why)、对象(何事 What)、地点(何地 Where)、工夫(何时 When)、人员(何人 Who)、办法(何法 How)等六个方面提出问题进行思考。
本系列文章就以 5W1H 体系来讲一讲开源的那些事。这一次,讲讲开源的 Who——谁“创造”了开源以及开源的起源。
微软的一封信
自上世纪第一台计算机问世以来,计算机产业是以硬件为主的商业模式,即硬件销售为次要支出起源,附带的软件并不免费且附有源代码,便于业余人员调试和批改。尽管当初都将软件著作权视为司空见惯,但过后的法律并不能给予这一新生事物短缺的爱护。起初,随着个人电脑的遍及,人们对软件的需要扩充,呈现了一批专门开发通用软件的公司,这样的软件公司须要对软件免费来获取利润。但软件免费与提供源代码显然是矛盾的,因为只有依然提供源代码,就无奈阻止用户或者竞争对手复制或改写软件代码。
1976 年 2 月 3 日,Bill Gates 发表了驰名的《Open Letter to Hobbyists》(致电脑业余爱好者的一封公开信),在这封公开信中,Bill Gates 明确提出软件应该具备“CopyRight”(版权)。这封公开信奠定了软件产品“CopyRight”的实践根底,也促使公有软件成为软件产业倒退的支流。“Copy Right”理念的提出,必然导致源代码被彻底被关闭起来。
主观地讲,Bill Gates 的“Copy Right”理念以及公有软件的衰亡,对于推动软件产业的发达功不可没。然而,Microsoft 等公有软件厂商对于软件市场的垄断,引发了用户和宽广软件开发者的强烈不满,衰亡了拥护公有软件理念的静止,开源软件就是这种静止的重要组成部分。首先衰亡的公有软件静止,是自由软件静止(Free Software Movement),它是开源软件静止的先河。
自由软件静止
一些人对于软件从收费转向免费并且不再提供源代码这一景象感到不适应或不满,其中最驰名的就是发动了自由软件静止的 Richard Stallman。70 年代的 Richard 在 MIT 的 AI(人工智能)实验室做程序员。施乐的打印机不再提供源代码,Richard 无奈像以前通过批改代码来解决打印机故障;Richard 向商业公司提供了 LISP 编译器的公共代码,但该公司回绝分享裁减和改良后的代码。这两件事促使 Richard 辞职,投入到自由软件静止中。
1983 年,Richard 开始提倡自由软件静止。1985 年,Stallman 等人创立了自由软件基金会 (Free Software Foundation,简称 FSF)。Stallman 提出了与“Copy Right”理念唇枪舌剑的“Copy Left”(许可复制权) 理念,其表现形式是 GPL,即公共许可证(General Pubic License)。自由软件应该是具备如下 4 大自在的软件:
出于任何目标运行该软件的自在;有钻研该软件如何运行并加以改进使之更合乎本人须要的自在;有从新公布以帮忙邻里的自在;有改善程序,颁布改良计划 (以及通常的修订版) 以推动整个社区利益的自在。
工夫来到 1991 年,自由软件基金会曾经开发了 GNU 操作系统的大部分组件(例如编译器、编辑器、用户界面等),然而依然未实现作为操作系统外围的内核,即 GNU Hurd。
实现操作系统内核的工作是在一个 21 岁的芬兰大学生 Linus Torvalds 的率领下实现的。出于个人兴趣和测试目标,Linus 于 1991 年 9 月编写了 0.01 版的 Linux 内核,而该版内核甚至还无奈运行。不过 1 个月后他就写出了 0.02 版,该版本已能够运行各种 GNU 组件了(所以 Linux 也常被称为 GNU Linux)。在 0.02 版后,来自世界各地的程序员们退出到了 Linux 内核的开发中,使其迅速欠缺。在 1992 年 2 月开释 0.12 版时,Linus 将 Linux 内核的许可证改为 GPL 许可证第二版,并始终放弃至今。1994 年 3 月,1.00 版 Linux 内核开发实现。
正是 Linux 的呈现,使得自由软件静止有了本人能够与 Microsoft 的 Windows 相抗衡的操作系统。自由软件静止初战告捷。然而,自由软件静止对于自在的谋求,毕竟和事实的商业气氛心心相印,带有着过于理想化的色调。这种反商业的信条,让一些原本也拥护公有软件的人士对自由软件敬而远之。正是在这种背景下,一部分原有自由软件静止人士,开始尝试将现实的自由软件与事实的商业气氛进行某种连接。
开源软件
1998 年 2 月,Richard Stallman、Eric Raymond 等人在美国加州成立了一个名为开源促进会(Open Source Initiative,简称 OSI)的组织,旨在推广开源软件。为了缩小意识形态上的沟壑,以及「自在(Free)」一词造成免费软件的误会。OSI 组织决定从「自由软件」中去掉了「自在」一词,应用「开源软件」(Open Source Software)作为共通名称,并创立了本人的开放源码的定义,以及本人的一套许可证。依据开源促进会的规范,开源软件能够应用非著佐权(copyleft)性质的宽松(permissive)许可证,容许该许可证下的代码的衍生代码闭源。
用一句话概括,开源软件就是源代码凋谢且能够自在复制的软件。开源软件静止的理念更偏向于解决理论问题,既抓住了公有软件的痛点,又实现了与商业的交融。