新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 如何打造开放繁荣的RISC-V嵌入系统生态?

如何打造开放繁荣的RISC-V嵌入系统生态?

作者:迎九(EEPW)时间:2023-11-20来源:电子产品世界收藏

2023 年9 月,嵌入式领域的大事之一是Arm 上市,在美国纳斯达克交易所上市,收盘大涨近25%,市值达679 亿美元,成为截至当时的本年度美股规模最大的IPO。Arm 上市以后,会不会对 有影响?在嵌入式系统领域,如何打造开放、繁荣的 生态?

本文引用地址:/article/202311/453084.htm

2023 年9 月16 日,在甘肃张掖举办的“第21 届CCF 全国嵌入式系统大会”上,中科院软件所副所长、总工程师、研究员、博士生导师武延军做了主题报告,介绍了嵌入式软件生态及 嵌入系统生态的打造思考。

武延军还是开放原子基金会开源安全委员会主席,OpenHarmony 项目群的技术指导委员会的委员,openEuler 项目群的委员会副主席,中国开放指令集(RISC-V) 联盟的开源软件工作组组长。

1 开源软件:嵌入式主流系统的发展模式

1.1 什么是IT生态

从软硬件生态的示意(图1)上,可以看到底层的硬件公司中,大概有2000 多家的国内芯片设计企业,全球有2 万家半导体企业。上层是设备/用户和开发者。其中,设备/ 用户包括100亿的可穿戴设备,1 万亿的物联网终端,50 亿部手机,30 亿台PC,10 亿台服务器;开发者方面,全球有9400 万的开发者,再加上其他的平台,全球约有1 亿的开发者,安卓和苹果共有1000 万的APP,全球有1百万家软件企业。

1700444827113649.png

图1 软硬件生态

如果中间没有基础软件,可能面临什么问题?设备用户直接去面向硬件公司。由于数量悬殊,硬件公司会面临巨大的压力。例如用户买了一台台式机或笔记本电脑,处理器是英特尔的,如果用户在使用过程中遇到了问题,或者装软件、下载新应用有了问题,不会直接去找英特尔,因为在生态中有了基础软件,把硬件公司、开发者以及设备/ 用户给连接起来了,使他们之间不需要去直接交互,而是通过基础软件/ 软件,形成一个很自然的网状连接,这样整个生态就形成了。

1.2 生态的主导权意味着巨大的商业价值

从先进国家的发展经验看,企业经历了产品竞争,产业链竞争,正在向产业生态竞争的方式进化。实际上,信息技术(IT)产业的核心竞争力是生态,生态的核心是基础软件(操作系统)。例如IT 业市值万亿美元的4 大企业是:微软、苹果、亚马逊、谷歌。它们都有一个共性:是生态的主导者。

生态的主导也是通过软件去实现的,例如微软的Windows 操作系统,虽然微软有很多的产品,诸如Office 办公软件、云平台等现在是主要的收入来源,Windows 现在已经不是其最大的收入来源,但是微软是通过Windows 主导了生态。此外还有像谷歌的安卓、苹果的iOS、亚马逊的AWS 等,都是主导生态的关键操作系统/ 软件。

1.3 嵌入式系统领域有没有生态垄断?

在嵌入式领域也存在生态。以FreeRTOS 为例,其是嵌入式领域用得最多的一种操作系统,自称曾经占到了全球嵌入式操作系统70% 的市场,现在已经被亚马逊主导、收购。FreeRTOS 在其主页中,称其优势之一是有广泛的生态系统支持,具体的表现是有40 多种架构、上千种芯片的支持,有各种各样的模块化的库,组装起来有FreeRTOS 的代码,有众多的合作伙伴。这个生态圈有没有垄断? 从FreeRTOS 网站查一下所支持的芯片列表,发现有40 多种MCU、上千个型号,但是里面没有被美国禁运的实体清单里的公司,可见有垄断。

1.4 生态垄断如何破局?

如果用一句话来概括,就是:我们需要打造一个开放繁荣的软件开源机制。

