查看原文
其他

国产软件创新的“新基建”,将是一条没有硝烟的新战线

深圳宁南山 宁南山 2022-12-12


2018年第二次中兴事件爆发(第一次是在2016年),中国国内发现美国可以通过芯片断供的方式牢牢地掌控中国公司的命运,芯片断供之后竟然能让体量达千亿人民币的中国公司运行出现“休克”。
而美国更进一步,在2019年5月开始把华为列入实体清单,自此之后对华为进行了一轮又一轮的制裁,到2020年9月甚至把各大芯片代工厂为华为制造芯片的大门也强制关闭了。

由于美国对中国的断供打击是以芯片为中心,因此我们的注意力一直集中在芯片上。但实际上我们多少有些忽略,那就是美国对华为的制裁其实从一开始就是把软件包括在内的,用于设计芯片的EDA工具软件,美国的三大EDA公司都在2019年5月实体清单之后就停止了和华为合作,不过幸而华为已经购买了授权,因此还能继续使用设计芯片,不过在美国2020年5月颁布的禁令中,就明确的要求全球各大芯片制造厂禁止为华为生产用美国软件设计出来的芯片,原文是这样的:
Specifically, this targeted rule changewill make the following foreign-produced items subject to the Export Administration Regulations (EAR):
(i) Items, suchas semiconductor designs, when produced by Huawei and its affiliates onthe Entity List (e.g., HiSilicon), that are the direct product of certain U.S. Commerce Control List (CCL) software and technology; and
(ii) Items,such as chipsets, when produced from the design specifications of Huaweior an affiliate on the Entity List (e.g., HiSilicon), that are the direct product of certain CCL semiconductor manufacturing equipment located outside the United States.
具体而言,此有针对性的规则更改将使以下外国生产的物品受出口管理条例(EAR)的约束:
(i)华为及其在实体清单上的关联公司(例如,海思半导体)利用美国商务控制清单(Commerce control list CCL)上的软件和技术产出的例如半导体设计这样的商品,
(ii)根据华为或实体名单上的关联公司(例如,海思半导体)的设计规范,在位于美国以外的地方利用CCL清单上的半导体制造设备生产的芯片组。

换句话说,即使台积电,中芯国际这样的代工厂在生产设备上实现了去美国化,但如果华为交给它们生产的芯片是用美国软件设计的,以及它们的产线还用着美国的软件,则依然不能为华为生产芯片。

不只是EDA这样的工具软件,实际上所有的美国软件都在2019年5月之后就对华为断供了,包括操作系统,数据库,中间件等等,华为的手机也不能运行谷歌的GMS Core,继而谷歌地图等应用无法运行。这导致虽然华为已经开发出了鸿蒙智能手机并且上市,但却无法在国外大规模销售。


华为并不是2019年以来唯一被制裁的中国知名公司和机构,实际上三年多来被新列入实体清单的中国企业已经超过600家,除了华为之外,还包括大疆,海康,大华,商汤,科大讯飞,中芯国际,中航工业等公司。而我国的高校,除了北航和西工大早就被列入实体清单之外,2019年以来国防七子高校的另外五所,包括哈工大,北京理工大学,哈工程,南京理工等,也全部被列入了实体清单。


2020年6月10日,美国软件公司Mathwork开始禁止向哈尔滨工业大学、哈尔滨工程大学提供技术以及客户支持服务。而在此之前数日,两校的师生就发现已经无法使用该公司的MATLAB商业数学以及科学计算仿真软件,后又被告知不能在公开发表的论文中出现任何使用MATLAB得到的图表与数据。这意味着,两校师生的课件、习题、项目的代码都要开展大规模“转码”,改成其他替代品。


2022年3月13日,中国无人机领域的顶尖企业大疆公司遭美国设计软件公司Figma封禁账号,要求用户不能再访问其在Figma上的数据,Figma将会在两周内将用户设计文件以邮件形式发送给用户。Figma是UI设计领域的新一代王者,目前已经被美国Adobe公司斥资约200亿美元收购。对于被禁用Figma的设计师和企业来说,他们的应对方法只能是换一个设计工具,这就造成了很大的工作量和成本。


