第 3 小节:如何判断一个项目是否是开源的

大约 7 分钟

# 第 3 小节:如何判断一个项目是否是开源的

本篇内容将会引导大家分辨一个项目的状态,是开源,闭源,还是半开源。

# 前言

根据项目是否遵循某个开源许可证并向公众公开源代码,可将软件项目分为开源软件和闭源软件(也称为专有软件)两大类。随着开源生态的发展,也出现了“半开源”和“内部开源”等新名词。那么,本节我们就来深入探讨一下这些概念和形式,深刻理解什么样的项目可以称之为开源项目?哪些项目又是闭源项目?它们之间有什么区别?

# 开源项目 (Open Source)

开源软件是开源的主要表现形式。在第 1 小节中,相信你已经对开源有所了解,下面我们来回顾一下开源的定义:开源软件是一种 技术和立场中立的使用许可证约束的开放源代码 的软件。

对于开源软件来说,技术和立场中立要求开源软件对任何组织和个体要一视同仁,保持公平公正。而使用许可证约束一方面是保证开源者的各项权利。

当然,关于开源的详细定义还有很多,其中最有影响力的是 Debian 自由软件指导方针 (DFSG) (opens new window) 和 Open Source Initiative 制定的 Open Source Definition (opens new window)。其中,后者是前者的衍生版本。

更多详细内容,请参考 [第 1 小节:什么是开源](./第 1 小节:什么是开源.md/#开源软件) 。

# 闭源项目 (Closed Source)

闭源软件(也称为专有软件)是指源代码不公开发布的软件项目。由于公众无权访问源代码,因此无法以任何方式查看或修改源代码。闭源可以保证源代码的安全性和隐私性,想要获得此类代码一般需要加入闭源项目所属组织或签署保密协议,以确保代码不会泄露。闭源项目一般存在于商业软件领域,可以很好地保护公司的商业机密。此外,个人的私密项目也属于闭源项目,你可以在创建项目时,选择对应的隐私访问级别 —— Private。

我们日常生活中使用的绝大多数应用程序、游戏和专业软件工具都是闭源的,例如 Microsoft Office、Photoshop、微信、MATLAB 等。但是,许多类型的程序都有开源替代品,例如 LibreOffice 可以替代 Microsoft Office,GIMP 可以替代 Photoshop。甚至如果你不想使用 Windows,也可以尝试使用一个开源 Linux 操作系统。

相对于开源软件,闭源在保护机密和隐私方面发挥了重要作用,但由于参与成员的限制性,不能像开源项目那样集思广益。因此,项目的迭代速度一般会慢于开源项目。此外,也正是因为参与群体范围较小,闭源项目的维护管理、标准化难度会小于开源项目。

# 半开源项目

“半开源”一词从来没有被正式定义过,甚至,“半开源”这个词是不是被生造出来的也不太清楚。下面列举了半开源软件当前较为常见的几种定义(排序不分先后)。

  • 半开源软件是指 开放了系统核心代码但不开放非核心代码的软件。比如:有人认为 Android 是半开源系统系统,因为其系统核心开源,但硬件驱动、Google Service、各厂家自带应用不开源。
  • 半开源软件是指 开放源代码但并没有开放其他功能代码的软件。软件虽然开放了源代码,但由于种种原因,可能在实现上做了限制,导致使用者并不能完整地使用软件的所有功能。
  • 半开源软件是指 开放源代码但没有使用开源许可证的软件。因为半开源的概念和英文中“Source Available”的概念基本相同。

虽然没有权威的定义,但从上面几种定义分析,我们可以总结出半开源的特点:开放了源代码,但并没有使用开源许可或没有满足开源使用者一定程度上的需求。从本质上来讲,半开源与开源之间没有明确的界限,两者都开源了源代码,只是由于一些原因,导致开源使用者认为前者并非完全开源的。

# 内部开源(Innersource)

“内部开源”是近年来经常提及的一个词,这个词最早由蒂姆·奥莱利(Tim O'Reilly)在2000年提出。内部开源是一种开发方法,在组织内部使用开源软件开发最佳实践建立类似开源的文化和协作方式来完成代码工作。内部开源可以帮助团队更快地构建软件,更好地协同工作,从而实现更高质量的开发和更好的文档记录。

内部开源既是一种技术转变,也是一种文化转变,越来越多的科技企业已经意识到开源给组织带来的优势和挑战。与开源项目类似,内部开源项目会在可发现性和可重用性较高的工作中发挥更大作用。它还有助于组织建立具有相似利益和专业知识的小型跨职能社区,降低成本并实现更有效的管理。

# 其他概念

# 自由软件 (Free/Libre Software)

自由软件和开源的区别

自由软件一般指的是,它包括满足开源条件的软件,以及不满足开源条件的软件。但是,这两个说法之间存在些许的哲学观点差异。关于自由软件,其中涉及到的辩论和观点很多,如果想要了解自由软件运动支持者对“开源软件”说法的质疑和批评,可以参考阅读 《为什么开源错失了自由软件的重点》 (opens new window)

# 小结

本篇文章向大家讲解了开源、闭源、半开源、内部开源的概念,客观分析了它们各自的特点,当你想要保护隐私、少数人参与维护的项目时,闭源更加适合你;当你想要分享自己的项目、吸引更多人维护时,请果断选择开源。关于半开源,虽然大家可能各说纷纭,但它与开源并没有明确的分界线,对于一些观点的解读需要大家理性看待。

分享需要开放的心态,还望大家求同存异,在开源世界里肆意挥毫,留下浓墨重彩的一笔!

# 案例说明

# 开源案例的开源许可说明

# 参考资料

# 本部分内容贡献者

ZeroAurora (opens new window)雪山凌狐 (opens new window)ORH (opens new window)阿基米东 (opens new window)XYCode (opens new window)西狩 (opens new window)

发现内容中的错误?还是想要补充更多符合主题的内容?《开源指北》欢迎你进行贡献,点击贡献指南了解贡献的具体步骤。

上次编辑于: 2024年4月15日 14:52