X-lab2017 / oss101-bok

https://www.x-lab.info/oss101-bok/
2 stars 4 forks source link

开源生态 #18

Open will-ww opened 1 month ago

will-ww commented 1 month ago

开源生态是一个汇聚多方资源的技术创新生态圈,开源产品的发展离不开社区的文化氛围和协同创造力。现阶段,国家已将开源生态建设纳入顶层设计。“十四五”规划明确提出要把“繁荣国内开源生态”作为工作任务,设置“开源生态培育”为专项行动。鼓励发布开源的根项目,充分发挥中国市场和高端软件人才的优势,积极引导市场主体和开源开发者拥抱开源软件,让更多优质开源项目在中国诞生,并走向世界,从而构建良好的开源软件生态。“开源生态”是“开源”和“生态系统”的组合词因此本节将从生态系统理论出发,对开源生态的定义与特征展开介绍,并列举了国内外有代表性的开源生态实践案例。

生态系统

生态系统(ecosystem)是由生物群落及其赖以生存的自然环境共同组成的动态平衡系统,是自然界的主要结构和功能单位,同时也是生态学研究的重要理论命题。1935年,英国生态学家亚瑟·乔治·坦斯利爵士首次明确提出“生态系统”的概念,认为“不能将生物及其所处环境割裂开来看,各类有机生物体与环境等无机要素及二者间的复杂关系结构共同构成了一个自然系统,这就是生态系统”。随着自然界及生态学领域的不断探索,与生态系统有关的研究也随之展开,但由于研究者在学科背景、学术脉络及研究对象、研究视域等方面的不同,其对生态系统概念的界定也有所不同。赵树宽等(2008)通过梳理相关文献,对生态系统定义进行高度总结概括,指出生态系统是指在一定时间和地理空间范围内,生物群落与其周边环境组成的具有一定大小和特定结构的功能复合体。

在自然生态系统中,生态位这一概念十分重要。根据百度百科的定义,生态位是指一个种群在生态系统中,在时间空间上所占据的位置及其与相关种群之间的功能关系与作用,它表示生态系统中每种生物生存所必需的生境最小阈值。在自然环境里,每一个特定位置都有不同种类的生物,其活动以及与其他生物的关系取决于它的特殊结构、生理和行为,故具有自己的独特生态位。另外,生物群落中多个物种取食相同食物的行为时有发生,这一现象被称为生态位重看,与物种间的竞争密不可分。

经过长期的演化和适应,生态系统能够形成一定的自我调节能力,维持和恢复自身结构和功能相对稳定。此外,生态系统中生物复杂多样,生物间竞争与协同并存。生态系统这些特性也因此被社会学和经济学领域相关学者加以借鉴,衍生出社会生态系统和商业生态系统、创新生态系统等一系列研究内容。其中,与本书联系密切的创新生态系统是指多种创新主体围绕科学技术创新而进行创新要素供给和交换组成创新群落,创新群落之间以及与环境之间通过物质流、能量流和信息流的联结传导,形成共生竞合和动态演化的开放复杂系统。

开源生态

随着开源软件推广使用、开源项目稳步增长及开源社区多态发展,开源生态作为集开源主体、开源项目、基础设施和政策环境等交互统一的有机整体,得到了实务界和理论界的广泛关注。然而,当前国内外专家学者对开源生态的研究主要还停留在技术层面,专门研究开源生态内涵、特征及要素的理论成果较少,对开源生态定义也尚未给出一致认可的界定,本章节将重点讨论开源生态的内涵,以期为开源创新相关理论研究提供借鉴。

开源形态最早出现于20世纪60年代,软件代码及附属硬件产品以开源的形式分发。开源使得软件开发突破了时间与空间的界限,来自世界各地的开发者在遵守许可限制的条件下均可自由地发布、获取、修改、使用和分发源代码,并根据自身需求选择性地参与到开源项目中,极大程度上促进了开源项目成熟完善。同时,开源发展过程中形成了有组织的开源社区为开发者和用户提供交流平台,其也具备开源资讯、代码托管及软件下载等功能,开源组织则旨在为开源项目提供资金、技术、市场等全方位支持,为社区的建设和运营提供指导。

