前言
近年來隨著國際形勢劇變,中國在多個關鍵技術領域都面臨著被“卡脖子”的難題,“國產”這一話題也成為了強技術領域的核心議題之一 , 操作系統自然不例外 。從采購現成產品到自研,再向蓬勃發展邁進,內部需求和外部環境的變化正在加速國內操作系統的進化升級 。與此同時 , 不少國產操作系統都在打造開源根區,匯聚各方力量,以此提升國產操作系統的話語權和地位 。
【大禹智芯王偉:從DPU角度,談談關于國產OS開源社區發展的思考】隨著開源池子里的水越來越多,國家層面、公司戰略層面對開源的重視程度越來越高,中國開源也逐漸迎來了發展的高光時刻 。作為國內領先的DPU企業,大禹智芯同樣借助于國內開源社區平臺,推動與DPU相關的新型架構在標準化、兼容性等方面的高速發展 。
在國產操作系統的技術發展和生態系統建設上,我們還有很長的路要走 。那么,國內開源社區之路又將走向何處?
以下文章內容來自大禹智芯軟件研發部負責人王偉在“新一代基礎軟件發展與國家數字經濟安全研討會”上的分享《中國服務器操作系統開源社區發展的思考》 。
本文試圖從企業級開發者的維度,從使用者和參與者的角度出發,結合自身DPU的運作環境以及開發過程中遇到的問題,分析當前操作系統的發展現狀與需求 , 進而探討國內開源操作系統社區的業務模式和生態發展 。
眾所周知 , DPU是一種專門為網絡數據處理而生的全新處理器類型,是繼CPU、GPU以后的云計算第三引擎 。其出現將推動計算架構從以算力為中心向以網絡通訊為中心進行轉變 。而DPU作為底層基礎設施組件,要完成這樣技術架構的升級和革新,勢必需要與上層的應用層進行銜接,同時涉及到龐大的生態協同和共建,所以開源操作系統也是DPU重點的一環 。
一、DPU的系統結構與運行環境
在上圖中,左圖是傳統服務器的結構,網絡數據直接交由CPU處理,CPU在處理業務的同時,還需要處理繁重的通信、虛擬化任務,使得CPU的有效使用率大幅度下降 。部署DPU以后,網絡數據則將首先經由DPU,目前常見的DPU使用形態是通過PCIE接口與Host相連,在DPU上運行一個獨立的操作系統,上面運行著用戶以及廠商的應用軟件,DPU會針對網絡、存儲、安全等領域對數據做一些預處理,讓應用程序更專注于處理業務邏輯 。
DPU是集芯片、硬件板卡、操作系統以及應用軟件的一整套解決方案 。從邏輯結構上看,DPU擁有與主機部分相同的邏輯處理單元 , 甚至擁有額外的加速單元,可以說 , DPU就是一臺部署在服務器內部的“服務器” 。但DPU的集成度更高 , 數據處理會經過特殊調度與加速單元 。DPU也可作為CPU的安全壁壘,保證CPU的數據和網絡安全 。
DPU可通過PCIE提供和相關功能,支持SRIOV、、NVMe等標準驅動,用戶通過合理的劃分,將部分邏輯跑在DPU OS上 , 協同配合控制DPU做數據處理,因此DPU OS需要有和Host OS相同的軟件兼容性,以此降低用戶的開發成本 。而且在DPU OS中,會存在一些與CPU OS通信的需求,因此這塊也是DPU OS標準化的一個很重要的部分 。
而對大禹智芯DPU來說,其應用場景可拓展至云計算、高性能組網、邊緣計算等廣泛領域 。這里我將以云計算領域作為例子,通過虛擬化和裸金屬這兩個常見的應用場景,詳述下DPU結構里數據的流動方向和處理過程 。
左圖為虛擬化場景,右圖為裸金屬場景
虛擬化場景中 , 在網絡虛擬化方面,Host對虛擬機提供網絡接口,Host會通過IOMMU做地址空間映射,讓DPU可以直接訪問虛擬機的物理地址,這樣虛擬機的數據流就可以 Host,直接與DPU交互 , DPU在接到網絡數據后會做一些網絡虛擬化方面的處理,常見的處理軟件是OVS 。
在DPU中,OVS分為和,軟件運行在DPU OS中 , 則運行在DPU的硬件邏輯中,兩者相互配合從而高效地完成網絡虛擬化處理 。對于存儲虛擬化側,DPU給虛擬機提供 blk/Nvme存儲接口,DPU在接到數據以后 , 會根據DPU OS運行的程序,選擇如何與遠端的存儲集群通信 。
而在裸金屬場景DPU側運行的軟件與虛擬機無差別 。
從例子中可以看到DPU OS側會運行OVS、DPDK、SPDK和Ceph RBD等應用程序 。
更廣泛地來看,DPU側會關聯許多開源應用,比如云平臺相關的、K8s、安全相關的SNORT、、等 。而Host側會有如KVM、QEMU等相關虛擬化軟件 , 這里只是簡單舉了幾個例子 。實際上整個DPU的生態是相當復雜且龐大的,這些都需要依賴于OS來提供生態相關軟件的運行環境 。
二、企業級開發需要什么樣的OS?
大禹智芯于2022年6月加入社區,并于同年8月份加入社區 。在深度參與以及社區共建過程中 , 我們聯合OS社區共同解決了一些我們在開發過程中遇到的問題,一類是兼容性的,一類是標準化的 。
首先是不同發行版多樣化導致的驅動兼容性問題 。因為內核不同版本間 , 一些接口結構有時候變動很大,在驅動上需要兼容不同的版本 。

