如何打造開放繁榮的RISC-V嵌入系統(tǒng)生態(tài)?
2023 年9 月,嵌入式領域的大事之一是Arm 上市,在美國納斯達克交易所上市,收盤大漲近25%,市值達679 億美元,成為截至當時的本年度美股規(guī)模最大的IPO。Arm 上市以后,會不會對RISC-V 有影響?在嵌入式系統(tǒng)領域,如何打造開放、繁榮的RISC-V 生態(tài)?
本文引用地址:http://2s4d.com/article/202311/453084.htm2023 年9 月16 日,在甘肅張掖舉辦的“第21 屆CCF 全國嵌入式系統(tǒng)大會”上,中科院軟件所副所長、總工程師、研究員、博士生導師武延軍做了主題報告,介紹了嵌入式軟件生態(tài)及RISC-V 嵌入系統(tǒng)生態(tài)的打造思考。
武延軍還是開放原子基金會開源安全委員會主席,OpenHarmony 項目群的技術指導委員會的委員,openEuler 項目群的委員會副主席,中國開放指令集(RISC-V) 聯(lián)盟的開源軟件工作組組長。
1 開源軟件:嵌入式主流系統(tǒng)的發(fā)展模式
1.1 什么是IT生態(tài)
從軟硬件生態(tài)的示意(圖1)上,可以看到底層的硬件公司中,大概有2000 多家的國內芯片設計企業(yè),全球有2 萬家半導體企業(yè)。上層是設備/用戶和開發(fā)者。其中,設備/ 用戶包括100億的可穿戴設備,1 萬億的物聯(lián)網終端,50 億部手機,30 億臺PC,10 億臺服務器;開發(fā)者方面,全球有9400 萬的開發(fā)者,再加上其他的平臺,全球約有1 億的開發(fā)者,安卓和蘋果共有1000 萬的APP,全球有1百萬家軟件企業(yè)。
圖1 軟硬件生態(tài)
如果中間沒有基礎軟件,可能面臨什么問題?設備用戶直接去面向硬件公司。由于數(shù)量懸殊,硬件公司會面臨巨大的壓力。例如用戶買了一臺臺式機或筆記本電腦,處理器是英特爾的,如果用戶在使用過程中遇到了問題,或者裝軟件、下載新應用有了問題,不會直接去找英特爾,因為在生態(tài)中有了基礎軟件,把硬件公司、開發(fā)者以及設備/ 用戶給連接起來了,使他們之間不需要去直接交互,而是通過基礎軟件/ 軟件,形成一個很自然的網狀連接,這樣整個生態(tài)就形成了。
1.2 生態(tài)的主導權意味著巨大的商業(yè)價值
從先進國家的發(fā)展經驗看,企業(yè)經歷了產品競爭,產業(yè)鏈競爭,正在向產業(yè)生態(tài)競爭的方式進化。實際上,信息技術(IT)產業(yè)的核心競爭力是生態(tài),生態(tài)的核心是基礎軟件(操作系統(tǒng))。例如IT 業(yè)市值萬億美元的4 大企業(yè)是:微軟、蘋果、亞馬遜、谷歌。它們都有一個共性:是生態(tài)的主導者。
生態(tài)的主導也是通過軟件去實現(xiàn)的,例如微軟的Windows 操作系統(tǒng),雖然微軟有很多的產品,諸如Office 辦公軟件、云平臺等現(xiàn)在是主要的收入來源,Windows 現(xiàn)在已經不是其最大的收入來源,但是微軟是通過Windows 主導了生態(tài)。此外還有像谷歌的安卓、蘋果的iOS、亞馬遜的AWS 等,都是主導生態(tài)的關鍵操作系統(tǒng)/ 軟件。
1.3 嵌入式系統(tǒng)領域有沒有生態(tài)壟斷?
在嵌入式領域也存在生態(tài)。以FreeRTOS 為例,其是嵌入式領域用得最多的一種操作系統(tǒng),自稱曾經占到了全球嵌入式操作系統(tǒng)70% 的市場,現(xiàn)在已經被亞馬遜主導、收購。FreeRTOS 在其主頁中,稱其優(yōu)勢之一是有廣泛的生態(tài)系統(tǒng)支持,具體的表現(xiàn)是有40 多種架構、上千種芯片的支持,有各種各樣的模塊化的庫,組裝起來有FreeRTOS 的代碼,有眾多的合作伙伴。這個生態(tài)圈有沒有壟斷? 從FreeRTOS 網站查一下所支持的芯片列表,發(fā)現(xiàn)有40 多種MCU、上千個型號,但是里面沒有被美國禁運的實體清單里的公司,可見有壟斷。
1.4 生態(tài)壟斷如何破局?
如果用一句話來概括,就是:我們需要打造一個開放繁榮的軟件開源機制。
這種開源機制的產生可以追溯到上世紀80 年代,當年世界自由軟件運動的創(chuàng)始人——理查德·斯托曼(Richard Stallman) 喊出了一個口號:Free software isfreedom( 自由軟件就是自由)。這個口號曾經激勵了幾代程序員。
現(xiàn)在有了新的口號,2017 年圖靈獎得主、發(fā)明RISC-V 的大衛(wèi)·帕特森(David Patterson)教授等人的初衷是:instruction sets want to be free( 指令集希望是自由的)。
把二者結合起來,一個是倡導開源的軟件,一個是開源的指令集,其實背后包含了開源的芯片/ 硬件,構成了生態(tài)壟斷破局的機遇。
2 RISC-V:嵌入式指令集架構的發(fā)展方向
2.1 開源模式下,軟件也有供應鏈
開源現(xiàn)在已經普遍被使用,有報告稱物聯(lián)網和移動應用領域里都發(fā)現(xiàn)了開源代碼。開源在國內的使用比例也非常高。
如果對照硬件,開源模式下的軟件也有供應鏈。對于硬件產品,可以分解成各種元器件、零部件。如果把操作系統(tǒng)/ 開源軟件進行分解,也有很多模塊庫,也是由很多的“元器件”組成的。就像國產大飛機C919 是由上萬個零件構成,其實操作系統(tǒng)/ 開源軟件也是由大小不同的零部件,按照依賴次序進行組裝和優(yōu)化。即,開源操作系統(tǒng)的構建= 開源軟件供應鏈的整合優(yōu)化的構成,這是openEuler 社區(qū)剛成立時的成員共識。
從具體的數(shù)據(jù)看一下主流的操作系統(tǒng),每種操作系統(tǒng)的背后的軟件包數(shù)量約為3 萬個左右,背后參與的開發(fā)人員數(shù)量也在幾千人的數(shù)量級。
這還僅僅是包(package) 這一級。如果把它們拆分到文件、函數(shù)級別,或者再把它進一步拆分成“代碼切片”級,數(shù)量會非常龐大。所以把它比作C919 大飛機。
如何去描述這種現(xiàn)象?這就是“開源軟件供應鏈”。狹義地講,之前有SBOM(軟件料單),對應的是硬件解決方案里的物料清單(BOM),像一個樹狀或筒狀結構。但“軟件料單”不能全面反映軟件之間的依存關系。如果進行廣義的定義,“開源軟件供應鏈”更為合適。
2.2 “開源軟件供應鏈”的定義
“開源軟件供應鏈”的定義是:實際業(yè)務系統(tǒng)在開發(fā)和運行過程中,涉及的所有開源軟件上游項目(Upstream)、源碼包(Source Package)、二進制包(Binary)、包管理器(Package Manager)、倉庫(Repository)以及開發(fā)者(Developer) 和維護者(Maintainer)、社區(qū)(Community)、基金會(Foundation)、廠商(Vendor)、用戶(User) 等,按照依賴(Depend)、打包(Package)、構建(Build)、托管(Host)、協(xié)作(Collaborate)、指導(Guide)、交付(Deliver)、反饋(Feedback) 等關系形成的供應鏈網絡。
這個定義是較新的版本,2017 年時還沒有這么完整。這一版把開發(fā)者、社區(qū)、基金會,包括用戶等也放到供應鏈的列表里。
在這個概念的基礎上,中科院軟件所開始建設“源圖”開源軟件供應鏈的平臺,之后升級為一項重大基礎設施,至今已經歷了多個版本。2023 年8 月21 日發(fā)布3.0版時,已覆蓋1.4 億款以上的開源軟件,代碼行數(shù)已達到1892 億行,開源許可證3257 個。
“源圖”一直在進化。9 月15 日,數(shù)據(jù)又有所更新。蘋果的iOS、亞馬遜的AWS 等,都是主導生態(tài)的關鍵操作系統(tǒng)/ 軟件。
1.3 嵌入式系統(tǒng)領域有沒有生態(tài)壟斷?
在嵌入式領域也存在生態(tài)。以FreeRTOS 為例,其是嵌入式領域用得最多的一種操作系統(tǒng),自稱曾經占到了全球嵌入式操作系統(tǒng)70% 的市場,現(xiàn)在已經被亞馬遜主導、收購。FreeRTOS 在其主頁中,稱其優(yōu)勢之一是有廣泛的生態(tài)系統(tǒng)支持,具體的表現(xiàn)是有40 多種架構、上千種芯片的支持,有各種各樣的模塊化的庫,組裝起來有FreeRTOS 的代碼,有眾多的合作伙伴。
這個生態(tài)圈有沒有壟斷? 從FreeRTOS 網站查一下所支持的芯片列表,發(fā)現(xiàn)有40 多種MCU、上千個型號,但是里面沒有被美國禁運的實體清單里的公司,可見有壟斷。
1.4 生態(tài)壟斷如何破局?
如果用一句話來概括,就是:我們需要打造一個開放繁榮的軟件開源機制。
這種開源機制的產生可以追溯到上世紀80 年代,當年世界自由軟件運動的創(chuàng)始人——理查德·斯托曼(Richard Stallman) 喊出了一個口號:Free software is freedom( 自由軟件就是自由)。這個口號曾經激勵了幾代程序員。
現(xiàn)在有了新的口號,2017 年圖靈獎得主、發(fā)明RISC-V 的大衛(wèi)·帕特森(David Patterson)教授等人的初衷是:instruction sets want to be free( 指令集希望是自由的)。
把二者結合起來,一個是倡導開源的軟件,一個是開源的指令集,其實背后包含了開源的芯片/ 硬件,構成了生態(tài)壟斷破局的機遇。
2 RISC-V:嵌入式指令集架構的發(fā)展方向
2.1 開源模式下,軟件也有供應鏈
開源現(xiàn)在已經普遍被使用,有報告稱物聯(lián)網和移動應用領域里都發(fā)現(xiàn)了開源代碼。開源在國內的使用比例也非常高。
如果對照硬件,開源模式下的軟件也有供應鏈。對于硬件產品,可以分解成各種元器件、零部件。如果把操作系統(tǒng)/ 開源軟件進行分解,也有很多模塊庫,也是由很多的“元器件”組成的。就像國產大飛機C919 是由上萬個零件構成,其實操作系統(tǒng)/ 開源軟件也是由大小不同的零部件,按照依賴次序進行組裝和優(yōu)化。即,開源操作系統(tǒng)的構建= 開源軟件供應鏈的整合優(yōu)化的構成,這是openEuler 社區(qū)剛成立時的成員共識。
從具體的數(shù)據(jù)看一下主流的操作系統(tǒng),每種操作系統(tǒng)的背后的軟件包數(shù)量約為3 萬個左右,背后參與的開發(fā)人員數(shù)量也在幾千人的數(shù)量級。
這還僅僅是包(package) 這一級。如果把它們拆分到文件、函數(shù)級別,或者再把它進一步拆分成“代碼切片”級,數(shù)量會非常龐大。所以把它比作C919 大飛機。如何去描述這種現(xiàn)象?這就是“開源軟件供應鏈”。狹義地講,之前有SBOM(軟件料單),對應的是硬件解決方案里的物料清單(BOM),像一個樹狀或筒狀結構。但“軟件料單”不能全面反映軟件之間的依存關系。如果進行廣義的定義,“開源軟件供應鏈”更為合適。
2.2 “開源軟件供應鏈”的定義
“開源軟件供應鏈”的定義是:實際業(yè)務系統(tǒng)在開發(fā)和運行過程中,涉及的所有開源軟件上游項目(Upstream)、源碼包(Source Package)、二進制包(Binary)、包管理器(Package Manager)、倉庫(Repository)以及開發(fā)者(Developer) 和維護者(Maintainer)、社區(qū)(Community)、基金會(Foundation)、廠商(Vendor)、用戶(User) 等,按照依賴(Depend)、打包(Package)、構建(Build)、托管(Host)、協(xié)作(Collaborate)、指導(Guide)、交付(Deliver)、反饋(Feedback) 等關系形成的供應鏈網絡。
這個定義是較新的版本,2017 年時還沒有這么完整。這一版把開發(fā)者、社區(qū)、基金會,包括用戶等也放到供應鏈的列表里。
在這個概念的基礎上,中科院軟件所開始建設“源圖”開源軟件供應鏈的平臺,之后升級為一項重大基礎設施,至今已經歷了多個版本。2023 年8 月21 日發(fā)布3.0版時,已覆蓋1.4 億款以上的開源軟件,代碼行數(shù)已達到1892 億行,開源許可證3257 個。
“源圖”一直在進化。9 月15 日,數(shù)據(jù)又有所更新。
“源圖”對整個開源世界的數(shù)據(jù)做兩項工作:①采集,②把數(shù)據(jù)進行二次加工處理。
截至9 月15 日晚,“源圖”數(shù)據(jù)比8 月21 日的代碼行數(shù)多了200 多億行,是一直在持續(xù)變化?!霸磮D”有很多作用,例如合規(guī)性檢測、漏洞檢測等。還有一個作用是對國產操作系統(tǒng)與社區(qū)的全方位保障。因為近幾年,很多企業(yè)、機構在聯(lián)合構建國產操作系統(tǒng)的社區(qū),現(xiàn)在社群較多,希望這些根社區(qū)不是打著社區(qū)的幌子,而是真的很活躍,有實際的貢獻,有大量的開發(fā)人員聚集,有軟件的快速迭代。因此,中科院軟件所對這些根社區(qū)去做實時的監(jiān)測和風險評估。
“源圖”還有很多其他功能,以API 的方式開放出來,至今有180 多個API,希望與各界合作。
2.3 RISC-V是嵌入式指令集架構的發(fā)展方向
指令集架構(簡稱指令集,ISA)是計算機系統(tǒng)中軟硬件的分界線,或交互規(guī)范標準,是軟硬件生態(tài)的起始原點。
指令集不一定能決定硬件/ 芯片的性能高低,也不一定能決定上層的應用軟件的工作,但是能決定軟硬件的協(xié)作方式和發(fā)展方向。
最早指令集的出現(xiàn)是為了解決機器兼容和軟硬件解耦的問題,例如IBM System/360 的4 種不同型號的大型機,如果需要一套軟件在上面運行,就需要一套統(tǒng)一的指令集,叫One ISA to rule them all( 一個ISA 統(tǒng)治了他們所有人),像“指環(huán)王”里的“至尊魔戒”。M.V. Wilkes(注:英國劍橋大學教授,1951 年首先提出微指令和微程序)和Fred P. Brooks( 注:IBM 360 操作系統(tǒng)之父) 在指令集上面做了巨大的貢獻。
Wintel 時代的微軟和英特爾聯(lián)盟,移動智能手機時代的AA(Arm 與Android) 聯(lián)盟,都占據(jù)了IT 生態(tài)的價值高地。所以盡管整個IT 領域中,很多標準規(guī)范是開放的,但是ISA 里沒有,x86、IBM 360、Arm 都有私有的指令集,是由公司主導的。
2.4 為何指令集領域長期缺乏開放標準?
這是歷史形成的。例如IBM 最早成立時,就是為自己私有的大型機來做的操作系統(tǒng)。之后IT 業(yè)延續(xù)了這種方法,上世紀70 年代大約有二三十種不同的指令集,最后經過一系列的比拼后,x86 才勝出。到2010年代時,Arm 在移動和嵌入式領域也勝出了。所以x86和Arm 是通過殘酷的商業(yè)競爭形成的,也是它們的一種很重要的商業(yè)掌控手段,所以兩家公司都很難去把它開放出來。即便Arm 比x86 稍好一些,客戶可以去獲得授權,公版可獲得永久授權,但是Arm 還是不會去把其變成一個像RISC-V 一樣全開源的情況。包括現(xiàn)在Arm 上市的賣點之一就是指令集是自己掌握的。
RISC-V 的愿景是:RISC-V 是一個自由開放的ISA,通過開放標準協(xié)作實現(xiàn)處理器創(chuàng)新的新時代。因此,RISC-V ISA 在架構上提供了一個新的自由、可擴展的軟件和硬件自由層次,為未來50 年的計算設計和創(chuàng)新鋪平了道路。基于“標準”和“未來50 年”這兩個特點,因此最有可能成為指令集的未來國際標準。
其實指令集非常簡單,以RISC-V 為例,它包含基礎指令集、標準擴展指令集和用戶自定義擴展指令集。RISC-V 基礎指令集的標準規(guī)范已經發(fā)布。
RISC-V 的設計理念有很多特點,包括簡潔、開放、先進、模塊化、穩(wěn)定、免授權?,F(xiàn)在發(fā)展速度也非常快,RISC-V 國際基金會(RVI)的全球會員數(shù)已經超過了3800 家。
2.5 RISC-V是我國眾多軟件學科方向的一次復興機遇
從RVI 的官方網站里可以看到,RISC-V 在基礎軟件領域里需要圖2 右側的技術和產品。對應的學科方向是左邊的。這些都是軟件領域非常核心的方向,特別是有些方向可能許多高校因為在過去20 多年內沒有應用場景,課程已不再開設了,這非??上В赗ISC-V階段確實是我國基礎軟件部門一次很久都沒有過的重復造籠子的機會。
通常認為“重復造籠子”是貶義的,是重復和模仿,但問題是我們沒造過籠子。我們現(xiàn)在使用的基礎軟件大都是在美國上世紀60 年代到90 年代內形成的一套軟件系統(tǒng)之上,即便在2010 年代,我們也沒趕上,例如像安卓這樣的新的主流操作系統(tǒng)。所以RISC-V 可能給了我們一個機會,包括編譯器、虛擬機、環(huán)境、模擬器等,甚至包括安全等,都可以從全新的視角去打造。
圖2
3 開放繁榮的生態(tài):嵌入式系統(tǒng)的發(fā)展目標
3.1 “細腰”是生態(tài)的核心之一
首先,RISC-V 的軟件在日趨豐富,基本的軟件生態(tài)框架已經搭起來了,但是它未來要走向成功,一定要跟x86、Arm 去比拼,RISC-V 的愿景是未來三分天下必有其一。怎么能做到這一點?核心就是要比x86 和Arm 有更高的生態(tài)效率。
生態(tài)效率如何決定?從生態(tài)學的啟示看:①要有足夠豐富多樣的支持,例如大量的開源軟件代碼、文檔手冊以及社區(qū)的開發(fā)人員互助等,②為了防止碎片化、技術多樣化,需要有一個細腰的生態(tài)模型,這是從IT 生態(tài)里總結出來,中間會有一個細腰。細腰是什么?往往就是標準規(guī)范,是行業(yè)最容易達成共識的。
如圖3,圍繞細腰的往上和往下,也是一個更容易達成共識的部分,例如上面的基礎軟件,下面的通用IP、EDA 工具等。細腰的共識部分越多,生態(tài)就越容易達成。
圖3
未來理想的生態(tài)應該是這樣一個模型:中間是指令集規(guī)范,往上是基礎軟件的開發(fā)以及基礎運行軟件的環(huán)境,這些希望是開源免費的。底下還有通用EDA 工具,希望也是開源、免費的工具。
由此構成一個堅強的細腰,向上能夠支撐千行百業(yè)的應用場景,向下有成千上萬的芯片。
現(xiàn)在已經看到有這樣的發(fā)展勢頭。例如在2023 年8 月,RISC-V 中國峰會召開,這是與北美和歐洲峰會并列的三大峰會。我們非常高興地看到了展示區(qū)有各種RISC-V 的設備出現(xiàn),例如數(shù)據(jù)中心的服務器,還有交換機、筆記本、平板,甚至有手機、小型智能終端、攝像頭等安防設備等。
為了防止碎片化,我們一定要把中間的細腰做好。貢獻。老師們不一定要去參與到商業(yè)里去跟x86、Arm 去競爭。
生態(tài)是慢慢形成的,就像20 年前,Arm 剛進入嵌入式領域時,很多人看相關的書籍和用開發(fā)板學嵌入式,但是不知不覺地發(fā)現(xiàn)Arm 開發(fā)者越來越多了,生態(tài)變得越來越大。現(xiàn)在也有RISC-V 相關的教材和開發(fā)板,相信再過5~10 年,人們會發(fā)現(xiàn)在整個開發(fā)者比例中,RISC-V 占了很大的優(yōu)勢,這時候RISC-V 生態(tài)就形成了。
4 中科院軟件所做的工作
中科院軟件所正在打造國內開源的“根”社區(qū),致力于打造國產的開源社區(qū),希望在社區(qū)里有自己的成果和產品。開源歐拉操作系統(tǒng)(openEuler)社區(qū)是面向數(shù)字基礎設施的操作系統(tǒng)社區(qū),開源鴻蒙操作系統(tǒng)(OpenHarmony)社區(qū)有活躍的參與者,是面向萬物智能互聯(lián)的操作系統(tǒng)社區(qū)。過去幾年,中科院軟件所在這兩個社區(qū)里,在高校、科研院所中影響力領先。
關于RISC-V 的機遇,需要用共治共享共建的開源基礎軟件的模式去打造,一是軟件所做了PolyOS,可謂開發(fā)板的萬能適配器,無論什么樣的RISC-V開發(fā)板,在PolyOS 上都可以快速地構建它的操作系統(tǒng)。另一個是面向開發(fā)者的萬能工具箱RuyiSDK,這和嵌入式有點關系,因為現(xiàn)在有很多的開發(fā)板或機器還需要用交叉編譯的方式去做。軟件所還做了一些與嵌入式相關的基礎設施,例如OpenOCD,包括ADB 調試工具鏈,2023年6 月底已經發(fā)布了第一個版本。
前期,中科院軟件所已完成了對RISC-V 的服務器和桌面辦公環(huán)境的軟件適配,保障了國產RISC-V 服務器和筆記本的率先批量出貨。
服務器和筆記本軟件方面,軟件所也已完成了很多適配,例如基于RISC-V 的傳統(tǒng)的視頻播放、收發(fā)郵件、客戶端、瀏覽器等等,也完成了很多服務端的項目,諸如openGDK 這些基礎的方面。
RISC-V 嵌入式生態(tài)的寒武紀即將到來,一定會有大量的RISC-V 相關的設備持續(xù)不斷地涌現(xiàn)。為了順應這一潮流,2023 年9 月算能生態(tài)部、軟件所PLC 實驗室、海外RVI 等單位在開展 “全球捐贈計劃”,捐贈1 萬塊RISC-V開發(fā)版給社群,特別是給高校去做教學科研,希望國內高校在RISC-V 嵌入式領域培養(yǎng)更多的人才。軟件所一直是把兩句話當做使命:①讓RISC-V 成為指令級的國際標準。②讓基礎軟件成為全人類的數(shù)字公共品。更希望中國在這次RISC-V 及開源變革中,能夠抓住機遇,占據(jù)戰(zhàn)略高地。
(本文來源于EEPW 2023年11月期)
評論