开源创新源于开源软件,并以开源项目为核心,因此在早期研究中开源生态总是紧紧围绕技术层面的开源软件和项目展开。梅塞施密特和西佩斯基(Messerschmitt and Szyperski,2003)首次提出开源生态的概念,并将其定义为“一组有着相同共生关系的软件项目集合”。博斯特等(Borst et al.,2015)对开源生态的定义与之相似,认为开源生态是“一组在相同环境下开发和演化的软件项目的集合”。詹森等(Jason et al.2010)提出“开源生态是一组软件、服务以及它们之间的关系,这种关系是在相同的技术平台下以信息、资源或制品的交换为媒介建立起来的”综合已有研究,开源软件生态系统主要由开发者、用户、开源项目和技术平台组成,它以一组存在相互关系的开发者作为一个单元,通过与共享软件和服务的市场进行无障碍的交互,如为项目贡献代码、创建和发布组件等,实现同样环境下对所有人免费可用的开源软件的集合(金芝等2016)。随着开源生态的早期发展,开源软件生态系统的内涵和边界都发生了变化,开源软件生态系统的概念不仅局限在相同开源软件平台或服务的集合,而是涵盖了所有开源软件生态系统形成与生长过程中的软件开发、分享、应用、维护等重要信息的不同维的数据实体(Vasilescu et al.2016);开源软件生态系统的范围也不再局限于单一的开源软件社区,而是涵盖了软件协同开发社区和软件知识分享社区,例如,软件协同开发社区中的软件开发过程制品(缺陷报告、用户评论)和软件资源(源代码文档)、软件知识分享社区中的软件描述、社会化标签、问帖子等。

软件服务的最优结果是构建起生态圈,开源发展进程中出现的开源社区天然地形成一个生态链接平台,汇聚各环节参与者。事实上,随着全球开源生态逐步趋于成熟,开源生态的内涵已经不再局限于单纯的开源软件或项目集合,还包括开源文化、开源教育、开源企业和开源商业模式等内容。作为一个汇聚多方资源的技术创新生态圈,开源生态中各类创新主体彼此依存、相互影响、共同发展,建立起有序、畅通、能有效发挥各主体功能作用的运行机制,形成了类似自然生态系统的完整循环体系。鲁蔓等(2022)认为开源生态“依托代码托管平台等基础设施构建,以开源项目为中心,涉及开源贡献者、使用者、运营者以及服务者等多重角色。”②中国信通院发布的《开源生态白皮书(2020年)》中提到,开源生态以开源项目为中心构建,依托开源社区协作形成软件硬件等开源项目,涉及开源贡献者、开源使用者、开源运营者、开源服务者多重角色,包含开源治理、开源运营、开源商业布局等多个环节,需要满足开源规则要求,依赖代码托管平台等基础设施构建。何宝宏(2020)则认为,开源生态包括五个必备要素,分别是开源项目贡献者和使用者(人)、开源代码托管平台和开源组成分析工具等(机)、源代码(料)、开源许可证和社区管理办法等开源生态规则(法)、开源社区(环)④。本书认为,开源生态以开源项目为核心,以开源规则和基础设施等外部环境为基石,内含发起人、开发者、开源社区和开源组织四大主体,重点关注商业布局、社区运营和风险治理三大领域,通过分布式协作进行知识交互,实现低成本、高效率的资源共享、多方共赢、全民共创。

开源生态特征

开源生态作为一个多主体参与、功能完善的创新生态系统,其低成本、高效率的运行基础是其独有的系列特征,主要有以下四个方面。

(1)开源项目所有权中立化。“为他人作嫁衣”的忧虑是妨碍商业企业参与开源的原因之一(何婷和徐峰,2022)。基于当前“不经济”社会的时代背景,产生了一种产权的革命性变革,资源使用权取代所有权成为权利金字塔的顶端,而所有权、支配权、收益权、处置权处于下层(沈秋彤,2016)。开源基金会是开源生态的重要组成部分在推动开源中立发展中发挥重大作用。开源基金会作为第三方机构,负责开源社区的运营与开源项目的管理,开源基金会通过与贡献者签订会员协议、转让协议、许可协议或根据开源许可证等方式,获得项目的所有权从而在开源生态中,实现开源项目所有权的中立,有助于促进各利益主体之间的合作。这主要体现在以下两个方面:一方面,开源基金会属于非营利性的开源组织,他们拥有开源项目的商标权,以及与代码相关知识产权的授权,在开源生态中处于中立位置,与参与企业并不存在商业利益冲突。另一方面,开源基金会具有法人资格,不仅可以保护社区成员免于承担与基金会相关的责任,还可以保护未参加特定活动的成员免受其他成员行为的影响(例如,将侵权软件引人基金会拥有的软件),因此可以降低社区成员的责任风险,提高参与者的积极性。