这种开源机制的产生可以追溯到上世纪80 年代,当年世界自由软件运动的创始人——理查德·斯托曼(Richard Stallman) 喊出了一个口号:Free software isfreedom( 自由软件就是自由)。这个口号曾经激励了几代程序员。

现在有了新的口号,2017 年图灵奖得主、发明RISC-V 的大卫·帕特森(David Patterson)教授等人的初衷是:instruction sets want to be free( 指令集希望是自由的)。

把二者结合起来,一个是倡导开源的软件,一个是开源的指令集,其实背后包含了开源的芯片/ 硬件,构成了生态垄断破局的机遇。

2 RISC-V:嵌入式指令集架构的发展方向

2.1 开源模式下,软件也有供应链

开源现在已经普遍被使用,有报告称物联网和移动应用领域里都发现了开源代码。开源在国内的使用比例也非常高。

如果对照硬件,开源模式下的软件也有供应链。对于硬件产品,可以分解成各种元器件、零部件。如果把操作系统/ 开源软件进行分解,也有很多模块库,也是由很多的“元器件”组成的。就像国产大飞机C919 是由上万个零件构成,其实操作系统/ 开源软件也是由大小不同的零部件,按照依赖次序进行组装和优化。即,开源操作系统的构建= 开源软件供应链的整合优化的构成,这是openEuler 社区刚成立时的成员共识。

从具体的数据看一下主流的操作系统,每种操作系统的背后的软件包数量约为3 万个左右,背后参与的开发人员数量也在几千人的数量级。

这还仅仅是包(package) 这一级。如果把它们拆分到文件、函数级别,或者再把它进一步拆分成“代码切片”级,数量会非常庞大。所以把它比作C919 大飞机。

如何去描述这种现象?这就是“开源软件供应链”。狭义地讲,之前有SBOM(软件料单),对应的是硬件解决方案里的物料清单(BOM),像一个树状或筒状结构。但“软件料单”不能全面反映软件之间的依存关系。如果进行广义的定义,“开源软件供应链”更为合适。

2.2 “开源软件供应链”的定义

“开源软件供应链”的定义是:实际业务系统在开发和运行过程中,涉及的所有开源软件上游项目(Upstream)、源码包(Source Package)、二进制包(Binary)、包管理器(Package Manager)、仓库(Repository)以及开发者(Developer) 和维护者(Maintainer)、社区(Community)、基金会(Foundation)、厂商(Vendor)、用户(User) 等,按照依赖(Depend)、打包(Package)、构建(Build)、托管(Host)、协作(Collaborate)、指导(Guide)、交付(Deliver)、反馈(Feedback) 等关系形成的供应链网络。

这个定义是较新的版本,2017 年时还没有这么完整。这一版把开发者、社区、基金会,包括用户等也放到供应链的列表里。

在这个概念的基础上,中科院软件所开始建设“源图”开源软件供应链的平台,之后升级为一项重大基础设施,至今已经历了多个版本。2023 年8 月21 日发布3.0版时,已覆盖1.4 亿款以上的开源软件,代码行数已达到1892 亿行,开源许可证3257 个。

“源图”一直在进化。9 月15 日,数据又有所更新。苹果的iOS、亚马逊的AWS 等,都是主导生态的关键操作系统/ 软件。

1.3 嵌入式系统领域有没有生态垄断?

在嵌入式领域也存在生态。以FreeRTOS 为例,其是嵌入式领域用得最多的一种操作系统,自称曾经占到了全球嵌入式操作系统70% 的市场,现在已经被亚马逊主导、收购。FreeRTOS 在其主页中,称其优势之一是有广泛的生态系统支持,具体的表现是有40 多种架构、上千种芯片的支持,有各种各样的模块化的库,组装起来有FreeRTOS 的代码,有众多的合作伙伴。

这个生态圈有没有垄断? 从FreeRTOS 网站查一下所支持的芯片列表,发现有40 多种MCU、上千个型号,但是里面没有被美国禁运的实体清单里的公司,可见有垄断。

1.4 生态垄断如何破局?