不仅如此,不只是各种软件应用自身,更底层的用来开发软件应用的软件开发工具仍然大部分是美国公司控制的,这就是意味着即使中国的软件开发者想开发出一款国产的工业软件摆脱对美国的依赖,但如果使用的软件开发工具是美国的,则依然无法逃脱美国的制裁范围。

这就跟光刻机为代表的生产设备对芯片制造的影响类似的,即使中国研发出了国产的芯片,但上游用来生产芯片的光刻机被卡了脖子,那么国产芯片还是生产不出来。


什么是软件开发工具?---这可以说是基础软件中最关键的部分了,基础软件还包括操作系统,数据库等等。
软件开发工具就是帮助人们开发软件的工具,可提高软件开发的质量和效率,从软件问题定义、需求分析、总体设计、详细设计、测试、编码,到文档的生成及软件工具管理各方面,对软件开发者提供各种不同程度的帮助。

软件开发工具的功能是在软件开发过程中提供支持或帮助。软件开发工具种类有多种,分别提供各种开发流程中的关键功能。例如,
项目管理功能可以为开发团队提供简单高效的开发协作服务,包含多项目管理、需求管理、缺陷跟踪、文档管理、看板、报表统计分析等功能,可以使得对于软件开发团队的管理更加简单,每个人的进度一目了然,而不是天天开会要统计数据。
集成开发环境是开发人员开发创作的主要作业界面,包括代码编辑器在内的编辑器,代码生成器,运行环境和调试器。

代码托管工具软件可以提供在线代码托管服务,这是一个具备安全管控、成员/权限管理、分支保护/合并、在线编辑、统计服务等功能的云端代码仓库,旨在解决软件开发者在跨地域协同、多分支并发、代码版本管理、安全性等方面的问题。现代大型的软件应用动辄代码几百万行甚至上千万行,这些代码是由几十人几百人的团队合作完成,这些团队往往还分散在不同的地方,每个人每个团队的代码进度还不一样,因此代码的管理非常重要,不可能每个人写的代码都存放在自己的电脑里,那样是无法实现协同的。

还有代码检查和编译,可以快速的对海量的代码进行质量和缺陷检查,并且提供修复建议,这样可以极大的提高代码检查效率,以及提供编译构建功能,可以将软件的源代码编译成目标文件,供开发者调用。
另外还有部署,测试,发布等功能,像自动化软件测试工具可以替代一些人工输入,使软件的一些简单问题直观的显示,让测试人员更好的找出软件错误的所在。

而软件开发工具这个领域的主导公司,实际上也和操作系统,数据库,中间件等领域一样,被欧美公司主导着。根据The Express Wire在2022年6月公布的Software Development Tools Market Analysis 2022 With Top Leaders(2022年软件开发工具市场分析报告),全球软件开发工具市场在2022年为50.992亿美元,而该报告预计到2028年将会增长到114.9亿美元,复合年均增长率为14.5%.
"The global Software Development Tools market size is estimated to be worth USD 5099.2 million in 2022 and is forecast to a readjusted size of USD 11490 million by 2028 with a CAGR of 14.5% during the review period.

而值得注意的是,全球前十大软件开发工具厂家大多是美国的,要么就是其盟国的,这些国家会坚决的执行美国的制裁令。
这里面美国的微软就是全球最大的软件开发工具厂家,第二位的JetBrains是捷克的,第三位的Perforce也是美国的,第四名的Atlassian是澳大利亚的,第五名的Adobe也是美国的,这五家公司就占了全球份额的45%。第六名的Oracle,第七名的Synopsys,第八名的Axure software solution也仍然是美国公司。
其中许多公司虽然并不为公众所熟知,但却是产业内影响力的“隐形冠军”。如果中国的应用软件都用美国的软件开发工具开发,则意味着无法彻底摆脱美国的制裁风险。在这几年的竞争形势大背景下,中国的高科技公司和大型企业不应该抱有侥幸心理和幻想,毕竟是否制裁的决定权在美国手里。

