“开源”一词不仅仅指可供公众访问且可由第三方查看、复制或交换的软件。在过去的几十年里,开源已经发展成为一种工作模式和集体解决问题的行动。然而,由于分散的生产模型,开源软件依赖于同行评审(一个独立的质量保证过程)和编程社区的输入。这种协作是“开放软件”的主要特征之一。本文中大眼仔给大家分享了关于开源的精确定义,并明确区分了免费、开源和闭源软件。
什么是开源?
开源源于术语“开源软件”,简称 OSS。使用这种类型的软件,可以免费访问源代码。程序员和用户可以更改和共享它。与专有软件相比,开源产品更灵活且购买成本更低。开源软件不属于任何个人或公司。大型开发人员社区维护代码并通过集体输入不断改进它。有时,组织和公司联手开展开源项目以节省开发成本。
这个软件开发过程并不新鲜:事实上,开源与互联网本身一样古老。在 1950 年代和 1960 年代,第一个电信网络协议是在开放环境中开发的。ARPANET(高级研究计划机构网络)为现代互联网奠定了基础,它基于协作和同行评审,很像今天的开源软件。1970 年代的黑客运动和 1980 年代的自由软件运动加强了软件开发中自由知识交流的理念。今天,开源不仅描述了“开放软件”,还描述了 IT 世界中的协作态度。
免费、开源和闭源软件之间有什么区别?
在开源流行之前,可公开访问的软件模型被称为“自由软件”。这可以追溯到 GNU 项目。GNU 是一种在自由软件运动期间出现的操作系统,它允许最终用户在使用源代码时拥有最大的自由。“自由软件”与专有或“闭源软件”形成鲜明对比,后者只有注册所有者(公司)在法律上被允许访问源代码并可以更改或共享它。用户只能将软件用于其预期目的并在付款后使用。
然而,“自由软件”一词引起了混乱。“免费”一词不仅意味着开放,还意味着免费。然而,免费是指任何人都可以访问软件,而不是免费的。与知识共享一样,对于开源软件,并非“一切都被允许”:它的使用有一定的条件。为了将注意力从商业理念转向免费使用,Foresight Institute 在 1998 年创造了“开源”一词。
注意
开源软件不同于公共领域软件,也称为免费软件或公共领域软件。但是,由于术语彼此之间没有明确的界限,因此这两个软件术语可能会重叠。
开源需要考虑什么?
在早期阶段,公司对开源软件的使用持怀疑态度。一方面,他们担心在许可法下变得脆弱,另一方面,他们担心泄露其专有软件的部分内容。大多数这些担忧现在已经消失,许多大公司依赖开源解决方案。为了能够整合全球最广泛的开发人员基础,已经开发了不同的许可模式。大多数条款与用户在开源项目使用的文档和披露方面的义务有关。
在您使用开源组件之前,建议检查它们可用的许可。为避免法律问题,重要的是仅根据许可条件使用单个组件并确保记录其使用。如果被问到,您必须能够公开展示您的工具和源代码。GitHub 等开发者平台(通常用于管理软件开发项目)和许可工具使合法合规地处理开源软件变得更加容易。可以创建所谓的“软件部件列表”来跟踪您使用的软件组件的许可证。
开源软件示例
大多数互联网用户经常使用在开源许可模式下分发的软件,而没有意识到这一点。以下是三个成功的开源项目,它们举世闻名,并对操作系统运动产生了重大影响。
PHP:脚本语言被开发用于创建动态网页。自 1995 年首次推出以来,它一直是全球使用最广泛的 Web 编程语言之一。在数据库支持和 Internet 协议集成方面,PHP 为 Slack 或 Spotify 等应用程序提供了高度的灵活性。
Mozilla Firefox:Mozilla Firefox 是一种可自由配置的浏览器,提供大量插件选择,是全球三个最常用的 Web 客户端之一。它于 2002 年推出,其开放的理念在科技行业掀起了轩然大波。据美国新闻网站 CNET 报道,Mozilla Firefox 在开源的传播中发挥了核心作用。
WordPress:免费的内容管理系统 WordPress 自 2003 年以来一直存在。从那时起,该项目一直在不断扩展。
WordPress 基于开源编程语言 PHP,最初开发用于创建和管理博客。通过集成外部插件,CMS 现在为用户提供轻松的配置选项。今天,WordPress 是全球最受欢迎和最常用的内容管理系统之一。
目前大眼仔博客使用的就是基于 WordPress 搭建的网站。
开源软件的优缺点
有许多支持使用开源软件的论据。但是,它们的使用存在一些风险,您应该在使用它们之前了解这些风险。考虑开源的以下优点和缺点,看看软件模型是否适合你。
优点:
低成本:开源软件的源代码在大多数情况下是免费提供的,大大降低了其获取成本。
可靠性:因为整个开发人员社区都在努力改进产品,这意味着它比专有软件更可靠。
长久:开源软件是持久的,因为它与单个提供商的成功无关,如果他们的业务解散,他们的服务就会丢失。
安全性:开发者社区会在错误和安全威胁出现时立即识别并修复它们。
灵活性:开源为用户提供了高度的灵活性,以便软件可以在未经提供商同意的情况下适应他们自己的需求。
缺点:
长期成本:对于开源项目,可能会产生某些后续成本,例如,必须培训员工或进行外部故障排除。
支持:虽然诸如故障排除等客户服务包含在专有软件中,但 OSS 用户没有直接联系。
易用性:开源软件面向开发者,需要对配置有一定的技术理解。
关闭:虽然大多数开源项目都是长期存在的,但有时一个项目会失去开发者社区的注意力从而导致项目关闭。
安全性:一般来说,使用开源项目是安全的。然而,应该注意的是,该软件通常是在不受控制的环境中创建的,在该环境中恶意软件可以更容易地集成。
总结
考虑到它的诸多优势,开源概念在过去几十年盛行也就不足为奇了。配备了正确的工具,开源用户可以从软件中受益,并成为依赖集体价值创造的全球 IT 产业的一部分。
单身脱发又没钱,跑步进入中老年。
其它相关资源:
一招搞定 Windows 10 系统自带的网络搜索功能
Windows 技巧之 – 教你如何快速隐藏电脑里的小姐姐
Windows 系统中 JAVA 环境变量配置教程