如果用一句话来概括,就是:我们需要打造一个开放繁荣的软件开源机制。

这种开源机制的产生可以追溯到上世纪80 年代,当年世界自由软件运动的创始人——理查德·斯托曼(Richard Stallman) 喊出了一个口号:Free software is freedom( 自由软件就是自由)。这个口号曾经激励了几代程序员。

现在有了新的口号,2017 年图灵奖得主、发明RISC-V 的大卫·帕特森(David Patterson)教授等人的初衷是:instruction sets want to be free( 指令集希望是自由的)。

把二者结合起来,一个是倡导开源的软件,一个是开源的指令集,其实背后包含了开源的芯片/ 硬件,构成了生态垄断破局的机遇。

2 RISC-V:嵌入式指令集架构的发展方向

2.1 开源模式下,软件也有供应链

开源现在已经普遍被使用,有报告称物联网和移动应用领域里都发现了开源代码。开源在国内的使用比例也非常高。

如果对照硬件,开源模式下的软件也有供应链。对于硬件产品,可以分解成各种元器件、零部件。如果把操作系统/ 开源软件进行分解,也有很多模块库,也是由很多的“元器件”组成的。就像国产大飞机C919 是由上万个零件构成,其实操作系统/ 开源软件也是由大小不同的零部件,按照依赖次序进行组装和优化。即,开源操作系统的构建= 开源软件供应链的整合优化的构成,这是openEuler 社区刚成立时的成员共识。

从具体的数据看一下主流的操作系统,每种操作系统的背后的软件包数量约为3 万个左右,背后参与的开发人员数量也在几千人的数量级。

这还仅仅是包(package) 这一级。如果把它们拆分到文件、函数级别,或者再把它进一步拆分成“代码切片”级,数量会非常庞大。所以把它比作C919 大飞机。如何去描述这种现象?这就是“开源软件供应链”。狭义地讲,之前有SBOM(软件料单),对应的是硬件解决方案里的物料清单(BOM),像一个树状或筒状结构。但“软件料单”不能全面反映软件之间的依存关系。如果进行广义的定义,“开源软件供应链”更为合适。

2.2 “开源软件供应链”的定义

“开源软件供应链”的定义是:实际业务系统在开发和运行过程中,涉及的所有开源软件上游项目(Upstream)、源码包(Source Package)、二进制包(Binary)、包管理器(Package Manager)、仓库(Repository)以及开发者(Developer) 和维护者(Maintainer)、社区(Community)、基金会(Foundation)、厂商(Vendor)、用户(User) 等,按照依赖(Depend)、打包(Package)、构建(Build)、托管(Host)、协作(Collaborate)、指导(Guide)、交付(Deliver)、反馈(Feedback) 等关系形成的供应链网络。

这个定义是较新的版本,2017 年时还没有这么完整。这一版把开发者、社区、基金会,包括用户等也放到供应链的列表里。

在这个概念的基础上,中科院软件所开始建设“源图”开源软件供应链的平台,之后升级为一项重大基础设施,至今已经历了多个版本。2023 年8 月21 日发布3.0版时,已覆盖1.4 亿款以上的开源软件,代码行数已达到1892 亿行,开源许可证3257 个。

“源图”一直在进化。9 月15 日,数据又有所更新。

“源图”对整个开源世界的数据做两项工作:①采集,②把数据进行二次加工处理。

截至9 月15 日晚,“源图”数据比8 月21 日的代码行数多了200 多亿行,是一直在持续变化。“源图”有很多作用,例如合规性检测、漏洞检测等。还有一个作用是对国产操作系统与社区的全方位保障。因为近几年,很多企业、机构在联合构建国产操作系统的社区,现在社群较多,希望这些根社区不是打着社区的幌子,而是真的很活跃,有实际的贡献,有大量的开发人员聚集,有软件的快速迭代。因此,中科院软件所对这些根社区去做实时的监测和风险评估。

“源图”还有很多其他功能,以API 的方式开放出来,至今有180 多个API,希望与各界合作。

2.3 RISC-V是嵌入式指令集架构的发展方向

指令集架构(简称指令集,ISA)是计算机系统中软硬件的分界线,或交互规范标准,是软硬件生态的起始原点。

指令集不一定能决定硬件/ 芯片的性能高低,也不一定能决定上层的应用软件的工作,但是能决定软硬件的协作方式和发展方向。

最早指令集的出现是为了解决机器兼容和软硬件解耦的问题,例如IBM System/360 的4 种不同型号的大型机,如果需要一套软件在上面运行,就需要一套统一的指令集,叫One ISA to rule them all( 一个ISA 统治了他们所有人),像“指环王”里的“至尊魔戒”。M.V. Wilkes(注:英国剑桥大学教授,1951 年首先提出微指令和微程序)和Fred P. Brooks( 注:IBM 360 操作系统之父) 在指令集上面做了巨大的贡献。

Wintel 时代的微软和英特尔联盟,移动智能手机时代的AA(Arm 与Android) 联盟,都占据了IT 生态的价值高地。所以尽管整个IT 领域中,很多标准规范是开放的,但是ISA 里没有,x86、IBM 360、Arm 都有私有的指令集,是由公司主导的。

2.4 为何指令集领域长期缺乏开放标准?

这是历史形成的。例如IBM 最早成立时,就是为自己私有的大型机来做的操作系统。之后IT 业延续了这种方法,上世纪70 年代大约有二三十种不同的指令集,最后经过一系列的比拼后,x86 才胜出。到2010年代时,Arm 在移动和嵌入式领域也胜出了。所以x86和Arm 是通过残酷的商业竞争形成的,也是它们的一种很重要的商业掌控手段,所以两家公司都很难去把它开放出来。即便Arm 比x86 稍好一些,客户可以去获得授权,公版可获得永久授权,但是Arm 还是不会去把其变成一个像RISC-V 一样全开源的情况。包括现在Arm 上市的卖点之一就是指令集是自己掌握的。

RISC-V 的愿景是:RISC-V 是一个自由开放的ISA,通过开放标准协作实现处理器创新的新时代。因此,RISC-V ISA 在架构上提供了一个新的自由、可扩展的软件和硬件自由层次,为未来50 年的计算设计和创新铺平了道路。基于“标准”和“未来50 年”这两个特点,因此最有可能成为指令集的未来国际标准。

其实指令集非常简单,以RISC-V 为例,它包含基础指令集、标准扩展指令集和用户自定义扩展指令集。RISC-V 基础指令集的标准规范已经发布。

RISC-V 的设计理念有很多特点,包括简洁、开放、先进、模块化、稳定、免授权。现在发展速度也非常快,RISC-V 国际基金会(RVI)的全球会员数已经超过了3800 家。

2.5 RISC-V是我国众多软件学科方向的一次复兴机遇

从RVI 的官方网站里可以看到,RISC-V 在基础软件领域里需要图2 右侧的技术和产品。对应的学科方向是左边的。这些都是软件领域非常核心的方向,特别是有些方向可能许多高校因为在过去20 多年内没有应用场景,课程已不再开设了,这非常可惜,但在RISC-V阶段确实是我国基础软件部门一次很久都没有过的重复造笼子的机会。

通常认为“重复造笼子”是贬义的,是重复和模仿,但问题是我们没造过笼子。我们现在使用的基础软件大都是在美国上世纪60 年代到90 年代内形成的一套软件系统之上,即便在2010 年代,我们也没赶上,例如像安卓这样的新的主流操作系统。所以RISC-V 可能给了我们一个机会,包括编译器、虚拟机、环境、模拟器等,甚至包括安全等,都可以从全新的视角去打造。

1700445750257899.png

图2

3 开放繁荣的生态:嵌入式系统的发展目标

3.1 “细腰”是生态的核心之一

首先,RISC-V 的软件在日趋丰富,基本的软件生态框架已经搭起来了,但是它未来要走向成功,一定要跟x86、Arm 去比拼,RISC-V 的愿景是未来三分天下必有其一。怎么能做到这一点?核心就是要比x86 和Arm 有更高的生态效率。

