破解“中国开源拿来主义”的几点分析 | 包云岗

提升思维层次
导读
规范很重要,但更重要的是如何将规范转变为代码、系统和产品,这才能形成核心技术竞争力。
以下视频是2011-2019期间全世界开源代码贡献最多的城市排名:旧金山一骑绝尘,其他主要是美欧城市;亚洲有东京、首尔上榜;莫斯科也贡献突出。但是,很遗憾没有中国城市。客观地说,中国在开源方面还比较落后,那该如何应对?

有人建议不要使用来自美国的开源技术。类似的建议出发点是好的,但却落入了马克思所批判的“倒洗澡水连孩子也倒掉”思维方式。
对于中国在开源方面的“拿来主义”,只有搞清楚问题在哪里,才能对症下药。这需要我们辩证地去分析“中国开源拿来主义”背后的原因。

一、为什么美国的开源技术那么有吸引力?

事实上,开源技术对企业来说存在很大的吸引力,背后有其经济学原理——诺贝尔经济学奖科斯的交易成本(Transaction Cost)理论。根据该理论,每一笔交易都有成本。对于一个企业来讲,如果在技术都能完成相同功能的情况下,肯定交易成本越低的技术,会得到青睐。 开源极大地降低了交易成本,所以必然会受到市场的青睐。例如,根据阿里云前副总裁章文嵩的数据,阿里使用开源技术来实现“去IOE”,成本只需要原来的1/140。因此,一旦存在高质量的开源技术,必然会得到企业的关注和应用。
事实上,开源技术也存在竞争,也需要大量投入。人们经常责怪中国都是“拿来主义”,核心原因在于还未意识到要去占领开源市场。如果不投入参与竞争,怎么能推出有竞争力的开源技术?
美国企业对开源技术的投入非常重视。很多人都知道谷歌有多个有影响力的开源项目,比如TensorFlow。但可能很多人想不到在Github上参与开源项目人数最多的公司其实是微软。2018年的一个统计显示,微软有4550名员工参与开源项目,全世界排第一;而谷歌2267名员工排第二,红帽子2023名员工排第三。
所以,要想做到“不要使用来自美国的开源技术”,不能靠堵,更需要的是引导——引导中国企业、学术界加大对开源的投入,形成一批中国发起的有影响力的开源项目。只有中国在开源领域有国际竞争力了,才能与美国的开源技术抗衡。
二、任何来自美国的“免费开源”的东西都不能用?
这也是“一刀切”的思维方式,片面而机械。这里稍作解释:
开源主要有两种模式,一种是非营利组织主导,如Linux基金会、Apache基金会、RISC-V基金会等,商业应用一般需加入基金会,缴纳会员费。另一种是企业主导,谷歌 (Andriod, Chromium, TensorFlow)、RedisLab (Redis)、Wave Computing (MIPS)等,商业应用需与主导企业签署协议。
例如全世界广泛使用的谷歌TensorFlow便属于第二种模式,是由企业主导。但是谷歌控制着TensorFlow的开发,只单向开源代码,很少接受社区反馈,很难开展支持社区协作开发,开源项目管理较为封闭不开放。这其实不是真正的开源,本质上是通过开源形成技术垄断。用小米副总@崔宝秋-小米 的话说,这属于“开源寡头”。
前段时间龙芯放弃的MIPS指令集,曾经也宣布要开源其R6版本的指令集,这其实也是属于公司主导。随着Wave Computing破产,其开源计划也不了了之。
相比而言,由基金会等非盈利机构主导的开源计划、开源项目则更开放,更有生命力。比如Linux已经开源了近30年,依然蓬勃发展,全世界1400多家企业、15000多位开发者一起为Linux贡献。这是真正的开源——代码开源、流程开放、管理开放,通过贡献度来决定话语权。这样的开源项目中国为什么要拒绝?
我想中国不仅不应该拒绝,而是应该更多的投入,争取更多的话语权。事实上,华为便认识到了,在Linux上投入非常大,在Linux Kernel 5.10中华为的Patch贡献量已经排到全世界第二,仅次于Intel。

三、有些开源项目受到美国军方DARPA资助,还能用吗?

这个问题其实去年就有人在网上提出类似的质疑。我也做过回应。以最近大家比较关注的RISC-V为例,DARPA发言人的观点是“DARPA打算将其资助的RISC-V工作公开提供给世界各地的公司和学者(the agency intended for RISC-V work it funded to be publicly available to companies and academics around the world)”。
DARPA的这个立场有历史背书。过去几十年,在DAPRA资助下研制的BSD Unix、TCP/IP协议栈等一系列技术对人类社会进步起到了巨大的推动作用。FreeBSD是早期开源软件的杰出代表,TCP/IP协议更是开放标准的典范,构建起今天连接几十亿人的Internet。它们虽然都是DARPA支持,但是世界各地都可以使用。中国基于TCP/IP协议构建网络,这并没有受到美国的出口管制;中国企业基于TCP/IP研制的交换机与路由器,也并不受到美国的出口管制。
还是以RISC-V为例,指令集规范(Specification)和处理器实现(Implementation)是两个不同层次的概念,要区分开。指令集(ISA)是规范标准,往往用一本书或几张纸来记录描述,而处理器实现是基于指令集规范完成的源代码。
RISC-V是一个指令集规范。“RISC-V是开源的”表示指令集规范是开源、开放和免费的(open and free),这与x86与ARM指令集有本质不同,但并不是指具体的处理器实现也都是开源免费的。(关于RISC-V规范与处理器实现的区别,这里有专门的解读:关于RISC-V和开源处理器的一些解读 - 中国开放指令生态(RISC-V)联盟 )
因此,一个开源技术受到DARPA资助,不应该成为我们拒绝和抵制的理由,就如中国并没有因为TCP/IP协议是DARPA资助而拒绝。事实上,RISC-V和TCP/IP一样,本质上都是规范。规范很重要,但更重要的是如何将规范转变为代码、系统和产品,这才能形成核心技术竞争力。
背景简介文本文作者包云岗,中国科学院计算技术研究所研究员、先进计算机系统研究中心主任,中国科学院大学岗位教授,中国开放指令生态(RISC-V)联盟秘书长。主要研究领域为开源处理器与敏捷设计、数据中心体系结构等,主持研制多款达到国际先进水平的系统,相关技术已在华为、阿里、Intel等国内外企业应用。曾获“CCF-Intel青年学者”奖,ARM2018全球研究峰会45分钟特邀大会报告、中科院青年创新促进会优秀会员,获“CCF-IEEE CS”青年科学家奖、共青团中央“全国向上向善好青年”荣誉称号。
(0)

相关推荐