- 企业开源实践之旅:基于红帽客户的开源建设实践案例
- 刘翔 任卫海等编著
- 9字
- 2025-02-21 15:44:22
1.3 认识企业开源软件
1.3.1 开源软件存在的基础
开源软件的发展经历了多个阶段,从最初“自由软件”的源代码分享到开源软件的源代码共建,再到当前的开源生态建设。开源软件从一个个独立发展的软件应用,到相互依赖、门类齐全的软件项目家族,在云计算、容器、大数据、区块链、人工智能等很多领域已经可以完全使用开源软件构建出整个应用环境,这样的领域正在变得越来越广泛。开源软件也形成了一定的发展模式,开源软件的发展呈现出有组织、体系化、定向化的特点。大多数广泛使用的开源软件都不是孤立的个体,它们多数依托于某一个基金会或者社区。
开源的发展离不开开源基金会,在1985年自由软件基金会创立之后,全球各类开源基金会快速发展壮大,据不完全统计,各类开源基金会已经超过100家,其中具有代表性的有Apache软件基金会(1999年成立)、Mozilla基金会(2003年成立)、Linux基金会(2007年成立)、云原生计算基金会(2015年成立)、开放原子开源基金会(2020年成立)等。开源基金会是开源生态中的重要部分。对于非营利性且处于中立位置的开源基金会来说,它们拥有开源项目的知识产权,而且没有任何商业目的,这为贡献者、开发者、用户提供了良好的协作平台;基金会也会通过技术服务和项目孵化来帮助开发者和开源企业;基金会还会提供项目日常的运营和治理,以满足在项目生命周期不同阶段对于管理项目的需求。有关开源基金会的具体职能,可以参考适兕所著《开源之谜》一书的第6章。
开源社区是推动开源软件发展的最直接组织,基本上分为两种类型,即项目型社区和用户型社区。像我们熟知的Linux Kernel、Kubernetes、Google Source、MySQL和Fedora,以及国内的OpenHarmony、深度、Kylin、OceanBase、RocketMQ,既有由单一机构维护开发的社区,也有开放式维护的社区,它们的工作内容是开发新的软件,属于项目型社区。另一类社区是用户型社区,工作内容是更好地运用和推广开源软件,国外有FOSSASIA、Open Forum Europe,国内有51CTO、OSChina、LinuxFans、Python中国等。项目型社区多数会依托于某一基金会或某一公司,用户型社区的存在形式相对多种多样,甚至由一些开源软件的追随者共同来维护和运转。
有了社区的组织者和推动者,开源软件仍然需要一个开放的载体来存放代码,这就是代码托管平台,以提供全球范围内的协同开发。一般来说,每个开源项目只会选择一个代码托管平台作为开发库,这样的平台有GitHub、Gitee、GitLab、SourceForge,很多云厂商都提供代码托管平台,但是从开源软件的传播性和可获取性来说,头部的存储库已经积累了大量开源项目。以GitHub为例,截至2023年1月,GitHub有3.7亿个存储库,其中公共存储库有2800万个,你可以很方便地检索任何一个公共存储库,并了解更新状况、关注度等。
GitHub作为全球最大的存储库,注册的开发者人数已经超过1亿,在2021年有超过250万新人加入了GitHub,这些人中将诞生大量的开源使用者和贡献者。