开源

什么是开源?

什么是开源和开源软件(OSS)?

开源一词最初是指开源软件(OSS)。开源软件是源代码可以任意获取的计算机软件,任何人都能查看、修改和分发他们认为合适的代码。开源软件依托同行评审和社区生产,皆以分散、协作的方式开发。开源软件由社区开发,而非单个作者或公司,因此通常成本更低、更灵活,寿命比专有软件更长。

开源已成为一种超越软件生产界限的运动和工作方式。开源运动旨在利用开源软件的价值和分散的生产模型,为其社区和行业的问题寻找新的解决方法。


开源的历史就是互联网的历史

早在 20 世纪 50 年代和 60 年代,开发早期互联网技术和电信网络协议的研究人员就十分倚仗开放的协作式研究环境。现代互联网的根基——阿帕网(ARPANET)十分推崇同行评审和开放反馈流程。用户组互相共享源代码,相互扶持,构建创新。而论坛则能够促进对话,并为开放通信与协作制定标准。到 20 世纪 90 年代早期互联网诞生之时,协作、同行评审、通信和开放性的价值均已写入了它的底蕴之中。


自由软件、闭源软件和开源软件之间的区别是什么?

在很长一段时间里,开源软件都被贴上了“自由软件”的标签。1983 年,Richard Stallman 通过 GNU 计划正式发起自由软件运动。自由软件运动强调用户的自由权利:自由查看源代码、自由修改、自由再分发,让用户能够自由获取源代码,并且自由地使用。

自由软件旗帜鲜明地反对专有软件或“闭源”软件。闭源软件的源代码则有着重重防护。只有源代码所有者才拥有该代码的合法访问权。更改和复制闭源代码是违法行为,用户只能付费按既定方式使用软件,无法修改另作他用,也无法与社区共享。

但是,“自由软件(free software)”的名称造成了大量困惑。自由软件只表示您可以按照自己的方式自由使用,但不一定意味着您就能免费拥有它。社区曾经对此的解释是:“它指的是言论自由的自由,而不是免费啤酒的免费”。Christine Peterson 是“开源”一词的发明者,为了解决这一问题,她曾试图用‘开源’来取代‘自由软件’:“早期称呼‘自由软件’不适用,并不是因为含有政治意义,而是会误导新手去过多关注于价格。所以我们需要一个关注于关键的源代码,而且不会让新用户混淆概念的术语。”

Peterson 向一个工作组提出用“开源”一词来取代“自由软件”,该工作组的任务,是将开源软件实践引入更广阔的市场。工作组希望全世界了解,如果软件共享,如果软件具有协作性、开放性且可修改,软件就会更加完善。这样,软件可以发挥更多、更好的用途,可以更灵活,成本可以更低,寿命可以更长,也没有供应商锁定。

Eric Raymond 是该工作组的成员之一,1997 年,他在影响广泛的《大教堂与市集》一文中发表了大致相同的观点。1998 年,部分出于对该文章的回应,Netscape Communications Corporation 开源了 Mozilla 项目,将源代码作为自由软件发布。该代码的开源形式后来成为了 Mozilla Firefox 和 Thunderbird 的基础。

Netscape 对开源软件的支持,也为社区增加了更多压力,不得不思考如何重点关注自由软件运动的实际业务应用。而这也加深了开源和自由软件之间的分歧:“开源”成了一个描述自由软件的方法、生产和业务层面的词。而“自由软件”则仍是一个话语符号,强调着这些关乎用户自由问题的哲学意涵。

1998 年初,开放源代码促进会成立, 规范了开源一词,并为其赋予行业范围内的常见定义。从 20 世纪 90 年代末到 21 世纪初期,企业仍对开源运动持谨慎和怀疑态度,但如今,该运动已从软件生产的边缘逐渐转而成为今天的行业标准


开源的价值是什么?

人们弃专有而选择开源的原因有很多,但最常见的原因包括:

  • 同行评审:由于源代码可自由访问,而且开源社区非常活跃,因此同行程序员会积极检查和改进开源代码。它就如同充满活力和生机的代码,而不是固步自封、停滞不前。
  • 透明性:想要准确了解哪些类型的数据移动到哪里,或代码中发生了哪些类型的变化?开源允许您自行检查和跟踪,不必依赖供应商承诺。
  • 可靠性:专有代码只靠单个作者或控制该代码的公司来更新、修复和保持正常工作。开源代码的存在时间可以超越其原作者,因为活跃的开源社区会不断进行更新。开放标准和同行评审可以确保开源代码经常得到适当的测试。
  • 灵活性:由于开源代码注重修改,因此您可以使用它来解决您的业务或社区面临的独特问题。您不再只能用一种特定方式使用代码,您可以依托社区帮助和同行评审帮助您实施新解决方案。
  • 更低成本:因为开源,所以代码本身是免费的,当您使用红帽等公司时,您只用为支持、安全强化和管理互操作性帮助等服务买单。
  • 无供应商锁定:赋予用户自由,意味着您可以随时随地使用开源代码,用于任何目的。
  • 开放式协作:活跃的开源社区,让您不再囿于方寸天地,而是能获得超越兴趣小组或者一个公司的帮助、资源和观点。

超越软件的开源运动

开源不仅仅是关于代码。红帽致力于通过“开源故事”来颂扬当今开源技术对社区的影响。“开源故事”是一系列多媒体资源,旨在颂扬社区、英才管理和自由交流三方面在激发各学科潜能方面的重要作用。查看以下最新聚焦主题:


为什么选择红帽实现开源?

红帽是全球最大的开源企业。我们通过开源项目构建和支持开源产品。我们回馈所参与的项目和社区。我们保护开源许可。我们通过开源,帮助客户取得成功。我们精选社区构建的代码,强化安全、增添功能,将其打造为企业就绪并且能够扩展。然后,红帽会将这些改进回馈给最初的项目,造福于整个社区。

了解关于开源的更多信息