国家队解读:关于开源的五个常见误解,你中了几条?

76 阅读6分钟

“大开源时代”来了,你是否也曾陷入这些误区?

人民日报出版社特邀请《开源体系建设100问》作者中国信通院,为大家答疑解惑。

01

开源是否等于免费?

开源不等于免费。虽然开源软件(如遵循GPL、MIT、Apache等许可证的软件)倡导开放共享,其源代码公开透明,允许任何人自由查看、修改和分发,体现了数字经济时代的新思维与协作生产方式,但这并不意味着它不能收费。开源许可证的核心在于规定使用者的权利与义务,保障开放性和协作性。

相比之下,“免费软件”的核心在于“免费使用”,用户可以零成本获取和使用,但其源代码未必公开,用户通常也未必拥有复制、修改或再分发的权利。因此,免费软件在透明度和用户自由度上往往不如开源软件。

开源核心是源代码开放与协作自由(基于许可证),可以收费也可以免费。

免费核心是使用零成本,但未必开放源代码或赋予用户修改/分发自由。

02

把代码放在网上,是否等于开源?

不一定,软件是否是开源取决于源代码发布的授权协议。

判断一个软件是否为开源软件,最关键的因素在于它是否符合开源定义。开源软件的核心特征不仅仅是源代码的可访问性,更重要的是通过许可证明确授予用户特定的权利。“开放源代码促进”(Open Source Initiative,OSI)给出了开源软件十条要求。

第一条 自由再发布

第二条 提供源代码

第三条 允许派生作品

第四条 作者源代码的完整性

第五条 不能歧视任何个人和团体

第六条 不能歧视任何领域

第七条 许可证的发布

第八条 许可证不能针对某个产品

第九条 许可证不能约束其他软件

第十条 许可证必须独立于技术

如果公开的代码没有附带任何许可证,用户通常默认不拥有上述自由修改和分发的权利。同样,如果代码附带的是禁止修改、限制分发或要求专有授权的许可证,即使代码可见,它也不符合开源软件的标准。因此,开源不仅仅是代码的公开可见。

03

开源社区是否是实体组织?

首先需要理解开源社区是什么。

狭义的开源社区,是以开源项目的贡献者为主体,在开源项目贡献过程中形成的具有特定文化、组织结构、运行机制的共同体。简单来说,就是由一群开源贡献者组成的团体,这些人共同工作、开发和改进开源项目。广义的开源社区,可以理解为围绕开源聚集的一群人,这群人可以围绕一个平台聚集,比如开源开发者社区,这群人也可以围绕一个特定话题聚集。当前大家讨论的开源社区主要指狭义的开源社区,即围绕开源项目聚集的一群人。健康的开源社区需要有明确的社区治理规则以及成熟的社区运营机制,明确告诉大家,如何参与开源社区,如何进行重大事项决策。开源社区的核心目标是让大家达成共识,一起做出优秀的开源项目。

因此,开源社区不一定是实体组织,一个邮件列表就实现了社区建立。同时,开源社区也可以通过实体的形式呈现,比如在一个物理空间建设产业园区,为开源社区提供所需的基础设施。这种情况下,开源社区就成了一个实体组织。开源社区对于开源发展至关重要,它反映了参与者之间的组织形式和决策机制。就像阿帕奇基金会(Apache Foundation)所说的,“Community over code”(社区比代码更重要),意思是只要有活跃的社区,就不愁没有高质量的开源代码。

04

开源基金会是慈善组织吗?

开源基金会通过募集并管理资金,为开源项目提供孵化平台、为开源开发者提供科技服务,致力于推动开源生态繁荣和可持续发展。为开源项目和开发者提供各种服务,比如法律咨询和技术支持。一般来说,开源基金会不是为了赚钱,而是为了让开源软件生态更好地发展,所以它接受捐赠、资助项目、开展知识产权维权活动,还有一套完善的管理团队来打理日常事务。因此,开源基金会通常被认为是不以营利为目的的组织,即非营利法人。

虽然开源基金会的工作听起来像是在做公益,但是它是否属于慈善机构,还得看各地的法律规定以及基金会具体的运作模式。比如,在我国,慈善机构是有专门法律规定的,要求必须是以开展慈善活动为宗旨的非营利性组织,而且要向政府相关部门申请注册并告知公众才能成立。 以我国“开放原子开源基金会”为例,它提供的服务包括 接受捐赠用于开源公益事业、资助项目、商标保护、基金会日常行政管理,等等。此外,它还提供开源法律服务、IT基础设施管理维护、社区运营等专业性服务。它的目标是遵循“共建、共治、共享”原则,建立一个开放共享的开源社区环境,帮助各行各业更好地合作。从当前“开放原子开源基金会”公开的法人登记证书信息来看,它已经在中华人民共和国民政部注册登记了,所以它是一个正式的慈善组织。总之,各国情况需要具体问题具体分析。

05

开源和信息技术应用创新是否冲突?

在构建信息技术应用创新的产品和信息系统中,不可避免地会使用开源软件,这是全球软件开发的普遍实践,关键是安全合规使用开源,掌握开源技术核心代码,关键是要做好以下三点:

⭐️遵循开源许可证:必须严格遵守所使用的开源软件许可证规定的权利和义务。包括正确履行署名要求(保留版权和许可声明),理解并遵守关于代码修改、分发的条款。

⭐️保障开源供应链安全:将开源组件纳入统一的软件物料清单(SBOM)进行管理,清晰掌握其来源、版本和依赖关系,持续进行漏洞监控与修复。

⭐️深度参与上游,提升代码掌控能力。积极参与上游开源社区,贡献代码、修复漏洞、改进文档。这不仅能提升项目质量惠及所有人,也能增强对技术的理解力和掌控力。

更多信创开源资源下载,尽在XPlaza信创开源广场!