(2)开源社区治理专业化。开源生态的核心是开源社区的运营与管理,开源社区可以汇聚各环节参与者,形成一个生态链接平台,持续赋能开源产品的技术创新,为开源产品落地实践提供丰富的应用场景,同时为产业的商业化拓展提供稳固的保障,进而推动软件产业高质量发展,并逐渐形成开源生态。然而,无规矩不成方圆,自组织模式虽是开源社区的突出特点,但为了保证开源社区发展的有序性与持续性,亟须依托专业化的服务机构进行培育,严格按照一定的治理机制来管理开源涉及的各项事务。在开源生态中,由于开源社区具有与生俱来的松散性特点,而且商业公司表现出趋于中心化的特征,二者之间的关系需要进行平衡。目前,参照国外的实践经验,解决办法主要是引人专业化的开源组织进行社区治理。在治理过程中,开源组织主要发挥支持性作用,统揽全局、把控方向,从事人员培训等工作,并不会直接参与项目开发等技术性事务。开源组织的介人规范了开源社区的发展行为,为其从事技术创新营造了良好的生态环境。

(3)顶尖企业引领壮大化。有研究表明,一个成功的开源社区需要-个可信的领导,并且需要一个组织保持其发展(闫俊周,2016)。领军企业对于扩大开源队伍、壮大开源力量、建设开源社区具有重大意义,这主要体现在以下两个方面:一方面,顶尖企业具有强大的技术能力、资金实力和行业影响力,不仅有能力主导开源项目的顺利开展,还可以吸引更多的开发者对其聚焦的开源项目予以关注,提高其参与积极性;另一方面顶尖企业基于其竞争优势,对于构建自主的商业生态体系有着迫切需要有强烈的意愿与充分的动机进行底层技术的创新。因而,顶尖企业在开源生态的建设中发挥着关键引领作用。例如,当下最受欢迎的人工智能开源项目主要来源于谷歌、Meta、亚马逊、微软等科技巨头:Limux人工智能专项基金会已孵化完成的人工智能开源项目均来自于Uber、IBM、微软、腾讯等大型科技企业;而且,百度、腾讯等中国大型科技企业以及商汤科技、旷视科技等领军企业也开始纷纷推出自研的人工智能开源项目。

(4)开源产品商业化。开源并不等同于免费,企业参与开源与商业化经营并不冲突。商业化带来的市场回报对潜在开源参与者形成了一种天然的外部激励(王宇,2013)①。梅宏指出,开源软件的商业模式从早期的理想主义发展到今天的多元化商业模式经历了漫长的过程。从最早的支持服务,到后来的托管、限制性许可,到现在的开放核心、开放核心加混合许可等,这些不同的商业模式让开源得以在保持大众创新活力的同时,建立了一个可以自循环、自反馈的发展机制②。企业实施软件开源战略主要通过直接商业化、渠道化、产业级影响谋取商业利益。企业时刻围绕客户需求,采用开源方式推动技术创新,为客户提供满意产品与配套服务,同时发挥产业协同作用,拓展企业的盈利空间,提高企业的市场影响力。

开源生态的实例

自开源首次被写入国家“十四五”规划纲要后,中国开源主体积极布局开源生态,行业开源生态兴起。中国的开源生态由飞腾芯片和麒麟操作系统构成的、面向信创的PK生态③;高性能的鲲鹏芯片和OpenEuler 操作系统构建的欧拉生态;由麒麟手机芯片和鸿蒙操作系统构成的面向移动终端的鸿蒙生态;构筑超级计算平台的昇腾芯片;通过智能终端+家居智能电器,形成的人工智能服务的小米生态;城市大脑和Rocket MQ_x0002_0-cean Base组成的阿里生态;飞浆和阿波罗自动驾驶生态构建的百度生态悟道、大炼模型和炼大模型构建的智源生态;鹏城云脑和盘古 NLP大数据模型构建的鹏城生态等。

开源生态的组成

从产业主体的角度看,开源软件产业市场上的主体包括软件的发起人(个人/企业)、二次开发者和使用者等、开源基金会、开源社区(包括代码托管平台、软件论坛、行业联盟)①。从生态系统的角度看,一个完整生态体系中的有机成分需包括生产者、消费者和分解者三大部分,生产者提供物质、输入能量,消费者产生需求、促进物质循环,分解者分解有机物、维持生态系统运作。在开源创新生态系统中,发起人在开源社区或开源基金会中发起开源项目,这意味着将软件源代码无偿在社区发布,此后二次开发者和使用者作为贡献方进行技术、思想、创意等迭代,并在开源许可证的约束下使用迭代版本,其他组织提供法律、行业发展等服务和指导,不同角色间互相配合,有效协作,达成技术交流或商业目的。

由开源生态的组成,引出四个重要的概念: