名词百科

什么是开源系统?

一句话定义

开源系统是源代码公开、允许他人使用、修改和再分发的软件。开源不等于免费,也不等于可以随意商用——具体权限由许可证决定。

发布者:黔序科技

它到底是什么

开源的核心是许可证,不是「代码能下载」。同一个开源项目,许可证不同,你能做的事完全不同:有的允许闭源商用,有的要求衍生作品也必须开源,有的对网络服务场景单独设限。

「免费」和「开源」是两个独立概念:开源软件可以有付费的技术支持和托管服务;免费软件可以是闭源的。企业选型时该看的是许可证条款,而不是价格标签。

怎么运作的

常见许可证分两大类,判断方法很简单——你要不要闭源分发。

宽松型(MIT、Apache 2.0、BSD):可以商用、可以闭源、可以修改后不公开。只需保留版权声明。适合做商业产品的基础。

传染型(GPL、AGPL):修改后的衍生作品也要以相同许可证开源。AGPL 更进一步,把「通过网络提供服务」也算作分发——用 AGPL 组件做 SaaS,通常也要开源自己的修改。

开源项目的健康度看三项:最近提交时间、issue 响应速度、有没有商业公司或基金会支撑。只有一个人维护的项目,风险不在技术而在持续性。

容易混的几个概念

  • 免费软件:可以不收费,但不一定公开源码。
  • 开源 ≠ 可商用:部分许可证明确限制商业用途,需逐个确认。
  • 开源 ≠ 无维护:代码公开但没人维护的项目,漏洞修复无人负责。
  • 开源二开:在开源项目上改,受原许可证约束,改了也要遵守开源义务。

常见问题

用开源系统做商业项目要注意什么?

先确认许可证类型和你的分发方式。闭源对外销售的产品,避开 GPL、AGPL 类传染型许可;只在内部使用通常不触发分发义务,但仍需保留版权声明和许可证文件。

开源项目停止维护了怎么办?

分情况:需求已稳定,可以继续用但需自行承担安全补丁;需求还在演进,应考虑迁移或 fork。fork 的前提是你能读懂并维护它,否则只是把风险推迟。

A 交付方式 · 同组词条

二次开发二次开发是在已有软件源码的基础上进行修改和扩展,而不是从零编写。起点是一套完整可运行的系统,工作需要先理解原有架构再动手。源码交付源码交付是软件开发方把源代码及其相关资产移交给客户的行为。它决定了客户在合同结束后能否自行修改、部署和继续维护系统。模板开发模板开发是在已有的成品系统上修改配色、文案、栏目和部分字段来搭建网站或应用的方式。业务流程本身不变,改的是外观和展示内容。买断买断是一次性付费获得软件永久使用权(或含源码)的交付方式;订阅是按周期付费获得使用权的模式。两者的差别在于是否拥有程序副本。IaaSPaaS 提供应用运行环境和中间件,代码由客户自己写;IaaS 只提供虚拟化的计算、存储和网络,操作系统往上全部自己管。MVPMVP(Minimum Viable Product,最小可行产品)是用最小功能集验证核心假设的产品形态。它要验证的是「有人愿意为这个解决方案付费」,而不是展示完整的产品构想。SaaSSaaS(Software as a Service,软件即服务)是厂商把软件统一部署在云端、客户按账号数或用量订阅使用的模式。客户不买服务器、不管运维,代价是数据与功能演进方向由厂商掌握。敏捷开发敏捷开发是一组以短周期迭代、持续交付可用软件为核心的开发方法,Scrum 是其中应用最广的一种框架。它们共同的前提是接受需求会变化。