生态效率如何决定?从生态学的启示看:①要有足够丰富多样的支持,例如大量的开源软件代码、文档手册以及社区的开发人员互助等,②为了防止碎片化、技术多样化,需要有一个细腰的生态模型,这是从IT 生态里总结出来,中间会有一个细腰。细腰是什么?往往就是标准规范,是行业最容易达成共识的。

如图3,围绕细腰的往上和往下,也是一个更容易达成共识的部分,例如上面的基础软件,下面的通用IP、EDA 工具等。细腰的共识部分越多,生态就越容易达成。

1700445859716987.png

图3

未来理想的生态应该是这样一个模型:中间是指令集规范,往上是基础软件的开发以及基础运行软件的环境,这些希望是开源免费的。底下还有通用EDA 工具,希望也是开源、免费的工具。

由此构成一个坚强的细腰,向上能够支撑千行百业的应用场景,向下有成千上万的芯片。

现在已经看到有这样的发展势头。例如在2023 年8 月,RISC-V 中国峰会召开,这是与北美和欧洲峰会并列的三大峰会。我们非常高兴地看到了展示区有各种RISC-V 的设备出现,例如数据中心的服务器,还有交换机、笔记本、平板,甚至有手机、小型智能终端、摄像头等安防设备等。

为了防止碎片化,我们一定要把中间的细腰做好。贡献。老师们不一定要去参与到商业里去跟x86、Arm 去竞争。

生态是慢慢形成的,就像20 年前,Arm 刚进入嵌入式领域时,很多人看相关的书籍和用开发板学嵌入式,但是不知不觉地发现Arm 开发者越来越多了,生态变得越来越大。现在也有RISC-V 相关的教材和开发板,相信再过5~10 年,人们会发现在整个开发者比例中,RISC-V 占了很大的优势,这时候RISC-V 生态就形成了。

4 中科院软件所做的工作

中科院软件所正在打造国内开源的“根”社区,致力于打造国产的开源社区,希望在社区里有自己的成果和产品。开源欧拉操作系统(openEuler)社区是面向数字基础设施的操作系统社区,开源鸿蒙操作系统(OpenHarmony)社区有活跃的参与者,是面向万物智能互联的操作系统社区。过去几年,中科院软件所在这两个社区里,在高校、科研院所中影响力领先。

关于RISC-V 的机遇,需要用共治共享共建的开源基础软件的模式去打造,一是软件所做了PolyOS,可谓开发板的万能适配器,无论什么样的RISC-V开发板,在PolyOS 上都可以快速地构建它的操作系统。另一个是面向开发者的万能工具箱RuyiSDK,这和嵌入式有点关系,因为现在有很多的开发板或机器还需要用交叉编译的方式去做。软件所还做了一些与嵌入式相关的基础设施,例如OpenOCD,包括ADB 调试工具链,2023年6 月底已经发布了第一个版本。

前期,中科院软件所已完成了对RISC-V 的服务器和桌面办公环境的软件适配,保障了国产RISC-V 服务器和笔记本的率先批量出货。

服务器和笔记本软件方面,软件所也已完成了很多适配,例如基于RISC-V 的传统的视频播放、收发邮件、客户端、浏览器等等,也完成了很多服务端的项目,诸如openGDK 这些基础的方面。

RISC-V 嵌入式生态的寒武纪即将到来,一定会有大量的RISC-V 相关的设备持续不断地涌现。为了顺应这一潮流,2023 年9 月算能生态部、软件所PLC 实验室、海外RVI 等单位在开展 “全球捐赠计划”,捐赠1 万块RISC-V开发版给社群,特别是给高校去做教学科研,希望国内高校在RISC-V 嵌入式领域培养更多的人才。软件所一直是把两句话当做使命:①让RISC-V 成为指令级的国际标准。②让基础软件成为全人类的数字公共品。更希望中国在这次RISC-V 及开源变革中,能够抓住机遇,占据战略高地。

(本文来源于EEPW 2023年11月期)



评论


相关推荐

技术专区

关闭