更值得注意的是,美国的科技公司对软件开发平台的研发具备很长的历史,具有深厚的积累,早在1968 年,北约(北大西洋公约组织)的计算机科学家在联邦德国召开国际会议,就已经正式提出“软件工程”一词,其背景是是六十年代以来软件开发急剧增长。高级语言开始出现,操作系统的发展引起了计算机应用方式的变化,原有的软件开发方式已经逐渐不适应发展的需求。如此长时间的技术积累,这不仅是意味着实现国产化替代的难度,也意味着国产化替代更是应该尽早地开始。

以微软为例,国外科技网站有人总结了其软件开发工具的发布历史,从1975年开始比尔盖茨和保罗阿伦就已经为微机Altair 8800写了一个版本的Basic语言程序,下图是1975年1月的《大众电子》杂志,比尔盖茨正是看到了这一期的封面,于是决定为其开发一个Basic语言程序。1975 – Bill Gates and Paul Allen write a version of Basic for Altair 8800 
后面的微软软件开发工具历史如下(略有删节)
1982 – IBM releases BASCOM 1.0 (developed by Microsoft)
1983 – Microsoft Basic Compiler System v5.35 for MS-DOS release
1984 - Microsoft Basic Compiler System v5.36 release
1985 – Microsoft QuickBASIC 1.0
1987 – Microsoft BASIC 6.0
1989 – Microsoft BASIC Professional Development System 7.0
1991 – Microsoft Visual Basic released May 20-Windows World Convention –Atlanta
1992 – Microsoft Visual Basic 2.0
1995 – Microsoft Visual Basic 4.0 released, supported the new Windows 95
1998 – Microsoft Visual Studio 6.0 that included Visual Basic 6.0 released (first VS)
2002 – Microsoft Visual Basic .NET 7.0
2002 – Visual Studio .NET
2003 – Microsoft Visual Studio w/Intellisense
2004 – Announce Visual Studios 2005 – Code name Whidbey
2005 – Visual Studio 2005 release w/Extensibility
2005 – Visual Studio Express released
2006 - Expression Tool Set released - devs and designers work together
2006 – Visual Studio Team release – November 30th
2007 – Visual Studio 2008 (code name Orcas) ships November = Video Studio Shell
2010 - Visual Studios (code name Rosario)
............
以上可看出光是微软的商用软件开发工具就已经有四五十年的发展历史,这也说明了我国在这方面追赶的急迫性。

如果我国的软件技术根基仍然是被美国公司掌控的,则具备巨大的风险:
第一是作为软件开发的入口IDE软件(软件集成开发环境)已被国外多家软件巨头垄断。如Visual Studio(美国微软旗下)、Jetbrains(捷克)等。目前Google可能收购Jetbrains(市场占有率第二),整个IDE市场格局将进一步被美国垄断。
而且更进一步,IDE是软件开发生态的入口,广大开发者基于国外IDE底层,则必然选择相应厂商的生态技术。例如,开发者基于微软生态的Visual Studio等软件开发工具,将大量选择推广.net语言,将开发代码贡献至GitHub,并持续开发技术插件,由此形成微软大量应用软件,进一步加强市场垄断。目前,微软有9000万的开发者,为微软生产了3800万的应用。在这一生态环境下,国内软件生态发展将愈发困难。而IDE技术一旦受制裁限制,将导致大量企业应用开发迭代受到严重停滞。

第二,国外代码托管平台的数据风险。
目前软件开发已越来越多采用云上开发模式。在敏感与核心的软件中,如使用美国服务器与相关平台(GitHub、GitLab)等,开发代码则需传递到美国公司的服务器,数据生产、存储、传输、访问、使用、销毁等过程是否安全并无法确认。而类似GitHub等开源平台,不仅有开源共享代码,也承载着大量中小企业、个人开发者的代码托管“私仓”。在美国的控制之下,开发者团队和个人无法确认数据处理过程的保密性、完整性等,美国实际上具备查看和利用相关敏感数据的能力。

事实上这一顾虑在GitHub推出智能辅助编码工具Copilot后已变成现实,这一工具使用包括来自GitHub在内的上亿行用户代码进行训练,以此推出编码模型,用于辅助开发人员编码时进行代码推荐,此行为遭到了有的开源代码作者提起法律起诉。

这背后的本质逻辑,是开发者自己的代码数据,被商业公司拿去商业变现,但是这收益和开发者无关,甚至未取得授权,而对于中国的开发者来说,这背后体现的问题就更为严重了,这意味着中国的代码在某种意义上对美国人是透明的。
作为全球最大的代码托管平台GitHub,这是一家美国公司,其CEO Thomas Dohmke在今年3月2日公开发表了对俄罗斯制裁的回应:

在此文中,CEO明确的说会遵守政府关于出口管制和贸易法规。这包括实施严格的新出口管制,旨在严格限制俄罗斯获取维持其侵略性军事能力所需的技术和物项
At the same time, we are taking action to support our platform and comply with the many government mandates you’ve likely read about in the context of this war. Our legal team examines such mandates thoroughly, and we are complying with export controls and trade regulations as they evolve. This includes implementing stringent new export controls that are aimed at severely restricting Russia’s access to technologies and other items it needs to sustain its aggressive military capabilities. Additionally, any government takedown notices we process are publicly posted because we believe that transparency is essential to good governance.

事实上,今年以来GitHub已经参与了对俄罗斯的制裁。俄乌冲突期间,GitHub 2022年2月28日以遵循美国制裁清单要求为由,关闭俄罗斯银行Sberbank、Alfa-Bank和其他数十个公司账户,导致放到GitHub上的源代码无法获取。
据GitHub发布的统计报告称,平台目前汇聚了全球3亿个代码仓库,占全部开源软件的90%,而目前开源代码在各行业中的整体占比达到76%。试想如果一旦这些开源代码的获取通道被关闭,我国将有多少行业和开发者会受到影响。

代码托管工具供应商的另一巨头GitLab,这家公司注册地为美国加州的旧金山San Francisco, California,也是处于美国的控制下。

GitLab为全球客户提供DevOps工具链服务,在近年来外围环境变化下,势必会受到美国国内政治气氛的影响,在2019年10月,公司宣布其能接触到用户数据的职位,不再招收居住在中国和俄罗斯的员工,并且当前的团队成员也将不被允许移居这些国家,这种明显的歧视性规定其实也是一个消极的信号。

第三,编译构建的断供风险。
高效的开发效率是产品快速推向市场的关键,编译建则是影响软件开发效率的重要环节。编译构建,即将软件的源代码编译成二进制文件,并和配置文件、资源文件等一起打包,最终生成软件产品的过程。
在企业的开发场景中,当开发人员写完代码后,需要等待几十分钟、几个小时才能获取软件包来验证代码是否正确,如果一个简单的问题修复需要一天甚至数天,势必会在高速的市场竞争中败下阵来。在车、操作系统、终端、ICT等行业,更需通过专业加速软件来加速研发,加快产品的上市速度。
目前,市面上的专业加速软件均在美国控制之下,如IncrediBuild、CloudBees Build Acceleration、EngFlow等,国内仍无相关替代软件。一旦遭遇美国断供,相关行业的产品上市周期势必加长,导致企业在激烈的市场竞争力败下阵来。

第四,开源社区及代码的安全风险。
开源代码就是无风险的,其实这是一种错误的思维,在特定的政治环境下,国外的开源社区是可能修改规则,限制特定国家和组织的账号参与的,使得无法获取更新的源代码。360的董事长今年4月发文说:“Nginx是由俄罗斯程序员开发的高性能的HTTP和反向代理web服务器,占据全球web服务器市场逾三成份额,国内新浪、网易、豆瓣、迅雷等多家网站也有使用。鉴于其在全球使用的广泛性,之前有开发者呼吁俄罗斯拿Nginx反制裁西方国家,但现在比较戏剧性的是,Nginx反而成了西方制裁俄罗斯的工具。”
其原因就是2019年Nginx被美国F5公司收购了,该公司在俄乌战争爆发一段时间后发文宣布暂停在俄罗斯的所有销售业务,移除俄罗斯对F5 网络的访问权限,以及停止俄罗斯对Nginx开源项目做贡献。

像本文提到的全球市场占有率第二,为编程语言提供集成开发环境的明星公司-JetBrains,2022年3月11日,JetBrains首席执行官Maxim Shafirov发布公告称,JetBrains将无期限暂停在俄罗斯的销售和研发活动,以及无限期暂停在白俄罗斯的销售。
Shafirov在公告提到,JetBrains谴责俄罗斯政府发起的袭击,选择与乌克兰人民站在一起,包括他们的同事和家人。
我国工信部电子知识产权中心的公众号在3月份曾经对全球开源社区的反应进行过整理,大量的开源社区并不是中立或者不参与表态,而是主动发声明站在乌克兰一边,不少直接采取了对俄罗斯的制裁行动。
https://mp.weixin.qq.com/s?__biz=MzIxMTAxNTU5NQ==&mid=2669254951&idx=2&sn=4b11b8970e37482ef3f9be7f8ae27c1b&chksm=8db6fbe3bac172f5591746625b38ea7dde5932a2775b81ba1c8a248dca1a7b12c7e21ffa9663&scene=27

持续的为美国控制和管辖的开源社区贡献代码,并持续的依赖通过获取更新的开源代码来演进自己的软件功能,这是帮助一个可能制裁自己的平台壮大力量和生态,是在美国根技术的基础上建立我们的软件大厦。目前在软件开发工具方面,我国大量软件企业仍然直接购买美国商用工具,而全球市场上的开发工具,包括开源社区、编译器、安全工具等目前90%被美国控制。国产软件工具大量依靠开源技术包装而成,一旦受到国外制裁,开源技术平台被禁用,将会直接导致业务可能因此停摆。

例如在开源内核代码仓方面,当前国内软件企业几乎通用GitLab内核。GitLab是被广泛使用的基于git的开源代码管理平台, 基于Ruby on Rails构建。当前,国内缺少对于Ruby的专业研发人才和技术专家,虽为开源,但缺乏对其进一步演进的能力,只能提交问题到开源社区,建议内容修复。同时,GitLab还有商用版本,集成更多高级能力,相比之下开源版本的能力不健全,无法做到分布式和敏捷弹性等,开源版本的能力明显受到限制。

其他还有开源代码的安全漏洞问题,由于国内普遍缺乏安全漏洞的修复能力,因此漏洞修复实际上高度依赖开源社区的漏洞发布更新,而一旦受到制裁,则此来源断绝,那么使用该代码构建的业务软件安全性将无法保证,尤其是如果承载的是我国政府,金融等相关的关键业务,在遭到攻击时可能会造成无可估量的损失。

2021年11月,全球知名开源日志组件Apache Log4j被曝存在严重高危险级别远程代码执行漏洞,全球许多黑客已尝试利用此漏洞并执行恶意代码攻击,所有类型的在线应用程序、开源软件、云平台和电子邮件服务都可能面临网络安全风险。攻击者可以利用该漏洞远程。据外媒报道,漏洞发现以来,Steam、苹果的云服务受到了影响,推特和亚马逊也遭受了攻击,元宇宙概念游戏“Minecraft我的世界”数十万用户被入侵。美联社评论称,这一漏洞可能是近年来发现的最严重的计算机漏洞。
根据统计,有超过35,863个开源软件 Java 组件依赖于 Log4j,意味着超过 8% 的软件包里至少有一个版本会受此漏洞影响。漏洞在依赖链中越深,修复步骤就越多。根据云安全专家评估,每秒有超过 1000次利用Log4j漏洞的尝试。Log4j漏洞不仅影响直接使用该库的基于Java的应用程序和服务,还影响许多其他流行的依赖它的Java组件和开发框架,包括但不限于Apache Struts2、Apache Solr、Apache Druid、Apache Flink、ElasticSearch、ApacheKafka。
可以想象,如果国内基于国外开源软件打造的软件应用,在安全漏洞上因为制裁的因素而得不到更新,将是多么大的隐患。

那么,国产软件开发工具的自研创新情况现在如何呢?
由于在2019年5月被美国列入清单,华为不仅是芯片被美国封锁,而且在新的操作系统、数据库、中间件,以及华为之前采购的诸如IDE、代码检查、研发安全、制品库等软件开发工具均遭受了制裁,已经不再能够购买更新,所以华为在国内已经率先进入了努力实现根技术自主的阶段。

