摘 要 近年来,开源软件已经成为我国软件产业创新发展的重要模式之一。系统分析了全球开源模式的发展趋势,分析了我国开源软件产业存在的开源断供风险、代码安全风险、知识产权风险、自主创新风险,并据此提出了推进开源自主、加强模式创新、优化发展环境的具体政策举措,以促进我国开源产业生态健康可持续发展。
“开源模式”是指依托开源社区、遵循开源协议、多方共同开发、源代码开放共享的软件开发模式,在汇聚创新要素、广纳研发人才、快速应用迭代、构建产业生态等方面具有显著的比较优势。国际咨询公司高德纳(Gartner)等机构的研究数据显示,当前99%的商业软件含有开源组件,75%则直接由开源代码组成。开源模式正成为软件产业发展的主要模式之一,并呈现以下发展趋势。
开源模式出现于20世纪90年代,早期主要由少数追求自由与共享的软件开发领军人物出于个人兴趣推动。经过30多年的发展,开源模式在快速占领市场、广聚研发人才、绑定下游应用、掌控产业生态等方面形成了巨大优势,成为国际巨头争夺软件产业生态主导权的“金钥匙”。例如,2005年谷歌公司通过收购安卓公司从而掌控了安卓手机产业生态;2010年甲骨文公司收购了开源数据库MySQL,增强了其在数据库领域的领先地位;2018年微软公司收购了全球代码托管平台Github;2018年IBM公司收购了开源软件供应商Red Hat,增强了其在服务器市场的竞争力。微软、甲骨文是典型的闭源软件公司,早期是开源软件的坚决抵制者。近年来,闭源软件龙头企业对开源软件的态度发生根本性改变,其背后的业务逻辑是通过开源快速抢占市场,形成下游应用黏连,从而掌握软件产业生态的主导权,争取更大的商业利益。
开源模式发展早期主要是模仿成熟的商业软件。近年来,软件工程体系日益复杂、技术创新迭代日益加快,开源模式“汇众智、谋创新”的比较优势日益突出,在技术创新的新赛道上,开源模式实现了由模仿创新向引领创新的重大转变。大数据分析框架、人工智能软件架构、云计算基础构件等新型基础软件均是基于开源模式研发和推广的。主流机器人操作系统(ROS)基于开源模式研发[1];谷歌通过开源人工智能平台TensorFlow快速占据了人工智能市场[2];Openstack基金会的云计算开源基础软件成为云计算产业的重要支撑[6];Apache开源基金会的分布式系统基础架构Hadoop成为应用最广泛的大数据技术框架之一[6]。
我国软件产业在21世纪初开始大规模追踪学习国外开源软件。一是从贡献角度看,我国已经成为国际开源社区的重要贡献者。Github 2020年4月的统计数据显示,我国源代码贡献度已经跃居全球第二。华为等公司在国际开源社区的贡献度较高,华为、腾讯、阿里巴巴等公司成为Linux基金会、Apache软件基金会等国际主流开源基金会的白金会员。二是从创新路径上看,我国的鸿蒙、欧拉、麒麟、统信等操作系统是基于开源的内核代码进行的二次创新[4]。以开源模式推进基础软件创新可以提高技术起点、加快研发进程、兼容业务应用、降低替代难度,是基础软件实现自主创新突破的现实可行路径。三是从自主创新上看,欧拉、鸿蒙社区已经形成技术分叉能力,open Euler操作系统内核能够做到自我维护、自我演进。总体上看,我国已经形成了基于开源模式的二次创新能力。
近年来,我国开源软件产业蓬勃发展,已经成为基础软件创新发展的重要方式之一,但是仍然存在以下几个方面的发展风险。
我国开源社区主要还以利用国外开源代码、依托国外开源社区为主,总体上仍是国际开源社区的次生社区,呈现依附性强、自主性弱的特点,存在较大的开源产业链断供风险。国际主流开源基金会、开源项目以及多数开源许可证均诞生于美国或由美国公司掌控,随时可因掌控方的需要而闭源断供[3]。从商业角度看,开源模式的发展越来越涉及巨大的商业利益和产业链安全,不再是自由共享、永远免费的“无主之地”。开源软件受政治因素影响的断供案例频繁发生。2020年8月云平台开源软件DockerEE和DockerHub受美国政策影响,禁止被列入实体清单的组织使用[5]。2021年2月,美国政府签署总统令,在开源软件领域对我国全面收紧限制措施。受商业利益驱使的断供事件也时有发生。例如,RedHat旗下的开源操作系统CentOS 8宣布将于2021年年底停止更新服务[5],对我国众多行业将造成较大影响。这些例子充分说明增强我国开源生态自主能力刻不容缓。
当前我国主流的开源社区仍不成熟,自主创新能力仍然不高。一是产业集聚不充分。国内开源社区小而散,一些企业主导的开源社区甚至呈低水平竞争的对垒之势,造成技术路线不统一、研发力量不集中等问题,难以集中力量办大事,打破国外开源技术的垄断。二是生态配套不到位。我国开源社区涉及的知识产权保护、自主开源协议、软件质量管理、代码安全检测等配套性机制不健全,开源社区治理和可持续运营能力不足。三是协作研发不高效。我国开源社区组织协同机制较为松散,缺乏开源项目管理和社区运营人才,线上协作机制、社区激励机制、利益分成机制不健全。四是前瞻引领性不突出。我国开源项目主要集中在操作系统、数据库等传统基础软件领域,在人工智能、大数据、云计算等“新赛道”上,许多企业扔奉行“拿来主义”。此外,多数企业重上层应用场景,轻底层基础创新,对相关新型基础软件的研发重视不足,只会采用国外开源软件构建新的“应用大厦”,面临“旧领域追上来,新领域又落后”的发展风险。例如,在人工智能领域,谷歌和脸书的开源免费人工智能框架TensorFlow和PyTorch已占我国85%以上的份额[7]。
开源软件并不等于无限制的自由使用,必须在遵循相关开源协议的基础上注重知识产权保护。目前国际上开源许可协议有80多种,总体上可分为宽松式(Permissive)和责任传播式(Copyleft)两种[1]。这些开源许可协议在具体开源条款上存在较大差异甚至冲突,如果不认真分析和甄别,很容易陷入许可协议条款冲突引发的知识产权风险。我国目前主导的开源许可协议仅有木兰许可协议,涉及开源软件的相关法律法规建设及法务人员队伍建设均存在明显的滞后性,一些开源软件从业人员对开源许可协议具有的法律效力以及开源代码权益的认知较为模糊,以至出现一些公司用开源代码申请专利的侵权事件。完善开源知识产权和法律体系,是中国开源软件产业生态健康可持续发展必须强化的环节。
开源代码正越来越多地应用到各行业领域,这也造成了数以千计的开源组件存在安全漏洞隐患[1][8]。WhiteSource公司2020年发布的《开源安全年度报告》显示,平均每1000行开源代码中就有14 个安全漏洞,每1400行开源代码中就有1个高危安全漏洞。开源软件传播快、应用广,开源软件之间关联依赖,使得开源软件的安全漏洞管理和控制明显难于闭源软件。一是安全漏洞传播性强。开源模式下开源软件传播快、应用广,客观上加剧了安全漏洞传播的速度和范围,造成传染性传播的局面,零日漏洞的发生率大增。二是安全漏洞防控性弱。开源模式松散的开发机制,对于开源社区的安全管控能力提出了很高的要求,也对安全防控机制和防控软件提出了很高的要求,即使采用代码安全管控软件也很难穷尽所有安全漏洞,而Openwall等开源软件安全预警平台公开发布开源软件漏洞存在2周的滞后期[5],我国企业很难第一时间采取安全防护措施。三是安全漏洞应对性差。开源模式下,软件服务产业发展不配套,技术支撑体系不健全,进一步加大了系统性应对开源软件安全漏洞风险的难度。
发展开源模式对于实现我国软件产业自立自强、夯实数字经济发展基础具有十分重要的作用,建议从以下几个方面加强我国开源软件产业安全发展。
将开源模式作为实现基础软件自立自强的基本路径,统筹引导软件研发资源协同创新。一是坚持开源自主。坚定不移地加快培育我国开源社区、开源基金会、开源协议和开源项目,从源头构建国家基础软件的安全底座。二是形成政策合力。加强开源软件相关科技政策、产业政策、教育政策、知识产权政策及安可替代等工作的协同衔接,形成政策合力,推进开源软件发展。三是加强新赛道布局。大力引导产业资本在人工智能、大数据、云计算等领域的新型基础软件的开源创新,引导构建新赛道开源生态,牢牢把握未来发展主动权。
充分发挥我国新型举国体制的优势,克服传统开源社区组织松散的问题,形成高效的开源社区组织形式,提高开源社区协同效率。一是统一根技术路线。科学论证确定基础软件创新迭代的根技术路线,建立中国原生的统一的开源根社区,采用统一根技术路线开展可持续性聚焦创新。二是构建开源公共服务平台。加强开源基础设施投入,建设集约化的开源社区公共服务平台,提供开源知识图谱、源代码托管、供应链管理、源代码安全评测、开源标准等功能,形成全生命周期的公共服务能力。三是实施开源激励计划。开源具有巨大的公益创新属性,探索建立以财政资金鼓励开源社区突出贡献者的新模式,建立健全重大基础软件专项工作依托开源社区揭榜挂帅的创新机制,提高开源社区的发展动力。
一是加强开源教育。高校学生是开源软件开发者的重要来源,建议将开源软件相关知识纳入计算机相关学科建设内容,构建形成开源知识体系和文化,为我国开源软件产业培养高水平的开源软件人才。二是加强法律法规建设。针对开源软件知识产权保护的特殊性,研究制定与开源软件产业发展相配套的法律法规,深入分析国际主流开源许可协议条款,培育专门法律人才,保护我国开源产业参与国际开源产业生态过程中的合法权益。三是加强国际合作。加强同国际开源组织的创新合作,推进国内开源社区和开源基金会同国际主流开源社区和开源基金会的高水平对等合作,提升我国在国际开源产业生态中的影响力,引导开源组织切实保持科技中立,联合国际开源组织和业内友好人士共同抵制政治因素对开源国际合作的不当影响。
开源软件正在成为基础软件创新的主要模式之一。我国应该把握开源软件发展趋势,聚焦开源软件产业发展面临的突出短板,加强顶层设计和统筹规划,研究制定开源创新战略,实现开源自主、协同创新、开放合作的有机衔接,探索一条符合我国发展实际的基础软件自立自强之路,夯实我国数字经济的发展基础。
(作者:王晓冬,国家信息中心公共技术服务部;刊发于《信息安全研究》2021年第10期)