开源软件是免费的吗?
开源软件不一定意味着免费赠送可执行软件。但是,它确实意味着将免费提供源代码。
例如,任何人都可以免费拿到红帽® 企业 Linux® 的源代码(立即了解),但是要将源代码转换成可运行的代码,则需要相应的专业知识、时间和服务器。如果企业希望得到红帽企业 Linux 的生产就绪型代码,而不想自己从源代码重建,他们可以获取订阅。
人们有时还会把开源软件和自由软件运动混为一谈,这加深了大众对开源是否意味着"免费"的困惑。自由软件运动起源于 1970 年代的黑客文化。该项运动由 Richard Stallman 正式发起,是 GNU 项目和非营利性自由软件基金会工作的一部分。通常,"自由软件"旨在强调最终用户权利的自由,但有时会被混淆为"免费"。
实际上,无论是自由软件还是开源软件都与费用无关,二者都可以合法地出售或赠送。
自由软件和开源软件有着共同的价值观,有时这两个术语被组合成流行短语"自由的开源软件"(FOSS)。
继续了解开源软件
请告诉我们您还想了解哪些内容。
FOSS 与专有软件
专有软件和 FOSS 之间的主要区别在于源代码的可用性。Microsoft Windows 和 Adobe Photoshop 等专有或商业软件不会向最终用户提供源代码。而像 Linux 内核(红帽企业 Linux 的基础)这样的自由软件和像 Google Chromium(Chrome Web 浏览器的基础)这样的开源软件却可以通过各自的许可证向用户提供源代码。
还有不同类型的开源许可证。例如,如果有人将您的源代码转换为新软件,您是要求他们以相同的许可证进行发布(就像 GNU GPL 那样),还是可以采用不同的许可证(就像 GNU LGPL 中允许的那样)进行发布?互联网以及日益普及的云计算模型都是发端于开源软件,如果并非如此,世界也会大不相同。
为什么开源软件非常重要?
开源软件对每个人来说都很重要(而不仅限于程序员),因为与闭源模型相比,它所释放出的潜能让更多的人成为了创新者。例如,开源社区就是围绕开源项目而组织聚合的,任何有技能的人都可以加入并贡献代码。就像专有软件团队一样,这些小团体维护着对开源项目做出贡献的标准,只是他们会向世界上任何同样想要做出贡献的人开放了这一过程。
这种开源开发模式造就了一些当今在用的最重要的应用和云平台,其中最为常见的就是 LAMP,这是一种支撑大部分网络的服务堆栈模型。缩略词 LAMP 的含义如下:
- Linux:一个开源操作系统(OS),也是世界上最大的开源项目
- Apache:一个开源跨平台 Web 服务器,它在早期的网络历史中发挥着关键作用
- MySQL:一个被众多数据库驱动型 Web 应用所使用的开源关系数据库管理系统
- PHP:在软件开发中使用的一种通用脚本语言(有时也会换用 Perl 或 Python 语言)
常用开源技术的其他示例包括:Android 移动操作系统、Mozilla Firefox Web 浏览器、广泛使用的版本控制系统 Git,以及两个相关的办公套件 OpenOffice 与 LibreOffice。从更广泛的层面讲,云计算、大数据和人工智能领域的大多数创新也都来自开源软件项目。
除了在早期网络以及一些当今常用的应用中发挥重要作用外,开源软件也让企业和个人程序员受益良多。开放源代码后,任何人都可以更加方便地对它进行研究,从而培养新的编程技能。开源许可还允许学员们通过编辑代码并与朋友和更广泛的开源社区进行共享(甚至是为现有的开源项目提供修补程序)来进行练习。
此外,企业还可以根据自己的需求对开源软件进行定制,或者打造原始源代码中所未包含的全新客户体验。也有一些人选择开源软件,是因为当源代码公开可用且有活跃的支持社区时,会有更多的开发人员寻找安全漏洞。
开源软件是开源开发模型的产物。开源开发模型是分散式的,它鼓励开放式协作和大众生产。这给软件开发领域带来了深远的影响,人们经常把它的核心理念称为"开源方式"。
开源的效率非常高,因为它可以吸引大量技术人才加入。大部分技术创新都在开源社区完成,最终让全球各地的用户都能用上开源软件。除了很多流行的网站和应用以外,Linux、Kubernetes 和 Git 也属于开源项目。此外,人们访问互联网用的 Firefox 和 Chromium 也都是开源浏览器。