自由和开放源代码软件的历史
为了理解开源软件,我们必须回到计算机科学的早期。
公共领域软件
在1950年代和1960年代,软件的价格相对于所需的硬件较低。任何生产的软件通常都是由学术界和企业研究团队制作的。源代码与软件一起分发是很常见的——通常作为公共领域软件。公共领域软件意味着软件是自由可用的,不受所有权、版权、商标或专利的限制。这种开放与合作的原则对当时的黑客文化产生了巨大影响。
在1960年代末期,操作系统和编译器的兴起增加了软件的成本。这是由于软件产业的增长,软件厂商与硬件厂商竞争,后者将软件与硬件捆绑销售。
在1970年代和1980年代,出售软件使用许可证变得普遍。1983年,IBM停止了将源代码与购买的软件一起分发。其他软件厂商也纷纷效仿。
自由软件
理查德·斯托曼(Richard Stallman)认为这是不道德的,于是在1983年成立了GNU项目,并随后发起了自由软件运动。自由软件运动认为,如果软件接收者允许执行以下操作,那么该软件就被视为“自由”软件: - 为任何目的运行程序。 - 研究软件并以任何方式修改它。 - 重新分发程序并制作其副本。 - 改进软件并发布改进。
理查德在1985年成立了自由软件基金会(FSF)。FSF以以下名言而著名: “自由是自由言论,而非免费啤酒。”
这意味着“自由”一词指的是分发自由,而不是免费的成本(Gratis与Libre)。由于许多自由软件本身已经是免费的,因此这种免费软件(Freeware)常常与自由软件和零成本的概念联系在一起。
自由软件运动创造了“copyleft”(版权左转)的概念。它赋予用户使用和修改软件的权利,但保持软件的自由状态。这些许可证的例子包括GNU通用公共许可证(GPL)、Apache许可证和Mozilla公共许可证(MPL)。
许多仍在今天运行并广泛应用的伟大软件,都是采用这些copyleft许可证分发的。例如,Linux内核(由Linus Torvalds于1992年发布)、BSD、MySQL和Apache。
开源软件
1997年5月,在德国维尔茨堡的Linux大会上,埃里克·雷蒙德(Eric Raymond)介绍了他的论文《大教堂与集市》(The Cathedral and the Bazaar)(Raymond, E. S. 1999)。他反思了自由软件的原则和黑客文化,以及这些原则对软件开发的好处。论文引起了广泛关注,促使Netscape将其浏览器Netscape Communicator作为自由软件发布。
雷蒙德和其他人希望将自由软件原则推广到更多的商业软件供应商,但“自由软件”这一术语对于商业软件公司来说有负面含义。
1998年2月3日,在加利福尼亚州帕洛阿尔托,许多来自自由软件运动的重要人物聚集在一起开会,讨论自由软件的未来。与会者包括埃里克·雷蒙德、迈克尔·蒂曼(Michael Tiemann)和克里斯蒂娜·彼得森(Christine Peterson),他们被认为是提出“开源”这一术语,以替代“自由软件”一词的主力。
开源倡议(OSI)于1998年2月底由埃里克·雷蒙德和布鲁斯·佩伦斯(Bruce Perens)创立,雷蒙德担任首任主席(OSI 2018)。
1998年,在出版商蒂姆·奥赖利(Tim O’Reilly)主办的历史性Freeware峰会上——后来被称为开源峰会——“开源”这一术语被迅速采纳,早期支持者包括Linus Torvalds、Larry Wall(Perl的创始人)、Brian Behlendorf(Apache)、Eric Allman(Sendmail)、Guido van Rossum(Python)和Phil Zimmerman(PGP)(O’Reilly 1998)。
然而,理查德·斯托曼和FSF拒绝了“开源”这一新术语(Richard S. 2021)。因此,自由开源软件(FOSS)运动依然存在分歧,今天仍然使用不同的术语。
开源软件的崛起
在过去的二十年里,开源软件的受欢迎程度持续上升。像Linux和Apache这样的软件驱动着大部分互联网。一开始,商业化开源软件非常困难。最初的想法是围绕开源产品提供企业级的支持服务。Red Hat和MySQL是这方面成功的公司。但这条道路比较艰难,且没有像商业许可证那样的规模。因此,那些大量投资构建开源软件的公司开始创建“开源核心”产品:免费、开源的核心产品,以及可以向客户出售的商业附加组件。
软件商业模式从传统许可转变为软件即服务(SaaS)订阅模型,帮助开源公司将其开源软件商业化。这激励了传统软件厂商将其软件——至少是核心部分——作为开源软件发布,以与社区进行互动。
不仅微软、谷歌、IBM和亚马逊等大型软件公司成为了重要的开源公司,像Red Hat和MuleSoft这样的纯粹开源公司也获得了大量的市场价值和认知。例如,Red Hat于2018年被IBM以320亿美元收购,MuleSoft同年被Salesforce以65亿美元收购。
因此,今天的开源软件不再仅仅是那些创造替代自由软件的革命性思想的产物。许多顶尖的软件,推动着云服务平台的技术发展,都是开源软件(Volpi M. 2019)。