0.开源是什么

开源是什么?

开源方式是在开源社区内进行思考和协作的一种形式。 这一理念基于知识自由和核心原则:透明、协作、交付、包容和社区。 社区的思想交流和软件开发推动了以下行业的创新、科学和技术进步:教育、政府、法律、医疗保健和制造业。 这场运动为全球社区创造了一种通过源代码协作、共享和协助实现 个人及团体目标的方式。

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

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

开源开发模式的工作原理?

开源开发模式是开源社区项目用于开发开源软件的过程。然后,软件以开源许可证发行,因此任何人都可以查看或修改源代码。

许多开源项目托管在 GitHub 上,您可以在此访问存储库或参加社区项目。常用开源项目包括 Linux®、Ansible 和 Kubernetes。

红帽使用开源软件开发模式创建企业开源产品和解决方案。红帽开发人员积极参与了数百个跨 IT 堆栈的开源项目。

红帽以社区构建的开源软件为起点,这些软件能够部分或完全满足客户的需求。红帽依托这些开源项目,强化安全防护,修补漏洞,以及添加新的企业功能。然后将这些改进回馈给最初的项目,造福整个社区。

客户在使用红帽软件时,会提供反馈,提交错误报告,并在需求发生变化时,请求获得其他功能。客户的反馈也指引着红帽的发展方向。

Linux 与开源

Linux 是一款基于 GNU 通用公共许可证(GPL)发布的免费开源操作系统(OS)。Linux 也成为全球范围内规模最大的开源软件项目。

Linux 操作系统基于 Unix 的原则和设计创建,作为一个免费的开源系统,代替 MINIX 操作系统。

由于 Linux 是基于限制软件用途的开源许可证发布的,只要符合相应的许可条件,任何人都可以运行、研究、修改和重新分发源代码,甚至还可以销售修改后代码的副本。

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

开源软件是协作式软件,依靠社区生产和同行评审来相互使用、更改和共享源代码。 开发人员分享洞察、构想和代码,共同和单独创建更多创新的软件解决方案 这种可扩展且灵活的软件可确保任何拥有源代码 的人都能将其修改、增强和重新分发,从而提高可复用性和可访问性。 开源软件基于对等生产和大规模协作的基本原则,从而为 最终用户创造更可持续的软件开发体验。

闭源软件 (CSS) 是不向公众分发的专有软件。 这类软件进行了加密,因此仅创建该代码的原始作者有权合法复制、修改、更新和编辑源代码。 闭源软件会限制最终用户对应用可以执行的操作,防止用户修改、共享、复制或重新发布源代码。

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

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

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

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

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

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

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

开源的价值是什么?

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

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

参考文章:

  1. 全面解析:什么是开源?开源的意义是什么?| 红帽
posted @   NcPhoton  阅读(245)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
点击右上角即可分享
微信分享提示