文章插圖

文章插圖
其次是基礎庫,有一些庫在不同版本上也會存在接口結構兼容性問題 , 應用程序也需要提供不同版本庫的兼容版本 。除此之外,如之前提及,DPU會有與Host通信的需求 , 因為有應用無感知的期望,所以選擇走網絡是不合適的 。如果選擇走網絡,則需配置IP地址,為此需要一個PCIE物理通道加上協議來滿足要求,對上是一個統一的平臺,如果對下不同硬件廠商是私有實現,那么對于平臺來說兼容性就存在很大問題,并且用戶應用起來也有適配問題,因此這里需要將接口標準化,各DPU廠商提供統一私有驅動來實現這個邏輯 。
最后是云平臺結構的標準化 。在傳統結構中,的計算節點上一般會運行nova-及ovn-服務,nova-主要負責調用 api來創建及銷毀虛擬機 , ovn-負責配置OVS流表,更新端口狀態 。而在計算節點上使用DPU卡后,OVS、nova-及ovn-將運行在DPU內置的操作系統中 。
當前我們接觸較多的版本主要有和、、、以及國內發展較好的、、等,在選擇版本的時候我們的點一般會集中在兼容性、穩定性、安全性以及功能方面 。
在兼容性上,則主要包括硬件兼容性和軟件兼容性 。硬件上國產設備與國內的操作系統兼容性最好,軟件兼容性主要是接口兼容性 。
穩定性則體現在系統穩定性和接口穩定性上 。系統穩定性一般會在版本發布前被充分測試,軟件組件在發布前也會被大規模驗證過 。而接口穩定性體現在同一個版本在升級軟件時,不會出現軟件接口變動,從而導致操作系統上跑的系統軟件需要重新適配這個版本的操作系統 。
在安全性上,比如0day的及時更新以及如最近出現的轉向,對俄羅斯停止支持等事件,都面臨著不同程度的安全性挑戰 。
在功能方面,要求則是滿足行業需求 。
在服務器操作系統方面,目前大家應用最多的當屬,因為是在發布以后的版本,相當于的穩定性、兼容性、安全性以及功能都是和企業版相當的,并且有獨立社區支持,這對于生產環境來說,適用度較高 。
但轉向 以后,情況有所轉變 。本來算是的前置版本怎么樣在虛擬機安裝centos6,跑的軟件都在上驗證過,現在 變成了前置版本,并且是滾動更新的,這對穩定性和兼容性都存在一些挑戰 。例如,可能會存在本來一次0day的安全更新導致了軟件接口變動,那么跑在操作系統上的軟件就需要重新適配 。對于一個商用產品來講,功能確定后,對于操作系統的功能性更新需求一般沒那么大,所以對于企業級開發來講還是更傾向于一個長期穩定的版本 。
從另一個層面講 , 服務器的系統停服也造成相應的市場缺口,國產操作系統廠商需承接生態延續與技術兜底帶來需求,這也為國產操作系統帶來了更大的潛在機遇 。
三、對國產操作系統及開源社區的未來展望
從我個人來看,國產操作系統的發展前景廣闊 。首先,源是有保障的,源上提供的都是二進制程序 , 里面是有隱藏后門風險的,而國產操作系統都是國內的源 , 并且是國內社區維護的源,這個風險就沒有了 , 并且所有代碼都可經過一次安全掃描,再出對應的二進制包 , 代碼中隱藏的一些問題,也不用那么擔心 。
另外一個就是國內源更新效率很好,并且社區由國內搭建和運營,溝通效率比國外社區更高 。目前國內的幾個社區產出的操作系統以及操作系統上的軟件都是經過大規模生成環境驗證的,因此可靠性高,同時也與國產化也有很好的兼容性 。
國內操作系統的發展過程是源于國內ICT的高速發展,伴隨著互聯網行業掀起的熱潮,這一過程中大量的軟件人才聚集進入 , 深度參與并貢獻了眾多開源軟件,也有催生很多自有的軟件開源 。國內不少廠商由于自身場景的高復雜度 , 也都有自己維護的一個內部操作系統版本,隨著開源文化的逐步普及,各廠商也開始選擇把自維護的操作系統貢獻出來 , 由此形成了國內幾大開源操作系統社區 。
目前,一些國內能力很強的社區發展非常迅速,這說明國內開源環境和開發能力都是不錯的,但也帶來了一些問題 。比如社區多樣化導致的兼容性挑戰,從一個硬件廠商的視角來看 , 對于不同根社區,不同的版本,意味著硬件驅動需要兼容這些不同的內核版本,應用程序也存在不同的庫版本的適配問題 。另外,各操作系統有大多軟件都是重疊的,每個社區單獨維護,這樣可能會產生一些重復的工作,造成了開發者力量的浪費 。
這里我們簡單梳理一下操作系統社區的結構 。首先,OS根社區會根據社區的版本理念統籌規劃OS的發展路線,然后硬件廠商通過將驅動以及驅動依賴的框架提交給社區,以此達到硬件兼容操作系統的目的 。之后各個廠商根據自己的需求,會從根社區里選擇版本,然后構建自己的驗證版本,并持續將一些和回饋給社區 。開發者會根據操作系統路線,到開源社區中選擇軟件版本 , 并選擇一些做,同時開發者也在不斷維護選擇的軟件分支 , 并做 。因此社區的開發者會涵蓋很多領域 。
對于一個理想化的社區環境來講,我們期望的是各社區支持的行業是不重疊的 , 維護理念是不重疊的 。在維護理念方面,需要就注重功能最新和注重穩定性之間權衡 。一般來說,實驗室版本注重功能最新,以滿足其研究需求;生產版本一般注重穩定性好,以滿足生產環境 。對社區進行清晰劃分可以讓開發者力量充分應用到各個組件上,讓某一個項目有更多的人在參與,并能夠保證做著不重疊的工作 。另外 , 社區需要有一個良性、可持續發展的商業模式,不需要借助外力就能自給自足 , 這樣才能保證社區版可靠、穩定的質量 。
依托于龐大的用源社區 , 對于一些必要的開源項目,也可以建立一個國內分支,滿足國內需求怎么樣在虛擬機安裝centos6 , 并反饋到 。當然也可以根據國內的硬件現狀,開發一些個性化的內容,來統一硬件接口,以此激勵中國ICT行業的創新 。
總結
應當看到,雖然國外操作系統仍然占據市場主要地位 , 但國產操作系統也在開源開放的生態環境中迅速崛起 。開放開源的核心是軟件根技術創新,需要聯合開發者、社區、軟硬件上下游產業鏈企業來 , 共同構建多元生態 。而作為生態中的一員,大禹智芯也在為推動打造共建共享、開放共贏的社區環境貢獻力量,助力操作系統自主生態加速推進 。我們也期待著國內操作系統產業實現跨越式發展 , 迎來真正的高速發展 。
關于大禹智芯
大禹智芯一家專注于提供DPU產品設計、研發與服務的國家高新科技企業,目前已獲得“專精特新”中小企業認證 , 是北京市中關村高新技術企業 。
大禹智芯通過現有和自主研發的先進制程芯片,自研高性能IaaS組件和針對特定協議的加速能力,提供包括芯片、硬件產品、系統軟件、應用集成等一整套圍繞DPU/智能網卡的軟硬件產品及服務,致力于打造新一代的云計算引擎 , 助力用戶構建領先的 IT基礎設施,加速企業數字化轉型步伐 。
公司愿景是“以大禹之道釋放高速網絡的應用潛力,讓企業有選擇地享受技術紅利,助力企業又好又快地搭建領先的IT基礎設施” 。
本文到此結束,希望對大家有所幫助 。