三年多以来,国内一直在关注华为芯片的自主化进程,我们也看到华为通过各种方式带动国内芯片产业链的自主化,但实际上华为在软件自主化方面走的还更快一些,鲜为人知的是,华为长期是中国软件收入最高的公司,到2021年已经连续20年是中国软件业务收入最高的企业。由中国电子信息行业联合会发起的“2021年度软件和信息技术服务竞争力百强企业”榜单,华为依然排在第一位。
目前华为在进行的ICT技术底座的国产化,其范围涉及硬件(X86->ARM)、操作系统(Linux/Windows->终端操作系统鸿蒙,服务器操作系统欧拉)、数据库(Oracle->GaussDB)、中间件,应用软件改造,软件开发工具->CodeArts多个大类的全栈自研替换。
同时华为在国产化的同时,提供了OpenEuler、OpenHarmony、OpenGauss等一系列开源国产自主基础软件,并且捐出源代码给国内机构进行管理。
这是一个浩大的工程,但也是一个做下来会对中国极有益处的工程。

不只是华为,国内也有不少企业在进行基础软件的攻关,像国内各大云计算公司,都在逐步用国产的操作系统和数据库进行替代。
而国家层面已经在大力推动“信创”(信息应用技术创新),在党政机关和各个行业推动走向ICT软硬件全国产化,2020年开始大规模采购放量,在未来几年国内的各大党政机关,大型国企和央企的ICT信息技术系统将逐步全面国产化,这会创造出一个巨大的市场,非常有利于国产基础软硬件的发展。
纵观中国ICT技术的发展史,可以说2018-2019年是一个极为关键的分水岭,华为是其中的标志性事件,2018年中兴事件和孟晚舟事件相继发生,2019年5月华为更是被美国开始逐渐全面制裁,经过这一系列事件的发酵,国内的舆论环境得到了彻底的扭转,由之前的认为是中国公司自身的问题导致制裁,以及对呼吁ICT软硬件自主化的声音不以为然,认为其不急迫,技术上也不现实,到现在已经逐步形成了走向全面国产化的共识。但我们也需认识到,尽管芯片所受到的关注度最高,也非常重要,但并不是走向自主可控的全部,我国的ICT技术底座是包括软硬件在内的,是包含芯片,操作系统,数据库,中间件,应用软件,软件开发工具这些一系列基础软硬件在内的全面的国产化。

应该认识到,不管是国产芯片也好,国产基础软件也好,首先是要先用起来,把资源投到这方面,这样才能促使其不断的发展壮大,才能从初期的不好用到好用,低性能到高性能。更何况目前国产基础软硬件并非是近几年才开始启动,而是在过去的几十年也已经有了一定程度的技术积累,只是在ICT软硬件高度依赖生态的环境下因此占有率不高。尤其是像华为这样的规模达几千亿人民币的公司,其内部本身就是各种基础软硬件大型的试验场,其能力相信在其中已经有了大量的锻炼,其在内部大量使用的各种软件如今也在对外进行商业化销售。而除了华为国内也有不少公司在做基础软件的开发,因此目前市场上在国产软件方面是有所选择的。

在2022年的当下,我们更需要的是国内全行业共同行动起来,在国产ICT根技术基础设施上构建中国的软硬件大厦和自主生态,实现国产工具开发国产软件,就如同要实现用国产设备生产国产芯片一样,这样才能让我们真正拥有更多选择,保障长期安全与发展。在过去的一二十年,我国在软件产业方面的最大成功是实现了各种应用软件的大繁荣,如今在国内市场,各种我们日常生活使用的应用软件基本都是国内公司开发,这无疑是一件好事,而现在则是让下游的国产应用软件逐步生长在上游的国产基础软硬件上的时候了,全行业行动起来,才能实现拉动上游国产基础软硬件占有率的提升,到2030年国产ICT软硬件能在国内形成较大的规模,这样才能支撑走出去和美系软件公司竞争。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存