源代码|「上云」之后,企业数字化的下一步是开源( 二 )

这里不得不说,理查德·斯托曼 (Richard Stallman)(对他的各种毁誉不影响 GNU 和 FSF 的意义和价值) 发起的 GNU(GNU is Not Unix) 行动重新开发实现了 Unix 的大部分工具系统,并且以 GPL 的许可发行这些软件,GPL 对衍生软件强制要求持续提供源代码,GNU 实现了绝大部分的 Unix 常见工具体系,但是仍然无法摆脱对 Unix 操作系统核心的依赖。
直到 1991 年林纳斯·托瓦兹 (Linus Torvalds) 开始的 Linux 核心的开发工作填补了这个空白,同样采用 GPL 许可的 Linux 核心和外围工具体系一起形成了 Linux 的生态系统。
90 年代中期以后,互联网开始蓬勃发展,各种 Unix 衍生品与 Windows NT 在起步阶段也支撑了这个过程。新创互联网企业并不愿意把宝贵的资金消耗在昂贵的硬件设备和僵化的软件授权上,Linux 因其不强制收费和开放后续源代码修改的优势,被很多新兴互联网企业选为后台服务运行平台。
操作系统之上的各种开源系统也得到了广泛的运用与持续发展,逐渐形成了今天互联网巨头们基于开源软件和自研业务软件的普遍现状。
02「开源」如何赚钱从字面上看,开源是指开放软件的源代码给使用者,但是单纯提供源代码并不是目前「开源软件」的标准定义,而是软件向使用者提供源代码并且授予修改和持续演进的自由,因此对修改后的软件再分发在规定上的差异,形成了不同的开源软件许可体系。
目前开源软件的许可体系主要分为两大类:一类强制要求再开源,代表性的有 GPL 许可体系;另一类不强制要求衍生开源,为宽松开源许可证,代表性的有 BSD、MIT、Apache 等许可体系。GPL 许可体系强制要求下游「发行」时提供源代码,不得改变 GPL 的兼容性,限制从开源软件转变成非开源软件 (但「发行」的定义,存在可被利用的空间)。
强制继续开源,又衍生出对服务提供者,尤其是云服务提供者的不同变种许可,如 AGPL 等。由于限制过多、过于复杂,所以 AGPL 的接受程度有限。
开源软件的商业模式,可以分为以下几种:
1 开源没有改变软件运行的基本模式
软件的质量取决于设计、实现、测试和运行过程中暴露问题的持续修复,开源软件改变的只是开发阶段和发行形态,其他软件规律仍然是一样的。完全把技术支持工作交给使用者是不可行的,支持客户的业务运行并保证服务质量,仍然是软件业务的重要组成部分。
2 开源成为分布式协作开发模式的典范和推动者
开源软件项目的治理方式也有封闭与开放的差异,开源项目的主导权与管理权有两种常见方式。一种是项目归属于某个基金会组织,如 Apache;另外一种是由发起者或创建者为主导的管理模式,如 MySQL 和 Linux 核心等。很难用简单的方法判断哪种方式一定就是最好的,但是相对来说,由一个有信用的、有成熟制度模式的非营利组织管理,更容易受到信任和吸引更广泛的参与者。
3 开源不等于免费
自由软件选择的 Free Software 的名字往往被误解为「免费」,其实在这里 free 的含义是「自由」,开源是软件自由精神的体现。今天即便是承诺完全开源的软件,如 Linux,主要的商业化形态仍然是提供有质量保证的发行版和技术支持服务,收取许可费用不是被认可的业务形态。MySQL 是一个特例,因为它同时提供不同的软件许可,商业版软件和社区版软件本质上是两个产品,根本原因在于 MySQL 相关的所有知识产权完全属于单一商业实体。
4 以发行版的方式提供软件和在云上提供服务仍然是主流业务模式
目前绝大部分软件的使用者,都不是软件本身的开发者。依靠使用者自行解决问题和持续演进,既不必要也不现实。整体的验证测试和优化工作,保证质量和兼容性,本质上与不开源的专有软件的发布没有差异。