查看原文
其他

RISC-V架构缺乏UEFI、ACPI和平台兼容性标准,操作系统需要高度定制化,呈现碎片化现象

wolf uefiblog UEFI社区 2023-12-29
点击上方“公众号” 可以订阅哦!

RISC-V架构携开放、免费和开源的优势,发展迅猛,逐渐呈后来居上的态势。但与此同时,与之相伴的碎片化问题也为业内所担忧。开放和开源不能一放了之,必须加以规范形成聚焦,否则极易形成互不兼容的多个分支,变得一地鸡毛。这方面,RISC-V国际基金会做的不错,发挥了巨大作用,特别在指令兼容方面。

最近阿里平头哥召开了生态大会,我也参加了大会,并专门写了一篇文章:为什么RISC-V架构发展这么好,这么快呢?平头哥发布会随想

除了对RISC-V架构的成熟做了肯定,也对其迅速发展原因进行了探讨。因为篇幅所限,平头哥和RISC-V国际基金会对防止指令集碎片化的成果没有提及。实际上,这也是发布会的一个亮点。在发布会上,玄铁C908得到第一个RISC-V兼容性测试通过证书:

来源:2023平头哥生态大会

设定规范,进行兼容性测试,并对通过者发布证书,已经被证明是防止野蛮生长的有效手段。可以说RISC-V世界已经注意到指令集碎片化的问题,并且已经采取正确的行动。那么是不是已经万事大吉,碎片化问题已经得到有效解决呢?

如果你也全程参与大会,就会发现一个有趣的现象。大会是RISC-V生态大会,召集了很多生态小伙伴,包括操作系统(OSV)厂商。各个OS厂商纷纷宣布自己已经支持RISC-V云云,却暴露出一个短板:操作系统定制化问题严重。如Ubuntu现场给出下载链接:

来源:2023平头哥生态大会

如果我们打开这个链接,就会发现已经支持四种RISC-V单板[1]

来源:参考资料1

对每个单板给出不同的Ubuntu Image下载链接。也就是说,操作系统需要为不但是某个CPU,甚至是某个主板进行了改动,进行了定制,所以需要给出不同的Image。

这在x86世界是不可想象的,你什么时候看到Windows或者Linux对每个CPU,甚至是每个板子都有不同的安装包?从来都是一个镜像,适用于所有主板和CPU。如Ubuntu的x86镜像下载链接只有一个

只有版本的OS版本的区别

为什么x86能做到,而RISC-V目前做不到呢?是OS厂商不想吗?

如果我们来看看RISC-V的前辈ARM世界的演化故事,就大概能明白其中的原因。曾经ARM Linux也像现在RISC-V一样需要按照主板进行定制,为每个板子在BSP中进行修改,正如现在手机和IoT中还在这样做一样。但随着ARM进入了通用桌面和服务器领域后,情况发生了变化。Ubuntu的桌面ARM版本只有一个,Windows on ARM的image也不需要板级的定制。发生了什么?谁做了板级的定制呢?

聪明的读者也许猜出来了,变化发生在随主板发售的系统固件中。ARM在通用领域接受了UEFI和ACPI,并发布了一系列平台规范,如针对服务器的服务器的SBSASBBR规范,最新的基本系统架构(BSA)、基本启动要求(BBR),以及针对安全的基本启动安全要求(BBSR)等等。在此基础上,推出ARM SystemReady认证:UEFI在ARM生态中现状如何?ARM SystemReady认证金标准介绍


借助规范、兼容性测试工具和认证,这才让操作系统ARM image进行了收敛,防止了操作系统的碎片化的问题。

前事不忘,后事之师。ARM曾经走过的路,也为RISC-V的发展指明了路径。RISC-V不仅仅需要订立指令集规范和认证,也需要接受UEFI特别是ACPI(DT抽象硬件有严重短板),建立各种平台规范,并在其上制定SystemReady类似的平台规范和认证。如此,才能减少操作系统的定制化需求,从而避免它的碎片化。

另一篇RISC-V的文章:为什么RISC-V需要引入UEFI?何时引入?UEFI on RISC-V的主要问题、现状和未来展望


参考资料

[1] RISC-V Ubuntu下载 https://ubuntu.com/download/risc-v


继续滑动看下一个

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

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