《openEuler:openEuler操作系統技術白皮書創新項目總覽(110頁).pdf》由會員分享,可在線閱讀,更多相關《openEuler:openEuler操作系統技術白皮書創新項目總覽(110頁).pdf(110頁珍藏版)》請在三個皮匠報告上搜索。
1、操作系統技術白皮書創新項目總覽(2023 年 6 月)OpenAtom openEuler 社區目 錄1 社區簡介 001openEuler 發展歷程大事件 0022 技術生態 003openEuler 覆蓋全場景的創新平臺 004openEuler 對 Linux Kernel 的持續貢獻 005openEuler 軟件包倉庫 005openEuler 開放透明的開源軟件供應鏈管理 005通過社區認證的 openEuler 發行版 006openEuler 開源操作系統架構圖 0073 場景化創新 008服務器009DPUDirect 直連聚合 009eNFS 多路徑 011hpcrunne
2、r 賈維斯智能助手 013WayCa scheduler 015云計算&云原生016HybridSched 虛擬化混合調度 016KubeOS 容器操作系統 017NestOS 云底座操作系統 019Rubik 容器混部引擎 020嵌入式022GearOS 齒輪操作系統 022MICA 混合關鍵性部署框架 025Rust-Shyper 嵌入式 Type-1 型虛擬機監視器 027UniProton 硬實時操作系統 029ZVM 嵌入式實時虛擬機 031邊緣計算033dsoftbus 分布式軟總線 033openEuler Edge 0354 基礎能力創新 037高效并發與極致性能038A-Tu
3、ne 智能調優引擎 038BiSheng JDK 畢昇 JDK 040etmem 內存分級擴展 043EulerFS 新介質文件系統 045Gazelle 輕量級用戶態協議棧 046GCC for openEuler 048HSAK 混合存儲加速套件 051iSulad 輕量級容器引擎 052Kmesh 高性能服務治理框架 054LLVM for openEuler 055OneAll 可編程內核 058StratoVirt 輕量虛機運行時 059編譯器插件框架 060目 錄強安全與高可靠061IMA 內核完整性度量架構 061kunpengsecl 鯤鵬安全庫 063secCryto 全棧國
4、密 065secGear 機密計算統一開發框架 067secPaver 應用程序安全策略工具 068sysMaster 系統管理大師 070極簡運維與開發072A-Ops 智能運維 072CPDS 容器故障檢測系統 075CPM4OSSP 操作系統軟件包集中管理平臺 077CTinspector 078eggo K8s 集群部署解決方案 079nvwa 內核熱升級 081PilotGo 運維管理平臺 082SysCare 系統熱服務 0845 開發者支持 086基礎設施087Compass-CI 087CVE Manager 漏洞管理 089EUR openEuler 用戶軟件倉庫 091OE
5、PKGS openEuler 軟件擴展倉庫 092openEuler 軟件包貢獻平臺 094Signatrust openEuler 軟件包簽名服務 095開發者工具096EulerLauncher 跨平臺 openEuler 開發者工具 096EulerTest 測試管理平臺 097pkgship 099QuickIssue 快捷的社區 issue 分類提交工具 100兼容性與技術評測101OSV 技術評測 101openEuler 兼容性全景清單 102openEuler 技術測評 104感謝 105001openEuler 操作系統技術白皮書創新項目總覽社區簡介002openEuler
6、操作系統技術白皮書創新項目總覽openEuler 社區,全稱為 OpenAtom openEuler 社區,是一個面向數字基礎設施操作系統的開源社區,簡稱 openEuler 或者 openEuler 社區。由開放原子開源基金會(以下簡稱“基金會”)孵化及運營。openEuler 是一個面向數字基礎設施的操作系統,支持服務器、云計算、邊緣計算、嵌入式等應用場景,支持多樣性計算,致力于提供安全、穩定、易用的操作系統。通過為應用提供確定性保障能力,支持 OT 領域應用及 OT 與 ICT 的融合。openEuler 社區通過開放的社區形式與全球的開發者共同構建一個開放、多元和架構包容的軟件生態體系
7、,孵化支持多種處理器架構、覆蓋數字基礎設施全場景,推動企業數字基礎設施軟硬件、應用生態繁榮發展。openEuler 發展歷程大事件2021.12openEuler 技術路線操作系統超過 100 萬套裝機2022.09openEuler 首次亮相全球頂級開源峰會 Open Source Summit Europe 20222022.12成立 openEuler 項目群,首屆openEuler 委員會成立,openEuler 社區可單獨接收項目捐贈2023.06 openEuler 項目群與四個項目簽署捐贈意向,項目名稱是:Vtopia agent、secScanner、KsPack、secShi
8、eld 2022.11榮獲世界互聯網大會 2022 世界互聯網領先科技成果獎2023.04openEuler 項目群接收由社區成員貢獻的5 個項目:GoStone、Ctinspector、ZVM、Rust-Shyper、QuickPool2021.09升級為數字基礎設施開源操作系統2020.12社區理事會正式成立3 萬套商業裝機2019.12openEuler 開源代碼正式上線openEuler 社區成立2022.03發布首個數字基礎設施全場景版本openEuler 22.03 LTS9 大伙伴發布基于 openEuler 22.03 LTS 構建的商業發行版,累計裝機 170+萬套2021.
9、11華為攜手社區伙伴捐贈 openEuler300+家企業加入社區2021.08100+家企業加入社區2019.09華為宣布 openEuler 開源2020.03首個社區 LTS 版本 20.03 發布麒麟軟件、普華基礎軟件、統信軟件、中科院軟研所發布商業版003openEuler 操作系統技術白皮書創新項目總覽技術生態004openEuler 操作系統技術白皮書創新項目總覽openEuler 作為一個操作系統發行版平臺,每兩年推出一個 LTS 版本。該版本為企業級用戶提供一個安全穩定可靠的操作系統。openEuler 也是一個技術孵化器。通過每半年發布一個創新版,快速集成 openEule
10、r 以及其他社區的最新技術成果,將社區驗證成熟的特性逐步回合到發行版中。這些新特性以單個開源項目的方式存在于社區,方便開發者獲得源代碼,也方便其他開源社區使用。社區中的最新技術成果持續合入社區發行版,社區發行版通過用戶反饋反哺技術,激發社區創新活力,從而不斷孵化新技術。發行版平臺和技術孵化器互相促進、互相推動、牽引版本持續演進。openEuler 覆蓋全場景的創新平臺 openEuler 是面向數字基礎設施開源操作系統。通過一套操作系統架構,南向支持多樣性設備,北向覆蓋全場景應用,橫向對接 OpenHarmony 等其他操作系統,通過能力共享實現生態互通。openEuler 突破性的實現了一套
11、OS 架構下,100%支持主流計算架構,是最佳支持多樣性算力的開源操作系統。openEuler 開創性的提出全場景操作系統理念,通過全棧原子化解耦和榫卯架構,實現版本靈活構建、服務自由組合。通過一套操作系統架構,實現了對服務器、云計算、邊緣計算和嵌入式等場景的支持。20.03首個創新版內核創新版云原生創新版20.0921.0321.0922.0322.0923.03openEuler 版本管理長生命周期版本openEuler 20.03 LTS openEuler 22.03 LTS創新版本openEuler 20.09 openEuler 21.03 openEuler 21.09openE
12、uler 22.09 openEuler 23.09長生命周期版本:每兩年發布一次,在創新版本基礎上提供長生命周期管理,維護性能,可靠性和兼容性創新版本:長生命周期版本之間每半年發布一次,集成 openEuler 以及其他社區最新版本技術進展。openEuler社區主線LTSLTSSP1SP1SP2SP2SP3SP3InformationTechnologyTechnologyCommunication10,000+主流應用:云原生,大數據,CDN,MEC,工業控制.通過分布式套件,實現 openEuler和 OpenHarmony 互通ARM,x86,RISC-V,SW-64,LoongAr
13、ch,Power100+整機,300+板卡CRM ERP BSS/OSS NFV DCS SCADA PLC .云計算邊緣計算服務器嵌入式主流應用場景 100%支持覆蓋全場景應用OpenHarmony生態互通,能力共享支持多樣性設備主流計算架構 100%覆蓋OperationaTechnology005openEuler 操作系統技術白皮書創新項目總覽openEuler 對 Linux Kernel 的持續貢獻openEuler 社區成員(華為、龍芯中科、麒麟軟件、統信軟件、飛騰、成都菁蓉聯創、中國電信、中國移動等)持續貢獻 Linux Kernel 上游社區,回饋主要集中在:芯片架構、ACP
14、I、內存管理、文件系統、Media、內核文檔、針對整個內核質量加固的 bugfix 及代碼重構等內容。openEuler 社區擁有社區伙伴超過905 家,貢獻者 1.4 萬,累計代碼合入超 PR 10 萬次,支持的軟件包達到3.4 萬,全球下載量達 138 萬。開源操作系統的構建過程,也是供應鏈聚合優化的過程。擁有可靠開源軟件供應鏈,是大規模商用操作系統的基礎。openEuler 從用戶場景出發,回溯梳理相應的軟件依賴關系,理清所有軟件包的上游社區地址、源碼和上游對應驗證。完成構建驗證、分發、實現生命周期管理。開源軟件的構建、運行依賴關系和上游社區,三者之前形成閉環且完整透明的軟件供應鏈管理。
15、openEuler 開放透明的開源軟件供應鏈管理華為在LinuxKernel5.10、5.14、6.1貢獻排名第一openEuler 社區及其他第三方開發者共同提供了豐富易用的軟件包,在最新的版本中,軟件包總數已超過 3.4萬。openEuler 社區根據這些軟件包的來源、質量屬性、維護方式等不同維度劃分為三類 openEuler 社區軟件倉庫,openEuler 社區版本使用者可以根據自己的需求配置不同的軟件倉庫;軟件包可能會隨其用量、穩定性、維護狀態等在不同的軟件倉庫中依據社區規則重新分布。openEuler 軟件包倉庫EPOL鏡像EUR/OEPKGS/.Desktop/SDS/DB/Bi
16、gData/.kernel/glibc/system/gcc/.核心包/基礎包openEuler LTS 和創新版正式發布的軟件包集合,該倉庫所有軟件包根據 openEuler 社區軟件質量屬性規范,均完成了 openEuler 社區全流程質量保證。擴展包作為 openEuler LTS 和創新版本軟件包倉庫的補充,為 openEuler社區提供盡可能豐富的軟件包。該倉庫軟件包源碼均需要來源于openEuler 社區,同時因受社區軟件包質量、技術成熟度、社區參與者投入等原因暫時無法完全滿足 openEuler 社區軟件包發布質量及維護支持要求。第三方包:開源/閉源openEuler 社區或第三
17、方提供的軟件倉庫及構建系統,可以兼容openEuler 各版本,并且不破壞 openEuler 各版本軟件包原有兼容性和依賴關系,作為 openEuler 軟件包倉庫的第三方軟件包補充,為 openEuler 社區使用者提供盡可能豐富的軟件包選擇。006openEuler 操作系統技術白皮書創新項目總覽通過社區認證的 openEuler 發行版(按版本認證時間排序)更多信息請訪問:https:/www.openeuler.org/zh/approve/伙伴名稱系統名稱超聚變數字技術有限公司超聚變服務器操作系統 FusionOS 22統信軟件技術有限公司統信服務器操作系統 V20(1050e)湖
18、南麒麟信安科技股份有限公司麒麟信安操作系統 V3(openEuler 版)SUSESUSE Euler Linux 2.0新華三技術有限公司H3Linux 2.0.2江蘇潤和軟件股份有限公司HopeEdge V1.0HopeStage V1.0南京烽火星空通信發展有限公司fitstarryskyos 22.06北京凝思軟件股份有限公司linxos 6.0.99天翼云科技有限公司CTyunOS北京拓林思軟件有限公司TurboLinux Enterprise Server 16 麒麟軟件有限公司銀河麒麟高級服務器操作系統 V10深圳華銳分布式技術股份有限公司ArchforceEuler 22.09
19、軟通動力信息技術(集團)股份有限公司ISSEL 22 LTS南方電網數字電網集團pegaspegasus server v1.0杭州安恒信息技術股份有限公司dasos e2.1.0中移(蘇州)軟件技術有限公司BC-Linux for Euler 21.10普華基礎軟件股份有限公司普華服務器操作系統 V5.1恒安嘉新(北京)科技股份公司EversecOS 20.03寶德計算機系統股份有限公司RedderStar V1.0聯通數字科技有限公司CULinux廣東中興新支點技術有限公司NewStartOS Server V6.02007openEuler 操作系統技術白皮書創新項目總覽openEule
20、r 開源操作系統架構圖云邊/KubeEdge開發者支持場景協同全場景使能單場景最優多場景能力協同共享基礎能力創新榫卯架構最優底座Linux內核Arm、x86、RISC-V、SW-64、LoongArch、PowerGPU(AMD、iluvatar、Jingmei)NPU實時內核安全內核數據庫大數據資源編排桌面系統工業系統.openEuleropenHarmony/軟總線開發者服務統一構建服務EulerMaker測試服務EulerTest漏洞管理服務CVE Manager依賴管理服務Pkgship門禁服務開發者工具適配遷移 x2openEuler跨平臺開發工具EulerLauncher快捷iss
21、ue提交Quickissue服務器場景eNFS/增強NFS協議DPUDirect/直連聚合 高性能與易擴展A-Tune/智能調優引擎etmem/內存分級擴展Gazelle/輕量級用戶態協議棧EulerFS/高性能SCM文件系統iSulad/輕量容器引擎StratoVirt/輕量虛擬化BishengJDK/高性能JDK系統Kmesh/高性能流量治理框架多內核架構多樣性算力云原生/邊緣場景kubeOS/容器OSRubik/容器混合部署引擎嵌入式場景ZVM/嵌入式實時虛擬機MICA/混合關鍵性部署架構強安全與高可靠secCrypto/全棧國密secPaver/安全策略工具sysMaster/系統管理
22、大師secGear/機密計算統一開發框架極簡運維與開發A-Ops/智能運維sysCare/系統熱服務eggo/一鍵部署平臺CPDS/容器故障檢測系統CPUGPU008openEuler 操作系統技術白皮書創新項目總覽場景化創新服務器009openEuler 操作系統技術白皮書創新項目總覽DPUDirect 直連聚合DPU SIG服務器云計算直連聚合特性(DPUDirect)旨在為業務提供協同運行環境,允許業務在 HOST 和 DPU 之間靈活卸載及遷移。當前已實現進程級別無感卸載功能,提供跨 HOST 和 DPU 的協同框架,支持管理面進程無需改造進行拆分,并近無感知卸載到 DPU上運行,卸載
23、后進程同時保持對HOST側業務進程的管理能力。直連聚合特性能夠極大降低業務在DPU場景下的卸載成本,簡化運維,大大降低后期維護成本。技術挑戰隨著智能網卡演進到 DPU/IPU 的形態,這一新興計算單元正逐漸成為云與數據中心基礎設施的重要組成部分。DPU/IPU 除了承擔 IO 數據面加速的需求外,也在逐漸增加對管理面及控制面組件卸載的支持。數據中心基礎設施相關管控組件全卸載到 DPU 能夠帶來更優的架構和更靈活的部署方式。當前主流卸載方案大都通過組件拆分完成卸載,拆分方案存在以下問題:組件拆分要求開發者對卸載組件具備代碼層級的了解。云廠商維護組件較多,相關組件卸載至DPU帶來的拆分工作量巨大。
24、拆分工作在組件升級時很難繼承,組件升級維護的成本較高,需要移植適配相關拆分代碼。項目介紹由如下架構圖所示,直連聚合特性在 HOST 和 DPU 的操作系統層面構建了一個跨主機無感協同框架,該框架為卸載到 DPU 側的管理面進程和 HOST 側的業務進程提供一致的運行時視圖,達到應用對卸載低感知或零感知的效果。用戶只需要少量適配管理面業務代碼,保證業務的軟件兼容性和演進性,降低組件維護成本。功能描述DPU 管理面無感卸載框架架構圖如下圖所示,通過在 HOST 及 DPU 操作系統層面構建一個跨主機無感協同框架,為卸載到 DPU 側的管理面進程和 HOST 側的業務進程提供一致的運行時視圖,達到應
25、用對卸載低感知或零感知的效果。PCIe通信通道/網絡跨主機無感協同框架-qtfs通用文件系統協同(open/read/write/ioctl/.)IPC協同掛載協同(mount/umount)epo11/poll協同fifo協同unix-socket協同HOSTVMContainershimQEMU processrexec serverrexec跨主機拉起、監控DPU管理面相關進程libvirtddockerdvirsh clientkubernetes服務器010openEuler 操作系統技術白皮書創新項目總覽應用場景DPU 管理面無感卸載方案可應用于云計算中全卸載場景的容器或虛擬化管理
26、面進程的 DPU 卸載;使用無感卸載方案,云上容器管理面進程(kubelet、dockerd)及虛擬化管理面進程(libvirtd)的卸載分別能夠減少 10K+代碼拆分工作量,業務卸載適配和維護的工作量降低近 20 倍,并且無需修改管理面業務邏輯,從而保證業務的軟件兼容性和演進性。從實現層面,本方案提供的機制可以結合定制策略實現不同場景下的進程無感卸載目標,方案包含的協同機制介紹如下:文件系統協同:支持跨主機文件系統的訪問,為 HOST 和 DPU 進程提供一致的文件系統視圖;除通用文件系統外還包括對 proc、sys、dev 等特殊文件系統的支持。IPC 協同:實現跨 HOST 和 DPU
27、進程間的無感通信,當前支持進程無感使用 fifo 及 unix domain socket 進行跨主機通信。掛載協同:對特定目錄下的掛載操作拉遠至 HOST 端,可用于適配容器 overlay 鏡像構造場景;支持卸載后的管理面進程為 HOST 側業務進程構造工作目錄,提供跨節點的統一文件系統視圖。epoll 協同:支持遠程普通文件及 fifo 類文件跨主機訪問的 epoll 操作,支持阻塞讀寫操作。進程協同:通過 rexec 工具進行遠程可執行文件拉起,能夠接管遠端拉起進程的輸入輸出流并進行狀態監控,保證兩端進程生命周期一致性。通過以上機制的結合,在不同場景下使用定制策略,可滿足管理面進程接近
28、無感、無需過多業務拆分改造的業務要求,并可達成卸載到 DPU 的業務目標。倉庫地址https:/ 操作系統技術白皮書創新項目總覽eNFS 多路徑 Kernel SIG服務器云計算非結構化數據高速增長,NAS 成為海量非結構化生產業務的最佳選擇。eNFS 通過建立多個鏈路進行 IO 負載均衡,并且在鏈路發生故障時將 IO 切換到其他可用路徑,提供高性能高可靠的服務。技術挑戰隨著應用場景擴張,數據重要性不斷提高,各行業對 NAS 存儲的可靠性和性能提出了更高的訴求。傳統 NFS 單個掛載點僅指定一個服務端 IP 地址,在使用過程中面臨以下挑戰:在網口故障或者鏈路故障場景下,掛載點無法訪問,導致業務
29、 IO 掛死,可靠性不足;單個掛載點性能受限于單個物理鏈路性能,重要業務存在性能瓶頸。NAS 存儲部署于公共區,主機訪問需要跨三層組網,一端故障時 IP 無法感知,當前依靠應用層手動掛載文件系統,雙活鏈路無法自動切換。項目介紹eNFS 協議是運行在 openEuler 操作系統內核中的驅動模塊,包含 NFS 協議層的掛載參數管理模塊和傳輸層多路徑管理模塊。eNFS 通過指定多個本地 IP 地址和多個服務端 IP 地址,實現不同 IP 地址建立多條 TCP/RDMA 鏈路,實現多路徑建鏈、故障恢復和倒換、負載均衡等特性。eNFS:面向生產業務,打造端到端高性能高可靠的分布式文件系統eNFS協議增
30、強NFS原生協議NFS One Socket受限于端口最大性能/A/ANFS-TCP+NconnectMulti Socket同一文件系統/目錄多鏈路聚合訪問每一個一文件系統/目錄多鏈路聚合訪問通過clientserver配合發揮集群最大性能發揮節點最大性能應用集群存儲集群(多節點/多控)/A/A/B/C/D/E/FMultipath NFS/RDMA or NFS/TCP服務器012openEuler 操作系統技術白皮書創新項目總覽應用場景倉庫地址https:/ 提供超越本地文件系統的高性能數據共享能力,并且為 client 到 Server 之間的故障提供解決方案,確保業務不中斷無感知,全
31、面替代原生 NFS。生產業務廣泛使用NFS協議,Client&Server端到端提供高可用,高性能方案是剛需文件共享虛擬化數據交換平臺渠道類應用票據影像內容管理平臺金融話單運營商醫療票據影像非結構化數據生產業務半導體 設計仿真產線 質檢研發陽油藏模擬分析大企業EDAPDMAI16K5%現網EDA設計:元數據+海量小文件業務數據海量目錄層級深單/多并發全隨機百KB小文件元數據目錄層級深操作類型多多并發全隨機數據特點數據寫25%元數據讀42%8K50%4K10%2K10%1K10%64K5%18K4%11K1%32K5%數據讀15%元數據寫18%生產業務(NFS)FS容器PoDPoDClient側
32、鏈路可靠性、并發性能Server存儲側權限/資源管控/災備/安全vStore1FS1FS2vStore2FS3FS4vStore3FS5FS6IP網絡FS相對于原生 NFS,eNFS 的三大創新是:IO 路徑軟硬件故障,秒級切換。單個 NFS 掛載點使用多個 IP 進行訪問,客戶端和服務端之間建立多條鏈路,解決跨控制器及站點的可靠性問題。所有配置僅用一個文件記錄,HPC 應用部署到不同的機器僅需修改配置文件。多鏈路聚合,提升主機并發訪問能力。網卡端口/多網卡/多節點聚合,大幅提升主機訪問性能。業界首創三層網絡雙活路徑自動切換,下層存儲故障或主機側 IO 超時,跨站點 AA 雙活主動切換,解決跨
33、引擎失效、主機無感知問題。服務器013openEuler 操作系統技術白皮書創新項目總覽hpcrunner 賈維斯智能助手 sig-HPC服務器hpcrunner 秉承著“讓人人都懂 HPC”的使命,致力于通過“依賴管理+性能分析+應用編譯+自動容器”的全閉環生態模式,為開發者、超算中心、科研機構等用戶提供一站式應用部署調優解決方案。技術挑戰HPC 應用的部署過程極為繁瑣,動輒十幾個依賴,每個依賴都要手工安裝,且需要不同的編譯器加上不同的并行通信庫配合編譯,而且普遍使用了大量硬件相關的并行技術和通信技術,導致不同架構之間遷移的復雜性陡增,部署和優化 HPC 應用會耗費大量精力,為應對這種挑戰,
34、設計并實現 HPC 部署調優助手,大幅降低部署成本,提高調優效率。項目介紹hpcrunner 的特性可以由兩大部分組成:HPC 依賴管理和 HPC 應用管理。HPC 的所有三方依賴統一使用 module 管理,只要提供一個安裝腳本,賈維斯會自動完成依賴的下載、解壓、編譯、安裝和包配置生成等工作,以非常優雅的方式解決了 yum 無法實現的多版本并存問題,而且也支持閉源組件的一鍵部署;HPC 應用管理則是第二項強大功能,賈維斯將所有 HPC 應用抽象為一個單體配置文件,只需要完成配置文件中編譯、環境、運行、批量運行的命令編寫,就可以使用賈維斯驅動應用的自動編譯和運行。具體來說賈維斯支持以下功能:支
35、持 Arm/x86 架構,已支持 100+依賴,60+應用一鍵部署安裝,采用業界權威依賴目錄結構管理海量依賴,自動生成module file。根據 HPC 配置實現一鍵編譯運行、一鍵 CPU/GPU 性能采集、一鍵 Benchmark。所有配置僅用一個文件記錄,HPC 應用部署到不同的機器僅需修改配置文件。HPC部署調優助手:賈維斯目標:部署成本降低80%調優效率提升20%一次部署、處處部署靈活的運行方式固化調優成果一鍵部署一鍵編譯一鍵運行一鍵Benchmark一鍵性能采集HelloHPC inARM/X86!開放部署調優經驗積累部署、調優文檔工程化海量依賴安裝腳本自動生成ModuleFile
36、海量調優patch一鍵采集性能數據集成跨平臺perf內置gemm、OMP、P2p基準性能測試,盡早發現環境問題編譯運行更“輕松”一張表:HPC應用配置化環境變量:自動生成環境變量,編譯運行自動加載自動生成Singularity容器服務器014openEuler 操作系統技術白皮書創新項目總覽應用場景應用場景 1:超算中心應用管理賈維斯可以方便地管理不同軟件包之間的依賴關系,并確保這些軟件包與所需的庫和工具鏈版本兼容,同時可以非常方便的實現編譯器和并行庫的升級??梢宰詣踊秃喕诙嗯_計算機上部署相同版本的軟件包,減少手動操作和避免出錯。應用場景 2:科學計算實驗賈維斯可以靈活地配置編譯選項,以滿
37、足特定應用程序的需要,并優化性能和資源利用率。允許用戶記錄軟件包的版本和構建選項,以確保在相同芯片架構的不同平臺上生成相同的二進制文件,從而保證結果可重復性;另外特別針對鯤鵬平臺引入鯤鵬軟件全棧(編譯器+數學庫+通信庫+遷移調優工具鏈),大幅提升鯤鵬平臺的應用運行效率。倉庫地址https:/ 日志管理系統自動記錄 HPC 應用部署過程中的所有信息。軟件本身無需編譯開箱即用,僅依賴 Python 環境。HPC 應用容器化-自動對接 Singularity 容器。服務器015openEuler 操作系統技術白皮書創新項目總覽WayCa schedulerWayCa SIG服務器WayCa sche
38、duler 提供了一套軟件庫和工具,在開源 Linux 基礎上,優化并完善了鯤鵬平臺的硬件拓撲導出和任務調度。技術挑戰當前服務器核數規模越來越大,緩存和互聯結構越來日趨復雜,不同廠商的服務器設計存在較大差異。雖然 Linux 作為通用操作系統能夠支持不同廠商的硬件,但是對于鯤鵬新引入的硬件拓撲架構支持不夠完善。如何在現有軟件平臺,充分發揮鯤鵬硬件性能是一個挑戰。應用場景WayCa scheduler 功能已經合入 openEuler 內核及相關用戶態工具,運行于鯤鵬服務器和 openEuler 操作系統的應用程序,諸如通用數據庫等場景,通過內核實現硬件拓撲信息的感知和調度優化,提升性能;在特定
39、應用場景,如 HPC 應用,可以通過 hwloc 等工具獲取拓撲信息,滿足應用本身的優化策略需求,從而提升應用性能。倉庫地址https:/ scheduler 基于鯤鵬硬件拓撲結構,通過結合和完善固件拓撲描述,并在 Linux 內核中完善硬件拓撲的建立和拓撲信息的導出,優化內核調度算法,讓應用程序能夠充分利用 CPU,Cache,內存,IO 外設等組件,提升系統硬件的利用率和內存帶寬,降低內存、Cache 及外設的訪問延遲,從而提升應用在鯤鵬服務器上的性能。當前,WayCa scheduler 主要包含如下特性:拓撲發現和導出:支持 Linux 的 ACPI 及拓撲驅動對于硬件 CPU、Cac
40、he、NUMA、設備拓撲的枚舉和建立,通過 sysfs 等內核接口實現硬件拓撲信息的檢索。調度支持和優化:基于硬件拓撲結構建立 Cluster 和 NUMA 調度域,修復調度器對于鯤鵬服務器支持的缺失和缺陷。任務調度能夠基于硬件的 Cluster 及 NUMA 實現負載均衡和遷移,充分利用 L3 Cache 和內存資源,優化系統的延遲和吞吐量。用戶態拓撲支持:考慮 Linux 內核主要面向通用場景,而特定場景及應用需要根據自身的業務特點和需求基于硬件進行優化,比如實現特定的 CPU 或設備的綁定策略??紤]這部分應用的需求,通過對 hwloc 的適配為應用提供硬件拓撲信息的支持。OS Kerne
41、l固件固件拓撲上報支持(ACPI/Device Tree)hwlocCommon applicationLinux拓撲驅動支持arch topologyarch numasysfs拓撲導出調度域建立拓撲感知調度遷移和喚醒負載均衡云計算&云原生016openEuler 操作系統技術白皮書創新項目總覽Virt SIGHybridSched 虛擬化混合調度云計算云數據中心資源利用率低是行業普遍存在的問題,提升資源利用率已成為一個重要的技術課題。將業務區分優先級混合部署(簡稱混部)運行是典型有效的資源利用率提升手段。HybridSched 是虛擬機混部全棧解決方案,包括增強的 OpenStack 集群
42、調度能力、全新單機 QoS 管理組件 Skylark 以及內核態基礎資源隔離能力。其中 Skylark 是一種高低優先級虛擬機混部場景下的 QoS 感知資源調度器,在保障高優先級虛擬機 QoS 前提下提升物理機資源利用率。技術挑戰混部的核心技術是資源隔離控制。服務器資源是多維度的,上層業務對硬件資源的需求處于動態變化中。此外虛擬機內部業務不可見,底層調度邏輯難以感知業務受損程度。這兩方面現狀對虛擬化平臺混合調度技術提出了很大挑戰。應用場景業務可根據時延敏感性分為高優先級業務和低優先級業務,將業務區分優先級混合部署以提高資源利用率。高優先級虛擬機業務推薦:時延敏感類業務,如 web 服務、高性能
43、數據庫、實時渲染、機器學習推理等。低優先級虛擬機業務推薦:非時延敏感類業務,如視頻編碼、大數據處理、離線渲染、機器學習訓練等。倉庫地址https:/ 集群調度增強:增強 OpenStack Nova能力,支持優先級語義調度。功耗控制:通過對低優先級虛擬機的 CPU 帶寬進行限制,以此達到降低整機功耗的同時保障高優先級虛擬機 QoS。Cache 及內存帶寬控制:支持對低優先級虛擬機的 LLC 和內存帶寬進行限制,當前僅支持靜態分配。CPU 干擾控制:支持 CPU 時間片 us 級搶占及 SMT 干擾隔離。同時具有防優先級反轉能力。openEuler HybridSched Kernelcgrou
44、p/resctrl/procCPU干擾隔離防饑餓及優先級反轉多類型分配控制機制RDTMPAMSMT隔離硬優先級Cache/MEM帶寬干擾隔離openEuler HybridSched OpenStackKeystoneGlanceNovaNeutron混部資源模型優先級語義全局綁核CinderopenEuler HybridSched QoS Manager(Skylark)QoS分析CinderNeutronNova compute功耗數據采集干擾定位干擾量化QoS控制Libvirt優先級定義控制空間搜索CPU帶寬控制云計算&云原生017openEuler 操作系統技術白皮書創新項目總覽Ku
45、beOS 容器操作系統sig-CloudNative服務器云計算邊緣計算KubeOS 是面向云原生場景的容器操作系統,通過 Kubernetes 統一納管容器和節點 OS,提供 API 運維化、原子化、輕量安全的云原生場景下集群 OS 的運維方案。技術挑戰云原生場景中,容器和 kubernetes 的應用越來越廣泛,然而隨之而來的就是云原生場景下的 OS 的管理問題:云原生場景下應用紛紛容器化,對 OS 有著新的挑戰,傳統的 OS 形態過重,不再完全適用。容器和 OS 的運維管理的分別獨立進行,往往會出現管理功能冗余,兩套調度系統協調困難的問題。單獨的包管理會導致集群容器 OS 版本零散狀態不
46、統一等問題,缺乏統一的容器 OS 管理方式,容器 OS 的版本管理困難。為解決以上問題,我們提出了 KubeOS,一套通過 Kubernetes 統一納管容器和 OS 的 OS 運維方案。項目介紹功能描述KubeOS 基于 openEuler 提供了一套云原生場景下 OS 運維管理的解決方案?;?openEuler 構建輕量化的容器操作系統,并將 OS 作為組件接入到 Kubernetes 中,使得可以通過 Kubernetes 統一對容器和 OS 進行原子化運維管理。KubeOSOS 統一運維管理Podkube-apiserverMaster NodeUpgrade OSOS Image
47、CreationclusterImage RegistrydeployPodos-operatoros-operatorKubeOS-scriptsKubeOS OCl imageKubeOS qcow2 imageos-proxyKubeOS UpgradePodPod(User)OS-proxya1a2.os-agentKubeOSWorker Nodes云計算&云原生018openEuler 操作系統技術白皮書創新項目總覽應用場景KubeOS 主要應用在云原生場景的基礎設施中,提供云服務的基礎運行環境,助力云廠商,通信行業客戶解決云原生場景OS 運維難題。倉庫地址https:/ 的主要特
48、性如下:統一管理:KubeOS 將 OS 作為組件接入到集群中,使用 kubernetes 統一管理 OS 和業務容器,統一管理所有節點 OS。協同調度:OS 變更前感知集群狀況,實現業務容器和 OS 的協同調度。API 運維:使用 kubernetes 原生的聲明式 API 管理運維 OS,運維通道標準化。原子管理:結合 kubernetes 生態,實現 OS 的原子升級/回滾能力,保證集群節點一致性。輕量安全:僅包含容器運行所需組件,減少攻擊面和漏洞,提高安全性,降低 OS 運行底噪和重啟時間,只讀根文件系統,保證系統不被攻擊和惡意篡改。云計算&云原生019openEuler 操作系統技術
49、白皮書創新項目總覽NestOS 云底座操作系統sig-K8sDistro服務器云計算邊緣計算嵌入式NestOS 是在 openEuler 社區孵化的云底座操作系統,集成了 rpm-ostree 支持、ignition 配置等技術,采用雙根文件系統、原子化更新的設計思路,使用 nestos-assembler 快速集成構建。并針對 K8S、OpenStack 等平臺進行適配,優化容器運行底噪,使系統具備十分便捷的集群組件能力,可以更安全的運行大規模的容器化工作負載。技術挑戰云原生場景中,容器和kubernetes等相關技術的應用越來越廣泛,隨之而來出現了多種多樣的容器運行時及相關管理軟件,因此在
50、實際使用中容易出現,容器技術與容器編排技術實現業務發布、運維時與底層環境高度解耦而帶來的運維技術棧不統一,運維平臺重復建設等問題。應用場景NestOS 適合作為以容器化應用為主的云場景基礎運行環境,解決了在使用容器技術與容器編排技術實現業務發布、運維時與底層環境高度解耦而帶來的運維技術棧不統一,運維平臺重復建設等問題,保證了業務與底座操作系統運維的一致性。倉庫地址https:/ 開箱即用的容器平臺:NestOS 集成適配了 iSulad、Docker、Podman 等主流容器引擎,為用戶提供輕量級、定制化的云場景 OS。簡單易用的配置過程:NestOS 通過 ignition 技術,可以以相同
51、的配置方便地完成大批量集群節點的安裝配置工作。安全可靠的包管理:NestOS 使用 rpm-ostree 進行軟件包管理,搭配 openEuler 軟件包源,確保原子化更新的安全穩定狀態。友好可控的更新機制:NestOS 使用 zincati 提供自動更新服務,可實現節點自動更新與重新引導,實現集群節點有序升級而服務不中斷。緊密配合的雙根文件系統:NestOS 采用雙根文件系統的設計實現主備切換,確保 NestOS 運行期間的完整性與安全性。Application and ServicePaaSPhysicalVirtualPrivatePublicNestOSApplication and
52、ServiceiSuladdockerpodman.云計算&云原生020openEuler 操作系統技術白皮書創新項目總覽Rubik 容器混部引擎sig-CloudNative服務器云計算邊緣計算Rubik 是一個自適應單機算力調優和服務質量保障的容器混部引擎,通過對資源進行合理調度與隔離,在保障關鍵業務服務質量的前提下實現節點資源利用率提升。技術挑戰當前全球云基礎設施服務支出費用龐大,然而數據中心用戶集群的平均 CPU 利用率卻很低(僅為 10%20%),存在巨大的資源浪費,帶來了極大的額外運維成本,成為制約各大企業提升計算效能的關鍵問題。因此,提升數據中心資源利用率是當前急需解決的一個重要
53、問題。將在線作業與離線作業混合部署,以空閑的在線集群資源滿足離線作業的計算需求能夠有效提升數據中心資源利用率,成為當今學術界和產業界的研究熱點。然而,將多種類型業務混合部署能夠顯著提升集群資源利用率,也帶來了共峰問題,會導致關鍵業務服務質量(QoS)受損。因此,如何在提升資源利用率之后,保障業務 QoS 不受損是技術上的關鍵挑戰。項目介紹功能描述Rubik 是 openEuler 提 供 的 容 器 混部引擎,提供一套自適應的單機算力調優和服務質量保障機制,旨在保障關鍵業務服務質量的前提下,提升節點資源利用率。Rubik 字面意思為魔方,魔方由 Rubik 在 1974 年發明,故 Rubik
54、 既是人名也指代魔方,在我們的解決方案中,Rubik 象征著能夠將服務器管理的有條不紊。Rubik 混部解決方案Kubernetes集群工作節點待調度業務注入式業務特征分析QoS模型訓練預分析apiserver干擾感知調度器在線業務離線業務host kernelrubik性能調優隔離搶占資源預測指標采集干擾識別控制自定義擴展應用畫像系統云計算&云原生021openEuler 操作系統技術白皮書創新項目總覽應用場景Rubik 在云業務容器混合部署應用比較廣泛,應用場景涵蓋 Web 服務、數據庫與大數據、AI 等混部場景。助力互聯網、通信等行業客戶實現數據中心資源利用率突破 50%。倉庫地址htt
55、ps:/ kubernetes 系統:基于原生 kubernetes 的擴展接口進行能力擴展。兼容 openEuler 系統:自動使能 openEuler 提供的增強特性(如內核分級資源隔離技術),對于其他 Linux 發行版,由于存在部分內核特性缺失,僅提供受限管理能力。運行時干擾識別控制:提供對關鍵業務性能干擾實時檢測能力、干擾源快速定位能力以及干擾快速控制能力。自適應動態調優:例如對關鍵業務性能優化,使其能能更高效穩定的運行;動態在離線資源配比調優,減少關鍵業務QoS 違規等等。支持自定義擴展:支持高級用戶針對特定業務場景開發自定義擴展插件。嵌入式022openEuler 操作系統技術白
56、皮書創新項目總覽GearOS 齒輪操作系統sig-industrial-control邊緣計算嵌入式GearOS,即齒輪操作系統,是由 openEuler 開源社區 Industrial-Control SIG 孵化的一款面向工業控制領域的實時增強操作系統,專注于操作系統實時性、可靠性,基于openEuler Embedded開源操作系統,使用Yocto構建,可應用于汽車控制、機器人控制、PLC 控制、機床控制等領域。技術挑戰信息技術與工業系統全方位融合并形成產業及應用生態是工業向智能化發展的必由之路。二者的融合將帶來智能化提升,如智能化生產、網絡化協同、個性化定制、服務化轉型;智能制造便是二
57、者融合的產物。為實現信息技術與工業系統的融合,大數據、AI、機器人控制、端云協同等技術不可或缺。這些技術深度依賴于 Linux 生態,而工業系統由于其獨特的應用場景,對實時性、確定性以及功能安全方面有著強烈的需求,則更加偏向于使用 RTOS 系統。而 Linux 系統設計之初更偏向于系統吞吐率、公平調度等特性,對實時性等方面考慮欠佳。工業系統與信息技術融合在技術實現上成為一個難題。而 GearOS 系統在某些程度上能夠解決這個問題。項目介紹GearOS 版本主要基于 Arm64 架構,主要包含兩個內核和兩個文件系統鏡像。兩個內核:分別為支持 Preempt_RT 實時特性與Jailhouse
58、虛擬化的內核和支持 Xenomai 實時特性的內核,均基于openEuler 4.19內核改造而來,大小為 8MB。兩個文件系統鏡像:分別為緊湊型文件系統鏡像和標準文件系統鏡像。其中緊湊型文件系統鏡像使用 BusyBox 制作,大小為 5.4MB;標準文件系統鏡像未使用 BusyBox。系統主要特性 支持飛騰 2000/4、鯤鵬 920、TI AM335X、Qemu-Arm64、x86 等平臺 內核最低可做到 3.3MB,支持串口、網絡、塊設備、USB、PCIe 等驅動 文 件系統最低可做到 5.4MB 啟動時間小于 5S 支持 Preempt_RT 和 Xenomai 實時方案 支持 Jai
59、lhouse 虛擬化 緊湊型文件系統鏡像包含登錄驗證、Udev、SSH、Xenomai 庫、rt-tests 工具集 標準型文件系統鏡像增加 Python、Perl、OpenSSL、Sqlite、RPM 包管理等可選功能基礎功能XenomaiCobaltPreempt _RT登錄驗證Xenomai庫USBGPIOPCleEthemetI-pipe飛騰2000/4鯤鵬920X86TI AM335xQemuEthemetGPUBlockUARTUARTGPIOEthemetUSBGPUGPIOJailhouseBleckPCleUARTrt-testsLibcSSHUdev標準版鏡像PythanR
60、PM包管理PerlOpenSSLLibModbusEtherCATOPCUATSNHSR/PRPNETCONF/YANG數控機床工機床閘機嵌入式023openEuler 操作系統技術白皮書創新項目總覽工業相關附加特性 支持 LibModbus 協議 支持 EtherCAT 協議 支持 OPC UA 協議 支持 TSN 支持 HSR/PRP 支持 NETCONF/YANG實時相關特性在 FT-2000/4、鯤鵬 920 硬件設備,使用 openEuler 4.19 內核,使用 cyclictest 測試工具對比測試結果。虛擬化相關特性1.對宿主機影響評估結果:使用 Unixbench、lmben
61、ch、iozone、netperf 工具進行裸機測試和開啟 Jailhouse 虛擬空載 Linux 的對比測試,測試結果虛擬化對 CPU、內存、存儲、網絡、IO 幾乎沒有性能損耗 使用飛騰 2000PC 平臺測試 Jailhouse 對 Guest Linux 總線數據穿透的性能影響 Ethernet 網卡穿透使用 iperf 和 netperf 多維度測試,幾乎沒有性能損耗 PCI-USB 設備穿透使用 dd、hdparm、iozone 多維度測試,幾乎沒有性能損耗 Ivshmem 網絡傳輸使用 iperf 測試,性能優于千兆網卡平臺測試環境(空載)非CPU隔離CPU隔離測試參數:cycl
62、ictest-m -h 100-q-l 10000000-i100-t 1-n-p 99鯤鵬 920openEuler 20.03 LTS sp1GPOSLinux only763Linux+xenomai7458RTOSxenomai351GearOSGPOSLinux+xenomai76Linux+preempt_rt43RTOSxenomai11FT 2000/4openEuler 20.03 LTS sp1GPOSLinux only1384Linux+xenomai63313RTOSxenomai74GearOSGPOSLinux+xenomai3618Linux+preempt_r
63、t107RTOSxenomai21嵌入式024openEuler 操作系統技術白皮書創新項目總覽應用場景目前該項目在南方電網項目的工控機設備、智能交通項目的閘機設備、某公司數控機床進行積極推廣。倉庫地址https:/ Guest 系統影響 中斷響應,測試 500 萬次外部中斷,avg 從 290ns 增加到 1200ns,max 從 2400ns 增加到 2500ns 中斷抖動約 1000ns Ethernet 網卡穿透使用 iperf 測試 10Mbit 鏈接模式,幾乎沒有性能損耗(采用 lwip,只能使用 10Mbit 帶寬模式)I2C 總線數據穿透,測試 1000 次取平均值,幾乎沒有性
64、能損耗 SPI 總線數據穿透,測試 1000 次取平均值,幾乎沒有性能損耗 CAN 總線數據穿透,測試 1000 次取平均值,幾乎沒有性能損耗嵌入式025openEuler 操作系統技術白皮書創新項目總覽MICA 混合關鍵性部署框架sig-embedded邊緣計算嵌入式MICA 是一個面向多核 SoC 依托硬件輔助虛擬化、TEE、異構等技術的支持以實時與非實時 OS,安全與非安全 OS 為代表的多 OS 高效混合部署的框架,可以充分發揮各個 OS 的特點以滿足嵌入式系統以安全、實時、富功能為代表的多目標約束。技術挑戰對于當前的嵌入式系統,一方面由于硬件越來越強大,可以有力支撐運行像 Linux
65、 這樣復雜的操作系統;另一方面應用也變得越發復雜,包含了越來越多的需求,例如互聯的需求、AI 的需求、迭代升級的需求等等。面對復雜而繁多的需求,實踐中也往往需要像 Linux 這樣強大的操作系統來滿足。但同時也必須認識到,嵌入式系統與一般的計算機系統的不同之處在于,其往往有資源限制、功耗限制、實時性、可靠性、安全性等方面的約束。這些約束并沒有隨著系統的復雜化而變化。對于這些約束,受限于自身的復雜架構 Linux 并不能很好的滿足,而往往是以實時操作系統乃至裸金屬運行時為代表的相對精簡的專用系統的用武之地。對于嵌入式系統而言,實現包含 Linux 和實時操作系統在內的多個 OS 混合部署以滿足以
66、安全、實時、富功能為代表的多目標約束,主要面臨的挑戰有三類:部署:多個 OS 如何高效地部署在同一個多核 SoC 上,可能是同構多核,也可能是異構多核,彼此間高效協同工作,共同實現全系統功能 隔離:多個 OS 間彼此間互補不影響,一個 OS 出現問題,如崩潰、故障等不會影響到其他 OS,特別具有高安全、高可靠、高實時要求的 OS 調度:多個 OS 能夠充分利用硬件資源,有較高的資源利用率項目介紹MICA 是一個面向多核 SoC 依托硬件輔助虛擬化、TEE、異構等技術的支持以實時與非實時 OS,安全與非安全OS 為代表的多 OS 高效混合部署的框架,可以充分發揮各個 OS 的特點以滿足嵌入式系統
67、以安全、實時、富功能為代表的多目標約束。MICA 的總體架構圖如下圖所示:OS1OS2OS3OS4生命周期管理裸金屬異構TEE.嵌入式虛擬化輕量級容器LibOs跨OS通信MICA(混合關鍵性部署框架)彈性融合底座服務化框架多OS基礎設施嵌入式026openEuler 操作系統技術白皮書創新項目總覽應用場景MICA 項目正在孵化中,其主要應用場景是制造、能源、機器人等領域中的中高端復雜嵌入式系統。MICA 當前已經支持基于 openAMP 的裸金屬形態,和基于 jailhouse 的分區虛擬化形態,未來將與 ZVM 和 Rust-Shyper 項目配合。倉庫地址https:/ 需要與彈性融合底座
68、配套使用,融合彈性底座是為了在多核 SoC 上實現多個操作系統/運行時共同運行的一系列技術的集合,包含了裸金屬、嵌入式虛擬化、輕量級容器、LibOS、可信執行環境(TEE)、異構等多種實現形態。不同的形態有各自的特點,例如裸金屬可以得到最佳的性能、嵌入式虛擬化可以實現更好的隔離與保護、輕量級容器則有更好的易用性與靈活性等等。構建在融合彈性底座之上,通過一套統一的框架屏蔽下層融合彈性底座形態的不同從而實現 Linux 和其他 OS/運行時便捷地混合部署,依托硬件上的多核能力使得通用的 Linux 和專用的實時操作系統有效互補,從而達到全系統兼具兩者的特點,并能夠靈活開發、靈活部署?;旌详P鍵性部署
69、框架的組成主要有四大部分:生命周期管理、跨 OS 通信、服務化框架和多 OS 基礎設施。生命周期管理主要負責從 OS(Client OS)的加載、啟動、暫停、結束等工作;跨 OS 通信為不同 OS 之間提供一套基于共享內存的高效通信機制;服務化框架是在跨 OS 通信基礎之上便于不同 OS 提供各自擅長服務的框架,例如 Linux 提供通用的文件系統、網絡服務,實時操作系統提供實時控制、實時計算等服務;多 OS 基礎設施是從工程角度為把不同 OS 從工程上有機融合在一起的一系列機制,包括資源表達與分配,統一構建等功能。嵌入式027openEuler 操作系統技術白皮書創新項目總覽Rust-Shy
70、per 嵌入式 Type-1 型虛擬機監視器Virt SIG嵌入式Rust-Shyper 是一款基于 AArch64 架構、用 Rust 編寫、面向無人車、機器人等嵌入式場景的 Type-1 型虛擬機監控器。其設計目標是在提高資源利用率的同時,保障虛擬機實時性、隔離性與內存安全,同時支持虛擬機遷移和監控器動態升級兩種熱更新機制,能夠在不影響虛擬機運行的情況下,動態修復軟件漏洞。技術挑戰物聯網的不斷發展使得現代嵌入式系統正在朝著通用系統和混合關鍵系統的方向演化,其承載的任務往往有著不同的可靠性、實時性和驗證級別,如何保證不同關鍵性任務之間的相互隔離以及實時性成為了一個難題。虛擬化技術提供的資源隔
71、離手段成為了解決上述問題的關鍵,但嵌入式虛擬化也面臨一些挑戰:如何保證虛擬機之間的隔離性和安全性,防止惡意攻擊;如何保證虛擬機之間的通信效率和實時性,避免延遲或者抖動;如何保證Hypervisor 本身的穩定性和可靠性,防止出現故障。項目介紹Rust-Shyper 由北京航空航天大學王雷教授團隊開發,2023 年 4 月捐獻給 openEuler 社區,在 SIG-Virt 持續孵化。Rust-Shyper 是一款基于 AArch64 體系結構的 Type-1 虛擬機監控器,整個結構包含三個層級:最底層為硬件層級,對應 Armv8 EL3 固件層級;中間層為虛擬機監控器層,對應 Armv8 E
72、L2 虛擬化層級,該層級也是 Rust-Shyper 代碼所處的特權層級;最上層為虛擬機層級,對應 Armv8 EL1 和 EL0 層級。為了符合嵌入式應用的需求,Rust-Shyper 通過提供不同的虛擬機類型,來提供差異化的虛擬化服務,Rust-Shyper 中支持管理虛擬機(MVM)、客戶虛擬機(GVM)、實時虛擬機(RTVM)等三類虛擬機。管理虛擬機(Native Linux)Rust-Shyper網絡服務設備驅動Rust-Shyper內核模塊設備驅動GIC驅動設備驅動Virtio前端驅動Rust-Shyper命令行工具通用計算任務實時計算任務通用虛擬機(Vanilla Linux)實
73、時虛擬機(RTLinux/Bare-metal APP)UserKernelUserKernelUserKernelRust-Shyper虛擬機陷入捕獲處理數據中止異常模擬設備訪問HVC中斷SMC內存管理模擬設備中斷控制器直通Rust異步任務虛擬機遷移動態升級異常處理中斷控制上下文切換通用時鐘vCPU調度電源管理硬件共享設備CPU0CPU1CPU2CPU3獨占設備嵌入式028openEuler 操作系統技術白皮書創新項目總覽應用場景Rust-Shyper 項目正在孵化中,其主要應用場景是制造、能源、機器人、汽車電子等領域中的中高端復雜嵌入式系統。倉庫地址https:/ 的設計理念和特點:內存安
74、全:利用 Rust 語言類型系統和內存安全模型,保證 Hypervisor 的內存安全;強隔離性:利用硬件輔助虛擬化,實現虛擬機間的安全隔離和故障隔離;豐富的設備模型:為提高資源利用率,實現了直通設備、中介傳遞和全模擬等多種設備模型;實時虛擬化:針對性能需求,實現資源直通以及實時虛擬化技術;虛擬機監控器熱更新技術:實現了虛擬機遷移和監控器動態升級兩類視器熱更新機制。嵌入式029openEuler 操作系統技術白皮書創新項目總覽UniProton 硬實時操作系統sig-embedded邊緣計算嵌入式UniProton 是一款硬實時操作系統,具備極致的 us 級別的低時延和靈活的混合關鍵性部署特性
75、,可以高效地與以openEuler Embedded 為代表的通用 OS 混合部署,其主要適用于工業控制場景,既支持微控制器 MCU,也支持算力強的多核 CPU。技術挑戰工業控制應用場景對操作系統有著強烈的確定性時延要求,Linux 由于其體量大、功能復雜等原因無法達成該目標,所以業界一直在推出小型的嵌入式操作系統以滿足工業場景訴求。UniProton 憑借其輕量級內核、極致性能優化、功能可裁剪以及混合關鍵性部署,能夠適應多種場景,并在各場景下達成極致低時延目標。項目介紹UniProton 結合了華為長期在 CT 領域硬實時場景的經驗,于 2022 年 6 月開源到 openEuler 社區,
76、在 sig-embedded 孵化。應用領域&場景領域中間件基礎中間件混合關鍵性部署硬件平臺OSPOSIX混合關鍵性部署(openamp)文件系統Linux網絡框架驅動框架x86ARMIntel樹莓派上海海思鯤鵬飛騰通信調度輕量級線程管理內存FSC內存算法上下文切換匯編指令級切換優化SMP事件通信UniProton(硬實時內核)小型化安全可靠可維可測功能深度裁剪cpup異常接管棧保護信號量互斥量隊列讀寫鎖工業航空航天CT服務/特種機器人機器人中間件工業控制中間件工業控制連接組件.嵌入式030openEuler 操作系統技術白皮書創新項目總覽應用場景UniProton 提供硬實時解決方案,廣泛適
77、用制造、醫療、能源、電力、航空航天等應用場景,滿足工業生產、機器人控制等確定性時延訴求。倉庫地址https:/ 的主要架構如上圖所示,其關鍵特性如下:低時延:確定性時延:最大調度時延滿足業務需求 極致性能:us 級任務調度、中斷時延 輕量化:可在幾十 KB 內存環境上運行通用性:POSIX 兼容:遵循 POSIX 標準 IEEE Std 1003.1 -2008 提供接口 主流架構支持:支持 x86、ARM64、Cortex-M 等多種指令集架構,可在 Intel、樹莓派等典型芯片上運行 多核處理器支持:高效使用多核算力,同時仍具備低延時能力易用性:功能定制化:功能可裁剪 維測功能:cpup、
78、異常接管 混合關鍵部署:復用 Linux 能力,并提供 RTOS 能力豐富中間件:驅動框架:提供統一的標準化驅動開發框架,提升驅動開發效率 網絡框架:支持豐富的網絡協議棧,并提供標準網絡接口 工業中間件:支持對接多種工業協議和開發標準,可提供 EtherCAT 等總線通訊能力嵌入式031openEuler 操作系統技術白皮書創新項目總覽ZVM 嵌入式實時虛擬機sig-Zephyr邊緣計算嵌入式ZVM 是一款基于頂級開源實時操作系統 Zephyr 結合硬件輔助虛擬機化技術的嵌入式實時虛擬機,支持包含 Linux、實時操作系統和 baremetal 程序在內的多個運行時混合部署以及混合關鍵性調度。
79、技術挑戰嵌入式實時虛擬化技術是一種允許在單個硬件平臺上同時運行多個操作系統、并保持確定性和時間關鍵性能的技術,該技術可為嵌入式系統開發帶來許多好處,例如硬件整合、系統隔離、系統靈活可靠性、安全性和可擴展性等。嵌入式實時虛擬化可支持智能汽車、數控機床及 5G 設備等高級應用。開發嵌入式實時虛擬化軟件面臨著一些挑戰。第一個挑戰是如何確保不同 Guest OS 間的隔離和安全性,尤其是當它們具有不同級別的關鍵性和可信度時。第二個挑戰是如何在不同 Guest OS 間有效地共享或分配 I/O 設備,這可能需要設備模擬或直通機制。第三個挑戰是如何確保作為 Guest OS 運行的 RTOS 具備低延遲和
80、高吞吐量。嵌入式實時虛擬化軟件需要通過提供強制的隔離和安全、高效的中斷處理、靈活的 I/O 設備管理機制及硬件支持來應對這些挑戰。項目介紹ZVM 由湖南大學嵌入式與網絡計算湖南省重點實驗室主任謝國琪教授團隊開發,2023 年 4 月捐獻給 openEuler 社區,在SIG-Zephyr 持續孵化?;诩軜嬘布摂M化支持與虛擬化主機拓展支持,ZVM 實現了 Guest OS 間的隔離、設備分配及中斷處理,保證了系統的安全與實時。ZVM 總體功能有三個部分:安全隔離、設備管理和系統性能提升。安全隔離:利用虛擬化技術實現不同特權級的應用支持,確保不同 Guest OS 間的隔離和安全,尤其是當它們
81、具有不同級別的關鍵級時。為每個 Guest OS 分配不同的虛擬地址空間和虛擬設備,實現虛擬機間的隔離以保證系統安全。設備管理:使用支持設備模擬和直通機制的管理程序,在不同 Guest OS 之間有效共享或分配 I/O 設備。對于中斷控制器需獨占的設備,用完全虛擬化的方式進行分配,對于 UART 等非獨占的設備,使用設備直通的方式進行分配。系統性能提升:在處理器方面,使用支持 Arm64 硬件輔助虛擬化拓展技術來減少上下文開銷;在內存管理方面,使用基于硬件的兩階段地址轉換地址轉換性能開銷;在中斷方面,使用基于硬件的中斷注入機制來減少上下文開銷和中斷時延。ZVM 整體系統架構如下圖所示,通過在
82、Zephyr RTOS 中加入虛擬化模塊,實現 CPU 虛擬化、內存虛擬化、中斷虛擬化、定時器虛擬化和 I/O 虛擬化。ZVM 當前支持兩種類型的 Guest OS,即通用的 Linux 操作系統和 Zephyr RTOS。嵌入式032openEuler 操作系統技術白皮書創新項目總覽應用場景ZVM 項目正在孵化中,其主要應用場景是制造、能源、機器人、汽車電子等領域中的中高端復雜嵌入式系統。倉庫地址https:/ CPU 虛擬化:CPU 虛擬化模塊的主要功能是為每個 Guest OS 的 vCPU 虛擬出一個單獨的隔離上下文。每個 vCPU 均作為一個線程存在,由 ZVM 統一調度。為了提高
83、vCPU 的性能,Arm64 架構為 ZVM 提供了 VHE 支持,VHE 可以使 Host OS 遷移到 EL2 特權模式,而無需改變操作系統原有代碼。VHE 主要實現了 Arm 寄存器重定向,可以在不修改 Zephyr RTOS 內核代碼的情況下,將其遷移 EL2 層開發 ZVM,既降低了系統冗余,又提高了系統性能。內存虛擬化:內存虛擬化模塊的主要作用是實現 Guest OS 間內存地址的隔離。系統需要隔離不同 Guest OS 的內存空間,監控 Guest OS 對實際物理內存的訪問,以保護物理內存。為了實現該功能,Arm64 提供了兩階段的地址查找策。第一階段是從 Guest OS 的
84、虛擬地址到 Guest OS 的物理地址轉換,第二階段是從 Guest OS 的物理地址到 Host OS 的物理地址轉化。Arm 專門為第二階段轉換提供單獨的硬件,以提高地址翻譯性能。中斷虛擬化模塊:中斷虛擬化使用 Arm 的通用中斷控制器(GIC)設備,并基于該設備實現虛擬中斷配置。Guest OS 的中斷統一路由到 ZVM,然后 ZVM 會將它們分配給不同的 vCPU。虛擬中斷的注入通過 GIC 中的 Virtual CPU 接口或 List Register 具體實現。定時器虛擬化:定時器虛擬化為每個 CPU 定義了一組虛擬定時器寄存器,它們在預定時間后單獨計數并拋出中斷,由Host
85、OS 轉發給 Guest OS。同時,在 Guest OS 切換過程中,虛擬定時器會計算 Guest OS 的實際運行時間,并對 Guest OS 退出的時間進行補償,為 Guest OS 提供定時器服務。設備虛擬化:在設備虛擬化方面,ZVM 采用 Arm 中的 Memory-Mapped I/O(MMIO)方法將設備地址映射到虛擬內存地址,構建虛擬設備空間,實現 Guest OS 對設備地址的訪問。在具體實現上,ZVM 統一構建一個虛擬的 MMIO 設備,在Guest OS 創建過程中將該設備分配給指定的 Guest OS,實現 I/O 虛擬化。此外,對一些非獨占設備,ZVM 使用設備直通的
86、方式實現設備的訪問。Zephyr appZephyr-based Virtual MachineHardwareOS KernelOS KernelZephyrVMLinux VMGuest appGuest appGuest appGuest appvCPUCPUMemGICI/OvMemvGICvTimervI/O邊緣計算033openEuler 操作系統技術白皮書創新項目總覽dsoftbus 分布式軟總線sig-distributed-middleware邊緣計算嵌入式openEuler 秉承打造“數字化基礎設施操作系統”的愿景,為實現端邊領域的互通和協同,首次在服務器&邊緣&嵌入式領域
87、引入分布式軟總線技術。分布式軟總線作為分布式設備通信基座,為設備之間的互通互聯提供統一的分布式協同能力,實現設備無感發現和數據高效傳輸。技術挑戰邊端設備之間的互聯是實現邊端設備協同工作的基石,涉及邊端設備的發現、連接、組網、傳輸等環節。當前邊端設備的互聯存在以下難點:端設備形態不一:硬件能力各異,支持的連接方式參差不齊,比如 WiFi、藍牙、NFC 等多種方式,缺少統一的方案覆蓋各種連接方式。穩定快速組網難:如何在邊端設備間自動構建和分配組網管理角色,實現網絡的魯棒性,在設備退出、掉電、故障后仍能保持組網的穩定。傳輸性能差:如何達成邊端設備間最佳傳輸性能,特別是當部分端設備對功耗有一定的約束時
88、。接口適配難:對于上層應用開發者,如何做到提供統一的接口,屏蔽底層硬件、組網的差異,能夠讓應用開發者不用關心底層實現,聚焦業務流程,實現一次開發、邊端復用。項目介紹主要能力 發現連接:提供基于 Wifi、有線網絡及藍牙等通信方式的設備發現連接能力。設備組網:提供統一的設備組網和拓撲管理能力,為數據傳輸提供已組網設備信息。數據傳輸:提供數據傳輸通道,支持字節、流、文件的數據傳輸能力。模塊架構軟總線主體功能分為發現、組網、連接和傳輸四個基本模塊。軟總線與外部模塊架構關系圖分布式能力集kernel組網發現傳輸連接設備認證IPCsyspara分布式軟總線邊緣計算034openEuler 操作系統技術白
89、皮書創新項目總覽應用場景分布式軟總線主要適用于 openEuler 邊緣服務器、嵌入式設備及 OpenHarmony 嵌入式設備之間的自發現、互聯互通。多用于工業產線、園區設備管理場景,通過軟總線統一接口和協議標準,讓不同廠家、不同類型硬件設備之間自連接、自組網、新設備即插即用,實現數據與外設互通訪問。倉庫地址https:/ Wifi、有線網絡及藍牙等通信方式。并為北向的分布式應用提供統一的 API 接口,屏蔽底層通信機制。軟總線依賴于設備認證、IPC、日志和系統參數(SN號)等周邊模塊,在嵌入式場景將這些依賴模塊進行了樣板性質的替換,以實現軟總線基本功能。實際的周邊模塊功能實現,還需要用戶根
90、據實際業務場景進行豐富和替換,以拓展軟總線能力。部署示意:軟總線支持局域網內多設備部署,設備間通過以太網通信。單設備上分為 server 和 client,二者通過 IPC 模塊進行交互。單節點上支持多 client 同時接入單一 server。如部署模型,軟總線通過獨立進程部署的方式對外提供服務,通過執行服務端主程序可拉起軟總線進程提供對外服務。device 1device Nclientn.1EthernetIPCserverclient1.nIPCserver邊緣計算035openEuler 操作系統技術白皮書創新項目總覽openEuler Edgesig-Edge云計算邊緣計算open
91、Euler 發布面向邊緣計算的版本 openEuler Edge,集成 KubeEdge 邊云協同框架,KubeEdge 是 CNCF 基金會孵化的開源項目,具備邊云應用統一管理和發放等基礎能力,并將通過增強智能協同提升 AI 易用性和場景適應性,增強服務協同實現跨邊云服務發現和流量轉發,以及增強數據協同提升南向服務能力。技術挑戰邊緣計算是未來 10 大戰略技術趨勢。隨著智慧城市、自動駕駛、工業互聯網等應用落地,海量數據將在邊緣產生,IDC 預測中國2025年每年產生的數據將達48.6ZB,集中式云計算在帶寬負載、網絡延時、數據管理成本等方面愈發顯得捉襟見肘,難以適應數據頻繁交互需求,邊緣計算
92、價值凸顯。項目介紹openEuler 發布面向邊緣計算的版本 openEuler Edge,集成 KubeEdge 邊云協同框架,具備邊云應用統一管理和發放等基礎能力,并將通過增強智能協同提升 AI 易用性和場景適應性,增強服務協同實現跨邊云服務發現和流量轉發,以及增強數據協同提升南向服務能力。功能描述kubectlPubSubCloudEdgeDevicesCloudCoreCloudNodeCloudNodeEdgeNodeEdgeNodeEdgeCorePod 1ContainersContainersContainersContainersPod 2Pod 3Pod NMappersE
93、dgeMesh AgentDevice 1Device 2Device 3Device 4EdgeControllerDeviceControllerCloudHubRouterEdgeMesh ServerWebSocket(Default)QUIC(Alternate)KubeEdge 邊云協同基礎框架邊緣計算036openEuler 操作系統技術白皮書創新項目總覽應用場景可應用安平、能源、交通、制造、金融、醫療、園區、無人系統等廣泛的邊云協同場景。倉庫地址https:/ EdgeMesh Agent,云側部署 EdgeMesh Server 實現跨邊云服務發現和服務路由。邊緣南向服務:南
94、向接入 Mapper,提供外設 Pofile 及解析機制,以及實現對不同南向外設的管理、控制、業務流的接入,可兼容 EdgeX Foundry 開源生態。邊緣數據服務:通過邊緣數據服務實現消息、數據、媒體流的按需持久化,并具備數據分析和數據導出的能力。邊云智能協同功能如下:Sedna GM 及 LC:GM 全局任務協調與控制,LC 本地數據集管理與模型管理,狀態同步,邊緣自治,提供基礎的邊云協同推理、聯邦學習、增量學習等能力,并實現了基礎的模型管理、數據集管理等,提升用戶邊云AI特性的訓練與部署效率。Sedna Lib:使能開發者快速開發邊云 AI 協同特性,提升開發效率。Sedna 邊云智能
95、協同框架CloudCloud NodeCloud NodeLocalControllerTask management&coordinationEdgeKubeEdgeModel/Dataset MgmtMessaging over KubeEdgeLibModelGlobal ManagerWorkerGM CommonWorkerEdge NodeWokerLC CommonDataset Mgmt,Model Mgmt,Status syncLocal ControllerLibModelIncremental learning mgmtJointinference mgmtFedera
96、tedlearning mgmtEdge inferenceCloudevalingCloudtrainingParameteraggregatorEdge training基礎能力創新高效并發與極致性能038openEuler 操作系統技術白皮書創新項目總覽A-Tune 智能調優引擎A-Tune SIG服務器A-Tune是一款基于AI的操作系統性能調優引擎。A-Tune利用AI技術,使操作系統“懂”業務,簡化IT系統調優工作的同時,讓應用程序發揮出色性能。技術挑戰隨著幾十年來硬件和軟件應用的不斷發展,Linux 內核正變得越來越復雜,而整個操作系統也變得越來越龐大。在openEuler 開源
97、操作系統中,僅 sysctl 命令(用于運行時配置內核參數的命令)的參數(sysctl-a|wc-l)就超過 1000 個,而完整的 IT 系統從最底層的 CPU、加速器、網卡,到編譯器、操作系統、中間件框架,再到上層應用,可調節參數超過7000 個。而大部分使用者只使用了這些參數的默認配置,因此無法充分發揮系統最佳性能。然而,針對特定的應用場景進行調優存在以下幾方面的難點:參數數量多,且參數間存在依賴關系 上層應用系統種類多,不同應用系統的參數不同 每個應用的負載也復雜多樣,不同負載對應的最優參數值也不同項目介紹功能描述A-Tune 的整體架構如圖所示,其整體上是一個 C/S 架構??蛻舳?
98、atune-adm 是一個命令行工具,通過 gRPC 協議與服務端atuned 進程進行通訊。服務端中 atuned包 含 了 一 個 前 端 gRPC 服 務 層(采 用golang 實現)和一個后端服務層。gRPC服務層負責優化配置數據庫管理和對外提供調優服務,主要包括智能決策(analysis)和自動調優(tuning)。后端服務層是一個基于 Python 實現的 HTTP 服務層,包含了 MPI(Model Plugin Interface)/CPI(Configurator Plugin Interface)和 AI引擎。其中,MPI/CPI 負責與系統配置進行交互,而 AI 引擎負
99、責對上層提供機器學習能力,主要包括用于模型識別的分類、聚類和用于參數搜索的貝葉斯優化。A-Tune 軟件架構A-Tune client(atune-adm)A-Tune Server(atuned/golang)gRPC serviceConfigurationAnalysisTuningDatabaseBackend Server(HTTP/Python3)MPI/CPIDatasamplingSystemparameterconfigurationClassificationAl engineClusteringBayesianoptimization高效并發與極致性能039openEul
100、er 操作系統技術白皮書創新項目總覽應用場景A-Tune在openEuler等Linux環境里面應用比較廣泛,應用場景涵蓋大數據、數據庫、中間件、高性能計算等場景。助力金融、電信等行業客戶實現 MySQL、Redis、寶蘭德中間件等應用性能提升 12%140%。倉庫地址https:/ 目前主要提供兩個能力:智能決策和自動調優。智能決策的基本原理是通過采集系統數據,并通過 AI 引擎中的聚類和分類算法對采集到的數據進行負載識別,得到系統中當前正在運行的業務負載類型,并從優化配置數據庫中提取優化配置,最終選取適合當前系統業務負載的最優參數配置。具備以下功能:重要特征分析:自動選擇重要特征,剔除冗余
101、特征,實現精準用戶畫像 兩層分類模型:通過分類算法,準確識別當前負載 負載變化感知:主動識別應用負載的變化,實現自適應調優自動調優的基本原理是基于系統或應用的配置參數及性能評價指標,利用 AI 引擎中的參數搜索算法,反復迭代,最終得到性能最優的參數配置。具備以下功能:重要參數選擇:自動選擇重要的調優參數,減少搜索空間,提升訓練效率 調優算法構建:用戶可從適用場景、參數類型、性能要求等方面選擇最優算法 知識庫構建:將當前負載特征和最優參數增加到知識庫,提升后續調優效率高效并發與極致性能040openEuler 操作系統技術白皮書創新項目總覽 BiSheng JDK 畢昇 JDK Compiler
102、 SIG服務器云計算邊緣計算畢昇 JDK 是基于 OpenJDK 定制的 Huawei JDK 的開源版本,是一款高性能、可用于生產環境的 OpenJDK 發行版,2022 年 05 月 26 日成功登陸了 Eclipse Adoptium 開源 JDK 發行版市場。畢昇 JDK 團隊積累了豐富的開發經驗,解決了許多實際業務中由原生 OpenJDK 缺陷引起的問題,畢昇 JDK 致力于為 JAVA 開發者提供一款穩定可靠、高性能、易調測的JDK,也為用戶在鯤鵬 AArch64 架構上提供一個更好的選擇。技術挑戰JDK 作為 java 運行的基礎軟件,性能和穩定性一直是 java 開發者和 ja
103、va 產業關注的重點;眾所周知,OpenJDK8 已進入維護期,引入大的特性比較困難,同時參與OpenJDK開發和維護工作的門檻相對較高。針對java啟動時間慢、GC吞吐量低、延時高、加解密性能弱及問題交流門檻高等問題,引入了新的優化特性。項目介紹功能描述 1:AppCDS 特性Java 程序運行初始階段,類的加載是一個比較耗時的過程,且在每次程序運行中均需要執行一遍。而 CDS(Class Data Sharing)技術,就是把類加載后的的數據保存到文件中,下次運行時,直接將加載后的類數據從文件中恢復到內存中,不需要再重新執行類的加載過程,從而提高性能。畢昇 JDK8 在 OpenJDK 提
104、供的 CDS 特性基礎上,擴展提供了 AppCDS 特性,增加了對應用類的支持。該特性在 Hive-Sql 場景平均性能提升 7%+;AppCDS 業務流程圖Class FileJSA FileJVM SystemRuntime Data Area標準啟動流程導出JSA文件CDS啟動流程Meta SpaceHeap.Shared MemoryMetaData of SvstemclassMetaData of App classLoadingClass Loader SubSystemLinkingInitializationBoot Strapclass LoaderExtensioncla
105、ss LoaderApplicationclass LoaderVerifyPrepareResolveMetaData ofSystem classMetaData ofApp classMetaData ofunshared class高效并發與極致性能041openEuler 操作系統技術白皮書創新項目總覽功能描述 2:G1GC 堆內存伸縮特性在 OpenJDK 8 中,G1GC 不會及時將空閑的 Java 堆內存釋放給操作系統,其僅在 Full GC 時才會把空閑的 Java 堆內存進行釋放。由于 G1 盡可能避免觸發 Full GC,因此在許多情況下,除非強制從外部執行 Full G
106、C,否則 G1 不會將空閑的Java 堆內存釋放給操作系統。在按資源使用量付費的容器場景中,G1 不釋放空閑的 Java 堆內存返回給操作系統的行為非常糟糕。即使在應用負載下降或不活躍時,G1 也會保留和占用所有 Java 堆。這會導致客戶一直在為所有 JVM 占用資源付費,并且云提供商也無法充分利用其硬件資源。如果 JVM 能夠檢測到應用負載下降和 Java 堆有空閑內存的情況,并自動減少 JVM Java 堆占用情況,那么雙方都會受益。在某 49 個微服務場景,開啟 G1 堆內存回收特性比默認 G1GC 的實際物理內存減少 40%。功能描述 3:KAEProvider 特性KAE 加解密是
107、鯤鵬加速引擎的加解密模塊,鯤鵬硬加速模塊實現了 RSA/SM3/SM4/DH/MD5/AES 算法,提供了高性能對稱加解密、非對稱加解密算法能力,兼容 openssl1.1.1a 及其之后版本,支持同步和異步機制。畢昇 JDK 8 通過利用 Provider 機制,實現對鯤鵬服務器 KAE 加解密特性的支持,以幫助用戶提升在鯤鵬 AArch64 服務器加解密業務的競爭力。在 Https 場景,性能提升 1 倍。KAEProvider 業務架構圖JAVA應用KAEProviderMessageDigestMD5SHA256SHA512.SignatureMD5withRSASHA1withDSA
108、RawDSA.Cipher.MAC.KeyAgreement.AlgorithmConextNativeCryptoEVP_MD_CTX_createEVP_Digestlnit_exEVP_DigestUpdateEVP_DigestFinal_exEVP_MD_CTXEVP_CIPHER_CTXEVP_PKEY_CTX.HMAC_CTXOpenSSLRSAAESDESDHECDHHmacMD5HmacSHA256HmacSHA512EVP_MD_CTXEVP_CIPHER_CTXEVP_PKEY_CTXHMAC_CTX.EVP_MD CTX_createEVP_Digestlnit_exE
109、VP_DigestFinal_exEVP_DigestUpdate.Java LayerNative Layer高效并發與極致性能042openEuler 操作系統技術白皮書創新項目總覽KAE Provider 已支持算法列表:應用場景畢昇 JDK 是基于 OpenJDK 開發和發行的 java 基礎軟件,在 openEuler 等 Linux 環境里面應用比較廣泛,應用場景涵蓋大數據、中間件、加解密敏感等場景。助力金融、中間件、運營商、互聯網等行業客戶實現在大數據 spark 性能提升10%,加解密場景性能提升 100%+。倉庫地址畢昇 JDK 8、11 和 17 均已開源,且每隔 3 個月
110、進行版本升級和新特性合入,java 開發者可以在畢昇 JDK 開源社區獲取最新信息、開展相關交流。軟件產品類型交付類型鏈接畢昇 JDK 8開源代碼倉https:/ JDK 11開源代碼倉https:/ JDK 17開源代碼倉https:/ MD5、SHA256、SHA384、SM3對稱加密算法 AES支持 ECB、CBC、CTR、GCM 模式對稱加密算法 SM4包括 ECB、CBC、CTR、OFB 模式HMac包括 HmacMD5、HmacSHA1、HmacSHA224、HmacSHA256、HmacSHA384、HmacSHA512非對稱加密算法 RSA支持 512、1024、2048、30
111、72、4096 位秘鑰大小DH包括 DHKeyPairGenerator 和 DHKeyAgreement,支持 512、1024、2048、3072、4096 位秘鑰ECDH包括 ECKeyPairGenerator 和 ECDHKeyAgreement,支持曲線 secp224r1、prime256v1、secp384r1、secp521r1RSA 簽名包括 RSASignature 和 RSAPSSSignature,私鑰只支持 RSAPrivateCrtKey高效并發與極致性能043openEuler 操作系統技術白皮書創新項目總覽etmem 內存分級擴展storage SIG服務器云
112、計算內存分級擴展利用 DRAM 和低速內存(如 SCM)或硬盤等不同的介質組成多級內存供應用進程使用。通過內存的自動調度,讓熱數據集中在 DRAM 高速內存區中運行,把冷數據放置到慢速介質中,從而達成內存可用量的擴大或業務性能的提升。技術挑戰當前生態發展讓每個 CPU 核的成本越來越低,但是內存制造工藝已經達到瓶頸,短期突破難度大,導致內存成本在整機成本中的占比越來越大。同時數據庫、虛擬機、大數據、人工智能、深度學習等場景均需要算力和大內存的支持。節省內存成本和擴大內存容量成為迫切要解決的問題。項目介紹如上圖所示,etmem 分為內核態和用戶態兩部分,通過這兩個模塊的協同,實現了如下功能:進程
113、級控制:etmem 支持通過配置文件來進行內存擴展的進程,相比于操作系統原生的基于 LRU 淘汰的 kswap 機制,更加靈活和精準。冷熱分級:用戶態觸發對指定進程進行內存訪問掃描,根據分級策略配置文件,對內存訪問結果進行分級,區分出熱內存和冷內存。淘汰策略:根據配置文件和系統環境配置,對冷內存進行淘汰,淘汰流程使用內核原生能力,安全可靠,用戶無感知。用戶態內核態冷熱頁面的精準識別與業務無感的自動交換可配置的進程策略控制硬件內存頁面掃描模塊內存壓縮DRAMSCMXL-FLASH內存遷移內存交換內存頁面訪問情況APPContainerVM內存頁面掃描內存冷熱分級頁面淘汰策略冷熱內存執行策略產生缺
114、頁高效并發與極致性能044openEuler 操作系統技術白皮書創新項目總覽應用場景etmem 針對內存使用較多,且訪問相對不頻繁的業務軟件,擴展效果較好,比如 MySQL、Redis、Nginx 等。實測MySQL TPCC 場景中,等成本條件下性能提升 40%。etmem 當前僅支持節點內業務進程的內存分級擴展,不涉及跨節點遠端操作。在用戶態存儲框架的場景中,可通過策略框架的用戶態 userswap 功能,使用用戶態存儲設備作為內存交換設備。倉庫地址https:/ 內存掃描:觸發內存頁面掃描動作并收集結果;內存冷熱分級:通過配置的頁面淘汰策略對已統計的結果進行內存的冷熱分級;冷熱內存執行策
115、略模塊:根據配置對冷熱內存分別執行相應動作。高效并發與極致性能045openEuler 操作系統技術白皮書創新項目總覽EulerFS 新介質文件系統Kernel SIG服務器云計算非易失性內存(NVDIMM,比如 Intel Optane)是一種提供字節訪問粒度的新型高速存儲介質,現有內核文件系統 EXT4,可以協同 DAX 特性改善 NVDIMM 新介質數據讀寫性能。但在元數據管理方面,基于現有 journal 同步機制,元數據管理開銷大,且容易出現寫放大問題,NVDIMM 優勢無法充分發揮。EulerFS 創新元數據軟更新技術(Soft Update),基于指針的目錄雙視圖計數機制,減少元
116、數。據同步開銷,有效提升文件系統 create、unlink、mkdir、rmdir 系統調用性能,較 EXT4 DAX,元數據操作延時降低 14 倍,帶寬提高 0.24 倍。功能描述 哈希表目錄:采用哈希表來管理目錄項,提高線性查找效率,減少偽共享。統一的分配器:數據結構使用統一的分配器,這樣可以打破不同數據結構之間的界限,使得內存管理更加地簡單與靈活。軟更新:一種輕量級的保證文件系統一致性的技術,簡化了文件系統一致性的實現復雜度?;谥羔樀哪夸涬p視圖:一種減少元數據同步開銷的機制,有效提升文件系統讀寫性能。依賴跟蹤:目錄項的新建、刪除等操作并不是立刻持久化的,在進行相應的操作后,只是在 i
117、node 中跟蹤依賴,后續通過異步的方式進行持久化,可以大幅提高性能。應用場景該技術適用于所有基于 NVDIMM 的新介質,可代替 EXT4,XFS 等文件系統,滿足單機應用、云原生分布式應用高性能數據存儲訴求。倉庫地址https:/ to latest next dentrypoints to consistent next dentrypoints to latest bucketspoints to consistent bucketsmutually reachablelatestbuckets高效并發與極致性能046openEuler 操作系統技術白皮書創新項目總覽Gazelle 輕
118、量級用戶態協議棧high-performance-network SIG服務器云計算邊緣計算嵌入式Gazelle 是基于 DPDK 和 LWIP 開發的輕量級用戶態協議棧,在滿足高性能的同時,具備良好的通用性和易用性。技術挑戰網絡協議棧作為現代應用的關鍵路徑,一直是性能研究的熱點。近年來,隨著軟硬件技術的發展,網絡協議棧面臨以下問題和訴求。硬件視角:CPU 算力和網卡算力差距逐漸增大,單核 CPU 無法充分發揮網卡帶寬的發展紅利。眾核架構下,協議棧設計需避免 NUMA 內存訪問陷阱。軟件視角:現代大型軟件性能要求高,往往采用多線程架構充分利用 CPU、網卡等硬件資源,并期望隨著線程數的增加軟件
119、性能線性增長。應用網絡模型多樣,對協議棧通用性訴求高。當前內核協議棧具備通用性高、分層解耦的特點,但性能不足;用戶態協議棧一般面向特定場景,追求極致性能的同時,往往無法兼顧通用性。協議棧設計挑戰:數據庫等場景,應用網絡模型多樣,且對網絡性能要求高,實現兼顧高性能和通用性的協議棧軟件難度大。項目介紹Gazelle 的軟件架構如下圖所示:由 ltran、lstack、gazellectl 組成。ltran 負責協議棧分發管理,lstack 提供通用輕量的協議棧能力,gazellectl 作為運維工具完成流量統計、診斷日志等功能。應用場景nic開源依賴特性電信金融.gazelle軟/硬轉發模型pos
120、ix 兼容(epoll/socket api/reuse port/.)即插即用(LD PRELOAD)輕量級協議棧網卡報文收發Istack 管理dpdkItran(協議棧分發管理)Istack(通用輕量級協議棧)運維(gazellectl)lwipknibondudp 組播/單播流量統計指標日志運維命令.靈活配置(綁核策略、大頁規格、dpdk 配置/.)極致性能自適應調度硬件卸載(TSO/CSUM/GRO/.)fd 路由器代理式喚醒網卡多隊列輪詢/中斷模式區域大頁動態綁核零拷貝分布式 TCP hash 表高效并發與極致性能047openEuler 操作系統技術白皮書創新項目總覽應用場景Gaz
121、elle 適用于數據庫加速等場景。目前已應用于電信、金融等行業,實現 MySQL 事務處理測試性能提升 20%以上,Redis 吞吐量提升 50%以上。倉庫地址https:/ 關鍵特性如下:高性能 超輕量:基于 DPDK、LWIP 實現高性能輕量協議棧。極致性能:基于區域大頁劃分、動態綁核、全路徑零拷貝等技術,實現高線性度并發協議棧。硬件加速:支持 TSO、CSUM、GRO 等硬件卸載,打通軟硬件垂直加速路徑。通用性 POSIX 兼容:接口完全兼容 POSIX 接口,應用零修改。通用網絡模型:基于 FD 路由器、代理式喚醒等機制實現自適應網絡模型調度,滿足任意網絡應用場景。易用性即插即用:基于
122、 LD_PRELOAD 實現業務部署免配套,安裝 Gazelle 后協議棧加速效果立刻生效。易運維運維工具:提供流量統計、日志、命令行等運維手段。高效并發與極致性能048openEuler 操作系統技術白皮書創新項目總覽GCC for openEulerCompiler SIGGCC for openEuler 編譯器基于開源 GCC(GNU Compiler Collection,GNU 編譯器套裝)開發。開源 GCC 是一種支持多種編程語言的跨平臺開源編譯器,采用 GPLv3(GNU General Public License,version 3)協議,是 Linux 系統上目前應用最廣
123、泛的 C/C+編譯器,基本被認為是跨平臺編譯器的事實標準。而 GCC for openEuler 在繼承了開源 GCC 能力的基礎上,聚焦于 C、C+、Fortran 語言的優化,增強自動反饋優化、軟硬件協同、內存優化、自動向量化等特性,并適配國產硬件平臺,如鯤鵬、飛騰、龍芯等,充分釋放國產硬件算力。技術挑戰GCC 作為 Linux 內核的默認編譯器,跨平臺編譯器的事實標準,是操作系統中至關重要的基礎軟件。GCC 的修改往往牽一發而動全身,對上層應用影響甚大,因此 GCC 開發者不僅要熟悉編譯原理等基礎知識,還要有充足的技術儲備,加強特性的安全性、魯棒性,在增強競爭力的同時,保證 GCC 本身
124、的安全穩定。GCC for openEuler 致力于在開源 GCC 基礎上,提供更多元化的競爭力特性,通過編譯優化、反饋優化等手段,提升上層軟件的性能表現。在 Compiler SIG 雙周例會上有GCC 的固定議題,歡迎各位社區開發者隨時與會交流。項目介紹GCC for openEuler 支持鯤鵬、x86 等主流硬件平臺,支持與 openEuler 性能/安全/可靠/運維工程進行協同,對接編譯器插件框架,提供通用化插件功能,支持多樣算力特性支持和微架構優化,實現內存智能分配、內存優化、自動矢量化等特性,并通過整合業界領先的反饋優化技術,實現自動反饋優化,提升數據庫等場景應用性能。GCC
125、for openEuler 在以下四個方向實現主要突破。服務器云計算邊緣計算嵌入式 基礎性能:基于 GCC 開源版本,提升通用場景性能,服務多樣算力。反饋優化:整合業界領先的反饋優化技術,實現程序全流程和多模態反饋優化,提升數據庫等云原生場景重點應用性能。芯片使能:使能多樣算力指令集,圍繞內存等硬件系統,發揮算力優勢,提升 HPC 等場景化性能。插件框架:使能多樣算力差異化編譯訴求,一套插件兼容不同編譯框架,打通 GCC 和 LLVM 生態。PCX86 系餛鵬其他國產芯片RISC-VDCNFV數據庫虛擬化大數據HPC9209XXGCCforopenEuler編譯優化芯片使能插件框架openEu
126、ler 協同內存優化多編譯器支持循環優化自動反饋優化MLIR自動矢量化浮點精度通用插件服務自動參數調優多樣算力特性支持多樣算力微架構優化智能分配跨步預取面向場景性能工程安全/可靠/運維使能高效并發與極致性能049openEuler 操作系統技術白皮書創新項目總覽功能描述 1:指針壓縮特性(基礎性能)當結構體域成員出現結構體指針時,8 bytes 的指針大小容易造成結構體成員對齊空隙,而且指針與小于 8 bytes 的基本類型混合使用時容易造成內存 padding,浪費內存空間,造成頁表刷新頻繁、內存訪問延時,程序性能不佳。結構體指針壓縮(以下簡稱為指針壓縮)優化適用于該場景。指針壓縮將結構體域
127、成員中的結構體指針由 64 bits 壓縮至可選的 8、16 和 32 bits 整形,縮小結構體占用內存大小,降低從內存中讀寫數據時的帶寬壓力,從而提升性能。功能描述 2:全流程反饋優化(反饋優化)目前業界主流反饋優化技術分為 PGO、AutoFDO 編譯階段反饋優化,Bolt 二進制階段反饋優化。PGO 是一種編譯器優化技術。通過收集程序運行時信息(profile)進行優化決策。編譯器根據這些運行時信息指導各種編譯優化技術進行更準確的優化決策,生成目標程序。AutoFDO主要是通過采樣方式收集程序的運行信息,間接得到程序的執行情況,使用perf收集profile,對程序性能影響較小,實現程
128、序源碼與 profile data 解耦,對程序代碼變化相對不那么敏感,開發和測試階段收集的 profile 可用于優化目標程序,復用性較好。Bolt 通過在編譯器在生成二進制時預置重定位信息,在二進制層面上進行 BB 塊重排、函數重排、冷熱分區等優化,補齊二進制全局的優化機會。全流程反饋優化,整合反饋數據,打通傳統自動反饋優化(AutoFDO)、反饋優化(PGO)與二進制反饋優化(BOLT)流程,極大提高反饋優化的易用性,并通過 MCF 算法修正、discriminator 支持優化,進一步提升優化效果。F1F1P1=ptr1P1=ptr2F2F1F1F1P1_ pc=idx1P1_ pc=
129、idx1P1_ cmpF2F2F2F2PADPADstruct ststruct st_pcstruct st_pcstruct st_pcstruct stptr2ptr1,gptridx1=(ptr1-gptr)/sizeof(st_pc)idx2=(ptr2-gptr)/sizeof(st_pc)二進制(帶調試信息)BOLT 工具鏈AutoFDO工具鏈Option-fauto_profilesource工具鏈編譯器BABOLT新增鏈接器反饋優化插件從各.o 中讀取profile生成優化選項調用 BOLTOption-fbolt-use 傳至鏈接器Option-fprofile-use-f
130、auto-bolt生成 BOLT 所素 profile和選項調用 BOLTPass 讀取源代碼為基準的采樣并標注 CFGPass 執行反饋編譯優化Pass 將程序的 profile寫入至各.o 文件Pass 讀取二進制為基準的采樣并標注 CFGreroder_blocksSplitfunctionsreroder_functions.程序源代碼硬件采樣數據插樁反饋數據高效并發與極致性能050openEuler 操作系統技術白皮書創新項目總覽功能描述 3:智能分配預?。ㄐ酒鼓埽┊斍?,智能分配預取支持 HPC 應用靜態優化分析,通過訪存數據復用分析和插入預取指令,openFOAM、SPMV 和
131、WRF三個應用內核函數平均可提升 30%。動靜結合編譯優化:編譯器中增加靜態分析和根據動態執行反饋修正的數據復用評分模型,對高并發的熱點數據進行分析和識別。內存智能分配預?。和ㄟ^預取指令生成和插入,顯式提供預取信息告知硬件,結合硬件的替換策略提高緩存的利用率和命中率。生態低侵入式編程接口:未來將提供類 CUDA 的變量屬性和 OpenMP 導語擴展,編譯器自動生成代碼,提高開發便利性和兼容性。應用場景GCC for openEuler 是基于開源 GCC 開發和發行的 GCC 基礎軟件,在 openEuler 等 Linux 環境里面應用比較廣泛,應用場景涵蓋數據庫、虛擬化、HPC 等重要場景
132、。實現 Arm 平臺下,SPEC2017 基礎性能相比開源 GCC 提升 20%,助力運營商、云廠商、安平等行業客戶 MySQL 數據庫性能提升 15%+。倉庫地址GCC for openEuler 代碼已開源,且隨 openEuler 正式版本進行版本升級和新特性合入,GCC 開發者可以在 openEuler 開源社區獲取最新信息、開展相關交流。軟件產品交付類型鏈接GCC for openEuler代碼倉https:/ 分配動態采樣增強導語擴展變量標記CachePMU可執行代碼profile 生成2231動靜結合編譯優化CPU訪存事件生態低侵入接口高效并發與極致性能051openEuler
133、操作系統技術白皮書創新項目總覽HSAK 混合存儲加速套件storage SIG服務器云計算混合存儲加速套件 HSAK(Hybrid Storage Acceleration Kit)用于提升 NVMe 設備的 IO 性能,該軟件庫實現了高性能的NVMe 設備的 IO 軟件棧,其核心是用戶態、異步、無鎖、輪詢方式。與傳統 Linux 內核的 NVMe 設備 IO 軟件棧相比,它可以大幅度降低 NVMe command 的延遲,同時提高單 CPU 的 IO 處理能力(IOPS),從而形成一套高性價比的解決方案。技術挑戰隨著 NVMe SSD、SCM 等存儲介質性能不斷提升,介質層在傳統 IO 棧中
134、的時延開銷不斷縮減,使得軟件棧的開銷逐漸成為瓶頸和核心痛點。據分析,在使用高性能存儲介質時,傳統內核 IO 軟件棧的開銷占 IO 總開銷的 60%+,其原因如下:用戶態業務進程下發請求到磁盤過程中需要經過多次內存拷貝動作;磁盤處理完成 IO 請求返回的過程中需要通過兩次中斷處理,導致進程調度、上下文切換等開銷;同時業界的各解決方案大多存在下述問題:軟件更新頻繁,對外接口不穩定;IO 數據面功能單一簡單,無法使用 NVMe 盤本身提供的一些其他硬件能力;管理面能力不足,針對設備管理或 IO 監控等手段缺失。項目介紹如右圖所示,HSAK 主要包含數據面的三層結構以及存儲管理模塊:存儲協議和接口層:
135、北向提供穩定統一的存儲接口,屏蔽存儲協議差別;存儲服務層:提供垃圾回收 GC 功能、CRC 校驗功能、Hash 等多樣化存儲介質服務;驅動層:南向對接不同設備或邏輯卷,統一的設備驅動注冊接口,對接多樣化存儲介質;存儲管理:提供設備管理、IO 監控、維測工具等功能來管理設備;應用場景HSAK 適用于使用 NVMe 盤的分布式存儲業務或傳統存儲業務中,通過用戶態 NVMe 驅動接管磁盤,裸盤讀寫性能相比內核 IO 棧管理磁盤時提升 10 倍,IO 開銷降低 50%以上。倉庫地址https:/ SSDHDDSSDceph server存儲接口存儲管理LinuxAIOHSAK APIGCCRCHash
136、Linux Kernel stackNVMePCle DriverNVMeover TCPiSCSIInitiatorNVMe-OF InitiatcephRBD存儲協議和接口存儲服務硬件驅動高效并發與極致性能052openEuler 操作系統技術白皮書創新項目總覽iSuladiSulad 輕量級容器引擎服務器邊緣計算云計算嵌入式iSulad 是一個由 C/C+編寫實現的輕量級容器引擎,具有輕、靈、巧、快的特點,不受硬件規格和架構限制,底噪開銷更小,可應用的領域更為廣泛。技術挑戰容器是一種創建隔離環境,方便高效打包和分發應用的技術。由于其相比于虛擬化技術具備更高的分發效率,以及更小的運行開銷,
137、有效提升了開發和部署的效率,這使得越來越多的用戶選擇使用容器。隨著 Docker 容器引擎、Kubernetes 容器編排調度,以及云原生概念的提出,容器生態越來越完善,容器技術也得以快速推廣。然而,隨著容器技術的發展,用戶對容器的需求場景越來越多樣化。用戶對于容器的啟動速度和部署速度要求越來越高。用戶對容器的資源開銷要求越來越高。物聯網、邊緣計算領域的蓬勃發展對容器技術提出了新要求。正式基于這種背景,我們提出了 iSulad 容器解決方案,一種更加輕量、快速的容器引擎。項目介紹功能描述iSulad 是 openEuler 提供的新的容器引擎,其統一的架構設計能夠滿足 CT 和 IT 領域的不
138、同需求。相比 Golang 編寫的 Docker,iSulad 資源占用更少,容器啟動更快,可應用范圍更廣。iSulad 的名字來自于南美的子彈蟻,其個頭雖然小,但是力量巨大,被它咬一口,猶如被子彈打到那般疼痛,它是世界上最強大的昆蟲之一。iSulad 也是如此,其雖然輕量,能力卻不弱,可以為多種場景提供靈活、穩定、安全的底座支撐,與子彈蟻的形象不謀而合。iSulad 容器引擎提供了與 Docker 類似的命令行,方便用戶操作使用。其北向支持 CRI 接口,可以對接 Kubernetes,用戶可以使用 iSulad 作為底座,通過 Kubernetes 進行容器的編排調度。iSulad 南向支
139、持 OCI runtime 標準,能夠靈活對接 runc、lxc、kata、kuasar 等多種容器運行時,兼容容器生態。iSulad 軟件架構kernelspaceuserspacesyscallcgroupnamespaceREST(light mode)/grpc(perf-mode)runckatalxcKuasarcontainerimageeventslogcontainer servicevolume serviceimage servicenetwork servicepluginspecruntimevolumeCLICRIruntimemoduleserviceexecut
140、orengineiSulad高效并發與極致性能053openEuler 操作系統技術白皮書創新項目總覽應用場景作為一款輕量級容器引擎,iSulad 在云計算、CT、嵌入式、邊緣側等場景應用廣泛,應用場景覆蓋銀行、金融、通信、云業務等,助力客戶提升容器啟動性能 50%+。此外,iSulad+Kuasar+StratoVirt 方案也正在推進,共同構建 openEuler 社區的全棧安全容器解決方案。倉庫地址https:/ 核心能力,包括容器服務,鏡像服務、卷服務以及網絡服務。容器服務,用來負責容器生命周期的管理。鏡像服務,負責提供對容器鏡像的操作。iSulad 支持符合 OCI image 標準
141、的鏡像格式,保證 iSulad 能夠支持業界主流鏡像。此外,iSulad 還支持用于系統容器場景的 external rootfs 以及嵌入式場景的 embedded 鏡像格式。卷服務,為用戶提供容器數據卷管理的能力。網絡服務,可以與符合 CNI 標準的網絡插件一起,為容器提供網絡能力。iSulad 作為一款通用容器引擎,除了支持運行普通容器之外,還支持運行系統容器與安全容器。普通容器:傳統的應用容器 系統容器:在普通容器基礎上的功能擴展,相比較普通容器,系統容器具備 systemd 管理服務的能力,支持在容器運行時動態添加/釋放磁盤設備、網卡、路由以及卷。系統容器主要應用在重計算、高性能、大
142、并發的場景下,可以解決重型應用和業務云化的問題。安全容器:安全容器是虛擬化技術和容器技術的結合,相比于普通容器共用同一臺宿主機內核存在的安全隱患,安全容器通過虛擬化層實現容器間的強隔離,每個安全容器都有一個自己單獨的內核和輕量級虛擬機運行環境,保證同一個宿主機上不同安全容器的運行互相不受影響。與 Docker 相比,iSulad 不僅在容器啟動速度上更快,而且在資源開銷方面也更低。這是因為 iSulad 是通過 C/C+實現的,相比于其他語言其運行開銷更小。其次,iSulad 在代碼層面對調用鏈路進行了優化,相較于 docker 多次 fork 及 exec 調用二進制的方式,iSulad 較
143、少調用次數,直接通過鏈接庫的方式進行函數調用,減少調用長度,從而使得其容器啟動速度更快。此外,由于 C 語言是天然的系統級編程語言,使得在嵌入式、邊緣測等終端設備上,Golang 實現的 Docker“望洋興嘆”,而 iSulad 卻可以 大顯身手。經過實驗測試,iSulad 底噪開銷僅為 Docker 的 30%,在 Arm 及 x86 環境下,iSulad 并發啟動 100 個容器時間相較于Docker 提升了 50%+。這使得用戶使用 iSulad 進行業務部署時,不僅能夠更快的啟動業務容器,同時可以減少容器引擎帶來的額外資源開銷,避免其影響業務的正常性能。高效并發與極致性能054ope
144、nEuler 操作系統技術白皮書創新項目總覽Kmesh 高性能服務治理框架sig-ebpfKmesh 是一種高性能服務網格數據面軟件,基于可編程內核,將流量治理邏輯從代理程序下沉到操作系統,實現流量路徑多跳變為一跳,大幅提升服務網格下應用訪問性能。技術挑戰隨著直播、人工智能等大應用的興起,數據中心集群規模越來越大,數據規模呈爆炸式增長。如何高效地實現數據中心內微服務間的流量治理一直是大家關心的問題。服務網格作為下一代微服務技術,將流量治理從服務中剝離出來,下沉到網格基礎設施中,很好地實現了應用無感的流量編排;但其代理架構引入了額外的時延底噪開銷(例如業界典型軟件 istio,單跳服務訪問時延增
145、加 23ms),無法滿足時延敏感應用的 SLA(Service Level Agreement)訴求。如何實現應用無感的高性能流量治理,是當前面臨的技術挑戰。項目介紹Kmesh 基于可編程內核,將流量治理下沉操作系統,實現 高性能服務網格數據面;Kmesh 當前支持的主要特性包括:1.支持對接遵從 XDS 協議的網格控制面(如 istio)2.流量編排能力 負載均衡:支持輪詢等負載均衡策略 路由:支持 L7 路由規則 灰度:支持按百分比灰度方式選擇后端服務策略如上 Kmesh 軟件架構圖所示,其主要部件包括:kmesh-controller:Kmesh 管理程序,負責 Kmesh 生命周期管理
146、、XDS 協議對接、觀測運維等。kmesh-api:Kmesh 對外提供的 API 接口層,主要包括 XDS 轉換后的編排 API、觀測運維通道等。kmesh-runtime:kernel 中實現的支持 L3L7 流量編排的運行時。kmesh-orchestration:基于 eBPF 實現 L3L7 流量編排,如路由、灰度、負載均衡等。kmesh-probe:觀測運維探針,提供端到端觀測能力。應用場景Kmesh 適用于電子商務、云游戲、在線會議、短視頻等時延敏感應用。http 測試場景下對比業界方案(istio)轉發性能提升 5 倍。倉庫地址https:/ 操作系統技術白皮書創新項目總覽LL
147、VM for openEulerCompiler SIGLLVM 項目是一個開源的編譯器基礎設施項目,它提供了一套用于編譯程序的工具鏈和庫。近年來,LLVM 項目越來越得到開發者的關注,社區非?;钴S,商業公司也紛紛基于 LLVM 項目推出商業編譯器。LLVM for openEuler 致力于在開源 LLVM基礎上與 openEuler 協同創新,包括兼容性、性能和開發態安全編碼特性,為 openEuler 上的編譯器提供第二選擇,并適配多種硬件平臺,如鯤鵬、飛騰、龍芯等,充分釋放多樣性硬件算力。技術挑戰LLVM for openEuler 作為 openEuler 上編譯器的第二選擇,需要提
148、供比 GCC 更多的競爭力,同時生態系統也需要進一步完善,這樣才能通過 openEuler 為最終客戶帶來價值。從這兩點出發,一方面 LLVM for openEuler 需要進一步提供強大而可擴展的優化能力,在計算主力場景如數據庫、分布式存儲、虛擬化上提供更多性能收益,另一方面需要不斷壯大社區和生態,兼容現存軟件包,為新開發的軟件包提供更好的編譯工作和服務。項目介紹LLVM采用了模塊化架構設計,將編譯過程分為多個獨立階段,如前端、優化和后端。這種設計使得LLVM更加靈活和可擴展,有助于各階段模塊分別演進創新,而通過統一的 IR 表示又將不同的模塊有機的結合起來。目前 LLVM 項目包含多個子
149、項目,如 clang、flang、llvm、mlir、lld 等。LLVM 9.0 版本之后采取 Apache License,截至目前,LLVM 社區社區貢獻者已經達到 2634 人,2022 年增加 340 人,涉及公司 150+,周平均 Commit 數量超 500+,社區比較活躍。架構描述服務器邊緣計算云計算嵌入式模塊化解耦架構,統一 IR 表示,助力架構級創新C/C+x86 AVXC/C+RustC/C+Arm SVECUDA/GLES/Vulkan.Armx86GPUNPUDSP.ParserIRGenSemaAliasingTooling編譯器前端CSEDCELICMIPCP.優
150、化器ArmRISC-Vx86SPARC.代碼生成JIT.O.S發射器高效并發與極致性能056openEuler 操作系統技術白皮書創新項目總覽功能描述 1:SanitizerLLVM 的 Sanitizer 是一組用于進行動態代碼分析和檢測的工具,皆在幫助開發人員發現和調試常見的內存錯誤和安全問題,這些工具被設計為與 LLVM 編譯器和運行時庫緊密集成,提供了一種便捷的方式來檢測和診斷代碼中的問題。功能描述 2:clangextratoolsClang Extra Tools 是一組由 LLVM 項目提供的額外工具,用于與 Clang C/C+編譯器一起使用,皆在提供對代碼靜態分析、代碼重構和
151、代碼風檢查等功能的支持。Clang-Tidy:Clang-Tidy 是一個強大的靜態代碼分析工具,用于檢查 C、C+和 Objective-C 代碼中的常見錯誤、潛在問題和代碼風格違規。它可以自動檢測和修復代碼中的問題,幫助開發人員編寫更高質量、更規范的代碼。Clang-Format:Clang-Format 是一個代碼格式化工具,用于自動格式化 C、C+和 Objective-C 代碼。它可以根據配置規則自動調整代碼的縮進、換行、空格等,以保持一致的代碼風格。Clang-Format 可以幫助團隊在代碼風格上達成一致,提高代碼的可讀性和維護性。Clang-Check:Clang-Check是
152、一個用于編寫自定義靜態分析檢查器的工具。它允許開發人員編寫自定義的靜態分析規則,用于檢測代碼中的特定問題或潛在錯誤。Clang-Check 提供了強大的 API 和框架,使開發人員能夠根據自己的需求創建定制化的代碼檢查工具。功能描述 3:clang+llvm 構建更多軟件包-LLVM 平行宇宙計劃鑒于 LLVM 項目的發展趨勢及開發者的需求,是否可以基于 LLVM 技術棧構建 openEuler 版本呢?LLVM 平行宇宙計劃是由 Compiler SIG 和 RISCV SIG 聯合發起的,致力于使用 LLVM 項目技術棧構建 openEuler。功能使用方法探測問題列表快速內存錯誤檢測-f
153、sanitize=address Out-of-bounds accesses to heap/stack/globals Use-after-free Use-after-return Use-after-scope Double-free invalid free Memory leaks數據競爭檢測-fsanitize=thread Data races內存檢測器-fsanitize=memory uninitialized reads use-after-destruction未定義行為檢測-fsanitize=undefined integer-divide-by-zero Bitw
154、ise shifts that are out of bounds for their data type Dereferencing misaligned or null pointers Signed integer overflow硬件輔助內存錯誤檢測-fsanitize=hwaddress Same and AddressSanitizer堆棧緩沖區溢出-fsanitize=safe-stack 保護程序免受基于堆棧緩沖區溢出的攻擊高效并發與極致性能057openEuler 操作系統技術白皮書創新項目總覽應用場景作為 C/C+/Rust 語言編譯器可以用于編譯構建服務器、云計算、邊緣計
155、算、嵌入式場景應用編譯構建。23.03 已發布嵌入式場景下 image,編譯時間下降 16%,codesize 下降 1.5%,Coremark 性能提升 6%。另外作為通用編譯器,推薦用于通用計算主力場景,如數據庫、分布式存儲、虛擬化等場景。倉庫地址https:/ 源碼倉https:/ 相對 GCC 更容易進行編譯優化增強,具備更新的性能潛力;另外 LLVM 具有功能更強大的 LTO 能力。軟件包性能:軟件包維護者可以選擇 GCC 或 LLVM(性能更好者)作為構建工具鏈,可以釋放更多精力在軟件功能實現上。代碼安全:clang+llvm 通常對 C/C+語言標準遵從更嚴格,同時通過靜態檢查及
156、 Sanitizer 動態檢測可能發現軟件包潛在缺陷。高效并發與極致性能058openEuler 操作系統技術白皮書創新項目總覽OneAll 可編程內核ebpf-sig服務器云計算基于 eBPF 的可編程調度框架,支持內核調度器動態擴展調度策略,以滿足不同負載的性能需求,具備以下特點:標簽管理機制:開放對任務和任務組進行標簽標記的能力,用戶和內核子系統可通過接口對特定工作負載進行標記,調度器通過標簽可以感知特定工作負載的任務。支持搶占、選核、選任務等功能點的策略擴展:可編程調度框架支持 CFS 調度類搶占,選核,選任務等功能的策略擴展,提供精心設計的擴展點和豐富的輔助方法,幫助用戶簡單,高效的
157、擴展策略。功能描述應用場景開發人員、系統管理人員基于可編程內核框架針對不同應用場景,開發自定義策略,動態加載到內核執行?;A庫函數與策略庫,提供編寫用戶態策略的基礎庫函數與可配置的調度策略模板,支持用戶快速編排和擴展,對用戶編程友好。標簽管理機制,支持對任務/進程/組/用戶等對象的自定義擴展標簽,承載用戶態與內核態,內核態組件之間的協同調度語義。調度組件 hook 點與 helper 函數,支持對 CFS 調度類的選核、選任務、搶占流程的自定義策略注入。event/maphookexportsyscall/mapUserprogrammablepolicy調度Kernelprogrammabl
158、eframework基礎策略庫(.lib)可編程基礎庫(tools)標簽管理(任務/進程/組/用戶)A 策略B 策略C 策略.內存網絡文件系統選核負載均衡選任務.topo helpertag helperload helper.高效并發與極致性能059openEuler 操作系統技術白皮書創新項目總覽StratoVirt 輕量虛機運行時Virt SIG云計算StratoVirt是計算產業中面向云數據中心的企業級虛擬化平臺,實現了一套架構統一支持虛擬機、容器、Serverless三種場景。StratoVirt 在輕量低噪、軟硬協同、Rust 語言級安全等方面具備關鍵技術競爭優勢。技術挑戰隨著近幾
159、十年 QEMU 虛擬化軟件的發展,核心開源組件代碼規模越來越大,其中包含大量陳舊的歷史代碼,同時近年來CVE 安全漏洞頻出,安全性差、代碼冗余、效率低問題越來越明顯。業界逐步演進出以內存安全語言 Rust 實現的 Rust-VMM 等架構。安全、輕量、高性能的全場景(數據中心、終端、邊緣設備)通用的虛擬化技術是未來的趨勢。StratoVirt作為 openEuler 開源平臺上實現的下一代虛擬化技術應運而生。應用場景 StratoVirt 配合 iSula 容器引擎和 Kubernetes 編排引擎可形成完整的容器解決方案,支持 Serverless 負載高效運行。倉庫地址https:/ 軟件
160、架構項目介紹功能描述StratoVirt 是一種基于 Linux 內核虛擬化(KVM)的開源輕量級虛擬化技術,在保持傳統虛擬化的隔離能力和安全能力的同時,降低了內存資源消耗,提高了虛擬機啟動速度。StratoVirt 可以應用于微服務或函數計算等 Serverless 場景,保留了相應接口和設計,用于快速導入更多特性,直至支持通用虛擬化。StratoVirt 的核心架構如下圖所示,從上到下分為三層:外部 API:StratoVirt 使用 QMP 協議與外部系統通信,兼容 OCI,同時支持對接 libvirt;bootloader:輕量化場景下使用簡單的 bootloader 加載內核鏡像,而
161、不像傳統的繁瑣的 BIOS 和 Grub 引導方式,實現快速啟動;通用虛擬化場景下,支持 UEFI 啟動;模擬主板 microvm:為了提高性能和減少攻擊面,StratoVirt 最小化了用戶態設備的模擬。模擬實現了 KVM 仿真設備和半虛擬化設備,如 GIC、串行、RTC 和 virtio-mmio 設備;通用機型:提供 ACPI 表實現 UEFI 啟動,支持添加 virtio-pci 以及 VFIO 直通設備等,極大提高虛擬機的 I/O 性能;StratoVirtQMP-Compatible-APIbootloaderCPUroot portvirtio-pciVFIOsystem bus
162、PCle hostPCle busfwcfgpflashinterrupt controllerlegacy devicesvirtio-mmio高效并發與極致性能060openEuler 操作系統技術白皮書創新項目總覽編譯器插件框架Compiler SIG服務器云計算編譯器插件框架(compiler plugin framework)提供面向 MLIR 的插件開發接口,以一次開發、多編譯器落地為目標,避免編譯工具的重復開發。編譯器插件框架作為插件工具開發平臺,提供對工具兼容性、完整性校驗等公共能力的支持與維護,幫助用戶以插件的形式提高優化特性的開發效率。技術挑戰當前存在兩款主流的編譯器框架為
163、 GCC 和 LLVM。市場上大量的編譯工具和編譯擴展能力,都是基于這兩類編譯器完成的。由于任何的編譯工具都需要選擇兩種編譯框架之一進行開發,而當其需要使能其他框架時,便會出現重復開發的問題。因為編譯器框架的不同,導致即使是相同的工具設計邏輯,其代碼也無法復用,需要在不同的編譯器框架上做重復的代碼開發并分別進行維護,這樣直接拉高了工具的開發和維護成本。因此,當前編譯工具的開發存在以下幾方面的難點:需要深入修改編譯器,難度高、難維護。編譯工具需要同時使能兩種編譯框架時,存在重復開發的問題。缺少兼容性等公共能力,拉高工具的開發和維護成本。應用場景場景一:編譯工具開發者構建工具,并需要完整性校驗等公
164、共能力。有多編譯器落地需求的工具開發者,可以使用編譯器插件框架作為開發平臺,基于 MLIR 進行一次工具開發,即可在 GCC等主流編譯器上使能工具。編譯器插件框架統一提供對兼容性檢測、二進制完整性校驗等公共能力的支持和維護。場景二:開發者以插件形式快速使能與驗證編譯相關工具。編譯器插件框架提供以插件的形式運行在 GCC 等主流編譯器上。無需對編譯器進行源碼改動,提高開發效率。倉庫地址https:/ 提供基于 MLIR 的插件開發能力,支持與 GIMPLE 等編譯器中間表示的轉換。插件框架提供對 19 類 GIMPLE 的支持。支持兼容性檢測、二進制完整性校驗等公共能力。支持安全編譯選項校驗、操
165、作合法性校驗等插件運行監控校驗功能。支持插件客戶端作為 GCC 插件加載,可以在完全不需要修改 GCC 編譯器代碼的情況下實現插件功能。支持為鏈接時優化(LTO,Link Time Optimization)使能插件框架。插件代碼GCC等主流編譯器插件服務器插件客戶端跨進程通信MLIR插件開發 API日志記錄通信引擎運行監控器兼容性校驗完整性校驗插件事件管理日志記錄通信引擎運行監控器IR 轉換編譯器插件框架強安全與高可靠061openEuler 操作系統技術白皮書創新項目總覽IMA 內核完整性度量架構security-facility服務器云計算IMA 是內核中提供對文件完整性保護的一個強制訪
166、問控制(MAC)子系統,自 Linux 內核 2.6 版本引入。IMA 摘要列表是在此基礎之上增加構建階段文件度量摘要基線值的生成和保護,啟動階段驗證導入度量基線值,在運行過程中對系統重要文件進行完整性保護。技術挑戰現網運行環境復雜,在運行階段可能暴露在各種形式的攻擊下,攻擊者篡改了系統原先攜帶的可執行文件,或植入未知的惡意程序,可能對系統造成不可預知的損害,IMA 完整性度量特性是對可信啟動機制的延伸,在內核態可信的前提下,進一步提供對用戶態文件的完整性保護。IMA 能夠基于用戶自定義的策略對通過特定系統調用(例如 execve、mmap)訪問的文件進行度量,度量結果可被用于兩個目的:度量(
167、measure):檢測對系統的意外或惡意修改,支持本地或遠程證明。評估(appraise):度量文件并與預先存儲的參考值比較,以保護本地文件完整性。Linux 內核原生 IMA 特性存在痛點問題如下:部署復雜:原生 IMA 機制通過文件擴展屬性存放完整性信息,需要先將系統設置為 fix 模式,為文件預生成并標記擴展屬性后重啟進入 enforce 模式,才能開啟 IMA 校驗保護;性能下降:原生 IMA 度量模式下,每次觸發文件度量,都會觸發 TPM PCR 寄存器擴展,TPM 為低速芯片,擴展流程會導致大量時間消耗;原生 IMA 校驗模式下,每次觸發文件校驗,都需要驗證文件擴展屬性中存放的簽名
168、或 HMAC,驗證過程也會產生時間消耗,導致性能下降。項目介紹功能描述IMA 作為可信計算在 openEuler 中的實現之一,連接了信任鏈中的可信操作系統和可信應用。IMA Digest Lists(IMA 摘要列表擴展)是 openEuler 對內核原生完整性保護機制的增強,它取代了原生 IMA 機制為文件完整性提供保護?!罢斜怼保╠igest lists)是一種特殊格式的二進制數據文件,它與 rpm 包一一對應,記錄了 rpm 包中受保護文件(即可執行文件和動態庫文件)的哈希值。當正確配置啟動參數后,內核將維護一個哈希表(對外不可見),并通過 securityfs 對外提供更新哈希表
169、的接口(digest_list_data 和 digest_list_data_del)。摘要列表在構建階段經過私鑰簽名,通過接口上傳到內核時,需經過內核中的公鑰驗證。邊緣計算嵌入式強安全與高可靠062openEuler 操作系統技術白皮書創新項目總覽應用場景IMA 摘要列表主要在數據中心、云計算、邊緣、嵌入式等場景中為保證系統運行完整性的場景下使用,也是可信計算應用場景里面的關鍵技術。通過摘要列表構造可信的本地環境,使得可信計算的信任鏈能夠擴展到應用層,同時也支持通過度量日志對接遠程證明,即可驗證被測試平臺加載的文件及系統運行狀態是否可信。倉庫地址https:/ IMA 評估的情況下,每當訪
170、問一個可執行文件或動態庫文件,就會調用內核中的鉤子,計算文件內容和擴展屬性的哈希值,并在內核哈希表中進行搜索,如果匹配就允許文件的執行,否則就拒絕訪問。digest_list_data/path/to/digest_listdigest_list_data_delhashtableKernelSpaceUserSpaceechoverify&parseechoverify&parse計算文件擴展屬性摘要值計算文件內容摘要值訪問文件、出發系統調用中的鉤子是否在策略規定的保護范圍內?是否能在內核 XX 表中找到?拒絕訪問NNNYYY允許訪問是否與security.ima一致?強安全與高可靠063o
171、penEuler 操作系統技術白皮書創新項目總覽 kunpengsecl 鯤鵬安全庫security-facility服務器云計算鯤鵬安全庫開發運行在鯤鵬處理器上的基礎安全軟件組件,先期主要聚焦在遠程證明等可信計算相關領域,使能社區安全開發者。技術挑戰在可信計算、機密計算和可信 AI 領域的服務器安全技術在不斷與時俱進地迅速發展,服務器硬件所提供的安全特性往往與普通軟件開發者和用戶的需求之間存在易用性的鴻溝,需要通過安全軟件中間件的方式來拉近軟件開發者與硬件安全特性之間的距離。項目介紹邊緣計算嵌入式鯤鵬安全庫的每個特性都可以由兩大部分組成:組件和服務。組件部署在提供資源(計算、存儲、網絡)為用
172、戶運行工作負載的工作服務器節點上,將平臺安全可信能力轉化為軟件接口,并將其提供給服務。服務則部署在專門的管理服務器節點上,匯聚來自所有工作服務器節點的安全可信能力,并將其提供給用戶及其指定的管理工具以達成用戶的對系統安全可信設計的具體要求。鯤鵬安全庫的首個安全特性就是遠程證明,目的就是幫助用戶獲取工作服務器節點的軟硬件可信狀態,支持端到端的可信計算遠程證明解決方案,讓各種資源管理工具可以根據可信報告制定策略,對各種服務器資源進行差異化的調度和使用。鯤鵬安全庫的遠程證明特性目前支持:基于 TPM 的通用平臺遠程證明。對鯤鵬服務器 iTrustee TEE 的遠程證明。AppsKunpengSec
173、LRA ServiceKernelF/WChipRoTRA ClientBIOSBMCTrusted F/WClientAPIRestAPIPrivacyCAVerifierTEE AK IssuerCPUNPUGPUIPUxPUTPMTCMTPCMDICEChip driverRoT driverTEE driverIMASELinuxTrusted AppTEE OSTB ProvisionerRA AgentRoT SW stackRA HubxPU RA ClientNetwork MgmtOpenStackK8SSIEMetc強安全與高可靠064openEuler 操作系統技術白皮書
174、創新項目總覽應用場景應用場景 1:可信云主機通過云物理服務器的可信啟動與平臺遠程證明的結合,對虛機運行的主機環境進行可信驗證,為云主機用戶提供安全可信的底層支持,同時借助虛機 vtpm 的特性完成對虛機可信啟動和虛機遠程證明的支持,進而使能可信云主機用戶對可信云主機自身的安全可信狀態進行直接感知,增強用戶對云主機安全可信的信心。應用場景 2:密鑰緩存管理利用平臺遠程證明,TEE 遠程證明以及 TEE 本地證明對可信應用(TA)需要從企業或云基礎設施的密鑰管理服務(KMS)獲取并緩存密鑰的場景進行安全加固,讓密鑰的傳輸、存貯和使用中的安全性得到更好的保障。倉庫地址https:/ 操作系統技術白皮
175、書創新項目總覽secCryto 全棧國密 security-facility服務器云計算openEuler 操作系統國密旨在系統中提供國密算法庫、證書、安全傳輸協議等密碼服務支持,并對操作系統用戶鑒別、磁盤加密、完整性保護等使用到密碼算法的關鍵安全特性進行國密算法支持。技術挑戰國產商用密碼應用加速,OS 大量開源軟件涉及密碼算法,但國密算法普遍支持程度低,系統自身安全功能及上層應用無法使用 OS 原生的國密能力來保障業務安全。同時當前國密算法性能優化不足,國密算法的應用也帶來新的性能損耗,需軟硬協同進一步優化。項目介紹功能描述openEuler 當前支持的國密特性包括:openSSL/libg
176、crypt 等用戶態算法庫支持 SM2/3/4 算法;openSSH 支持 SM2/3/4 國密算法套件;openSSL 支持國密 TLCP 協議棧;磁盤加密(dm-crypt/cryptsetup)支持 SM3/SM4 算法;用戶身份鑒別(pam/libuser/shadow)支持 SM3 口令加密;入侵檢測(AIDE)支持 SM3 摘要算法;內核加密框架(crypto)支持 SM2/3/4 算法,以及 AVX/CE/NEON 等指令集優化;內核完整性度量架構(IMA/EVM)支持 SM3 摘要算法和 SM2 證書;內核模塊簽名/驗簽支持 SM2 證書;內核 KTLS 支持 SM4-CBC
177、和 SM4-GCM 算法;OS 安全啟動(shim/grub)支持國密證書簽名驗簽;鯤鵬 KAE 加速引擎支持 SM3/4 算法加速。強安全與高可靠066openEuler 操作系統技術白皮書創新項目總覽應用場景OS 全棧國密主要應用于服務器、云計算等場景,通過在內核及用戶態支持 SM2/3/4 算法,自身完成國密改造,作為信息系統底座支撐全行業國密使能,滿足密評。倉庫地址https:/ 國密規劃全景圖CA機構應用程序密碼應用操作系統硬件密碼服務HTTPS服務器安全協議棧國密證書/密鑰國密算法庫隨機數發生器硬件算法使能機密計算服務HTTPS客戶端運行態、傳輸態、存儲態數據瀏覽器SSH客戶端加密
178、協處理器已支持TEECPU硬件平臺SM1SM7SF33SM9ZUC加密指令集加密設備USBKEYBIOSOS根證書遠程證明服務器可信芯片未支持/不涉及真實性保護身份鑒別機密性保護磁盤加密完整性保護安全啟動可信啟動內核模塊驗簽靜態完整性保護動態完整性保護證書生成數據簽名數據驗簽證書吊銷傳輸層協議應用層協議網絡層協議SM2SM3SM4硬件加速使能應用數字證書安全啟動根證書強安全與高可靠067openEuler 操作系統技術白皮書創新項目總覽secGear 機密計算統一開發框架confidential-computing SIG服務器云計算secGear 是面向計算產業的機密計算安全應用開發套件,屏
179、蔽不同的 TEE(Trusted Execution Environment)SDK 差異提供統一的開發框架,同時提供開發工具、通用安全組件等,幫助安全應用開發者聚焦業務,提升開發效率。技術挑戰隨著機密計算技術的快速發展,各芯片廠商紛紛推出自己的機密計算解決方案,安全應用開發者面臨以下幾個難點:生態隔離:同一機密計算應用,想要部署到其他平臺,需要基于不同平臺 SDK 做二次開發。難開發:部分平臺僅提供底層接口,使用困難,學習開發成本較高。低性能:機密計算應用需要拆分成 REE-TEE 兩部分,頻繁切換性能下降明顯。生態隔離:同一機密計算應用,想要部署到其他平臺,需要基于不同平臺 SDK 做二次
180、開發。應用場景secGear 在數據庫、硬件密碼機替代、AI 模型和數據保護、大數據等場景應用廣泛,助力金融、電信等行業客戶業務快速遷移到機密計算環境,保護數據運行時安全。倉庫地址https:/ 的整體架構如圖所示,主要提供三大能力:跨架構:屏蔽不同 SDK 接口差異,提供統一開發接口,實現不同架構共源碼。易開發:提供開發工具、通用安全組件等,幫助用戶聚焦業務,開發效率顯著提升。高性能:提供零切換特性,在 REE-TEE 頻繁交互、大數據交互等典型場景下提升 REE-TEE 交互性能10 倍+。secGear 架構圖場景金融風控硬件密碼機替代軟硬融合全密態數據庫AI模型和數據保護SDKSGX
181、SDKTEEOS SDKQingtian SDK硬件Intel SGX鯤鵬Trustzone華為云擎天Enclave開發框架Component&Service安全通道.secGear Unified FrameworkSDK Unified API開發工具零切換遠程證明強安全與高可靠068openEuler 操作系統技術白皮書創新項目總覽secPaver 應用程序安全策略工具security-facility服務器云計算secPaver 是一個 SELinux 安全策略開發工具,其核心理念是抽象封裝出一組通用的策略描述方法和策略操作接口,在進行策略開發時,開發者無需詳細了解安全機制細節,只需使
182、用 secPaver 配置策略描述即可,具體的安全策略由 secPaver 自動生成。技術挑戰盡管 Linux 提供了 SELinux、AppArmor 等強制訪問控制機制使系統更加安全,但是至今為止,它們在實際場景下并未得到廣泛的應用。主要的原因還是 SELinux、AppArmor 等安全策略配置復雜:SELinux 策略復雜,系統中存在數十萬條規則,給單個應用配置安全策略至少需要數百條規則;SELinux 以白名單的形式組織策略,一旦策略配置疏漏,應用程序甚至無法正常運行。應用開發者缺乏安全策略定義經驗,大部分應用程序沒有在開發過程中完成安全策略的定義,而系統管理員無法了解每一個應用程序
183、的運行原理、資源訪問等細節,無法詳細定義應用程序的安全策略;因此,需要提供簡化的安全策略配置工具幫助開發者及系統管理員針對需要運行的應用快速定義自己的安全策略。項目介紹功能描述應用程序安全策略是指對一個程序的運行設定安全規則,符合規則的行為允許執行,否則拒絕執行。合理的安全策略可以有效提高系統的安全性和韌性,即使應用程序被攻擊,也無法執行超出規則限制的動作。安全策略的核心是訪問控制,即對應用程序對資源的訪問增加檢查,如文件讀寫、socket 使用等,并由操作系統判斷訪問是否需要被攔截。我們提供此工具幫助用戶針對應用程序生成對應的安全策略,簡化系統管理員對復雜安全策略的管理。相比傳統的安全策略開
184、發方式,使用secPaver 可以降低開發者對安全機制的知識背景要求,簡化策略開發流程,提高策略開發效率,實現軟件和安全策略同步發布。策略完善應用程序試運行審計數據收集安全策略開發手動/半手動開發,速度慢需要不斷迭代開發,周期長難以覆蓋應用程序的全部安全行為要求開發人員熟悉安全機制,具有安全背景自動生成策略,速度快覆蓋應用程序的全部安全行為對開發人員安全背景要求低傳統安全策略開發方式開發團隊運維團隊(安全管理員)開發團隊基于secPaver的安全策略開發方式安全策略開發誰來開發(Who?)何時開發(When?)策略質量(Quality?)應用程序設計應用程序設計應用程序行為收集應用程序開發安全
185、行為描述安全策略生成安全策略發布應用程序和安全策略同步部署應用程序發布安全策略部署應用程序開發應用程序部署強安全與高可靠069openEuler 操作系統技術白皮書創新項目總覽應用場景secPaver 工具幫助用戶在應用開發階段輔助生成對應的安全策略。從安全策略的開發周期來看,secPaver 的功能涵蓋策略設計、迭代開發、策略發布等一系列流程。倉庫地址https:/ 使 用 go 語 言 開 發,為 客戶端/服務端架構,用戶可以通過客戶端工具與服務端進程交互,進行安全策略開發工作。服務端為一個systemd 服務進程,提供策略開發所需要的具體功能。secPaver 采用go-plugin 機
186、制,對于不同安全機制的開發的差異化功能實現,封裝在不同的插件,由服務端進程加載調用。secPaver 當前支持 SELinux 策略開發功能,未來將支持 AppArmor 以及更多的策略開發功能??蛻舳斯ぞ呙钚锌蛻舳斯ぞ叻斩诉M程策略功能插件系統策略GRPC/Protobuf工程管理功能插件管理功能策略管理功能可視化界面(開發中)生成策略管理secPaver生成策略策略源文件策略安裝/卸載腳本文件其他策略文件已完成SELinux策略插件策略自動生成策略一鍵加載/卸載策略自動補全容器策略增強AppArmor策略插件策略自動生成策略一鍵加載/卸載策略自動補全工程文件管理secPaver工程工程定
187、義文件資源信息文件應用行為描述文件其它工程文件安全策略插件管理Golang PluginPolicy APl(libselinux/libsepol/libapparmor/.)openEuler系統策略開發中secPaver功能定位:端到端的策略開發工具策略開發策略測試策略發布提供統一策略配置文件格式,最大程度屏蔽安全機制細節。提供統一的操作接口,實現不同安全機制策略的查詢/安裝/卸載。自動收集分析規則審計日志,解析缺失策略,加速策略補全。提供Web UI工具支,進一步簡化策略配置,增強直觀性。多種安全機制策略一鍵生成,無需手動編寫。支持策略包一鍵導出,同時自動生成策略安裝腳本。策略設計強安
188、全與高可靠070openEuler 操作系統技術白皮書創新項目總覽sysMaster 系統管理大師dev-utils SIG服務器云計算sysMaster 是一套超輕量、高可靠的服務管理程序集合,是對 1 號進程的全新實現,旨在改進傳統的 init 守護進程。它使用 Rust 編寫,具有故障監測、秒級自愈和快速啟動等能力,從而提升操作系統可靠性和業務可用度。技術挑戰在 Linux 操作系統中,1 號進程(通常為 init 進程)是所有用戶態進程的祖先。init 進程是系統啟動時第一個被創建的進程,負責啟動和管理其他所有進程,并在系統關機時關閉這些程序。在現代 Linux 系統中,init 進程
189、已經被 systemd 進程取代,但是 1 號進程(最小功能包括系統啟動和僵尸進程回收)的概念仍然存在。1 號進程處于系統關鍵位置,負責系統初始化和運行時服務管理,它面臨如下挑戰:可靠性差:1 號進程的功能問題帶來的影響會被放大,自身故障時,必須重啟操作系統才能恢復。復雜性高:systemd 成為 1 號進程事實上的標準。它引入了許多新的概念和工具,諸多擴展組件間依賴關系繁雜,難以針對實際使用場景進行裁剪。項目介紹功能描述sysMaster 支持進程、容器和虛擬機的統一管理,并引入了故障監測和自愈技術,從而解決 Linux 系統初始化和服務管理問題,其適用于服務器、云計算和嵌入式等多個場景。s
190、ysMaster 實現思路是將傳統 1 號進程的功能解耦分層,結合使用場景,拆分出 1+1+N 的架構。如下面 sysMaster 系統架構圖所示,主要包含三個方面:sysmaster-init:新的 1 號進程,功能極簡,代碼千行,極致可靠,提供系統初始化/僵尸進程回收/監控?;畹裙δ?,可單獨應用于嵌入式場景。sysmaster-core:承擔原有服務管理的核心功能,引入可靠性框架,使其具備崩潰快速自愈、熱升級等能力,保障業務全天在線。sysmaster-extends:使原本耦合的各組件功能獨立,提供系統關鍵功能的組件集合(如設備管理 devMaster,總線通信 busMaster 等)
191、,各組件可單獨使用,可根據不同場景靈活選用。邊緣計算嵌入式sysMaster 軟件架構傳統服務器OS:數據庫/分布式存儲systemd生態systemd兼容工具Job調度器可靠性框架sysmaster-coresysmaster-init并行啟動按需啟動延遲加載自恢復故障檢查狀態外置數據恢復熱升級容器優化型OS:容器引擎/容器應用桌面環境OS:KDE/GNOMEudevdsd-bus.sysmaster-extsdevMasterbusMaster.N11進程回收監控?;钕到y初始化事件驅動器Unit管理器unitPlugin強安全與高可靠071openEuler 操作系統技術白皮書創新項目總覽
192、應用場景sysMaster 可應用于容器、虛擬化、服務器和邊緣設備,帶來極致可靠和極度輕量的體驗。倉庫地址https:/ 組件架構簡單,提升了系統整體架構的擴展性和適應性,從而降低開發和維護成本。其主要特點如下:具有自身故障秒級自愈和版本熱升級能力。具備快速啟動的能力,更快的啟動速度和更低的運行底噪。采用插件化機制,支持按需動態加載各種服務類型。提供遷移工具,支持從 Systemd 快速無縫遷移到 sysMaster。結合容器引擎(iSulad)和 Qemu,提供統一的容器實例和虛擬化實例的管理接口。未來,sysMaster 將繼續探索在多場景下的應用,并持續優化架構和性能以提高可擴展性和適應
193、性。同時,我們還將開發新的功能和組件以滿足容器化、虛擬化、邊緣計算等場景的需求。讓 sysMaster 成為一個強大的系統管理框架,為用戶提供更好的使用體驗和更高的效率。極簡運維與開發072openEuler 操作系統技術白皮書創新項目總覽A-Ops 智能運維Ops SIG服務器云計算A-Ops是一款基于操作系統維度的故障運維平臺,提供從數據采集,健康巡檢,故障診斷,故障修復的到智能運維解決方案。技術挑戰云基礎設施在近幾年隨著云原生、無服務化等技術的實施,其運維的復雜性變得越來越有挑戰性,尤其是亞健康問題特點(間歇性出現、持續時間短、問題種類多、涉及范圍廣等)給云基礎設施故障診斷帶來重要挑戰。
194、亞健康故障診斷的挑戰(包括可觀測能力、海量數據管理能力、AI 算法的泛化能力等)在 Linux 場景中變的尤為突出。在 openEuler 開源操作系統中,現有的運維手段不足以及時發現、定位亞健康問題,存在包括:缺乏在線、持續性監控能力;缺乏應用視角精細化的觀測能力;缺乏基于全棧觀測數據的自動化、AI 分析能力等問題。然而,針對亞健康故障的診斷能力其難點包括:全棧的無侵入可觀測觀測能力。持續、精細化、低負載的監控能力。自適應不同應用場景的異常檢測、可視化故障推導能力。業務無感的補丁管理、修復。項目介紹功能描述針對上述問題 A-Ops 項目包括了諾干子項目:覆蓋故障發現(gala),故障定位支撐
195、(X-diagnosis),缺陷修復(apollo)等。下面分別介紹下各個子項目:gala 項目介紹:基于 eBPF+java agent無侵入觀測技術,并以智能化輔助,實現亞健康故障(比如性能抖動、錯誤率提升、系統卡頓等問題現象)診斷。其架構如圖:功能列表如下:在線應用性能抖動診斷:提供數據庫類應用性能在線診斷能力,包括網絡類(丟包、重傳、時延、TCP 零窗等)問題、I/O 類(磁盤慢盤、I/O 性能下降等)問題,調度類(包括sysCPU沖高、死鎖等)問題、內存類(OOM、泄漏等)問題等。系統性能診斷:提供通用場景的 TCP、I/O 性能抖動問題診斷能力。管理節點gala-anteater:
196、可視化根因推導gala-spider:全流程拓撲讀取寫入Prometheusarangodb拓撲計算基于統計模型的異常識別基于實時拓撲的可視化推導OpenTelemetry生態接口gala-gopher:融合型非侵入觀測技術內核精細化觀測語言運行時觀測任意基礎設施物理機虛擬機容器公有云混合云openEuler&isula&stratovirt系統調用觀測L4/L7層全流程觀測生產節點極簡運維與開發073openEuler 操作系統技術白皮書創新項目總覽 系統隱患巡檢:提供內核協議棧丟包、虛擬化網絡丟包、TCP 異常、I/O 時延異常、系統調用異常、資源泄漏、JVM 異常、應用 RPC 異常(包
197、括 8 種常見協議的錯誤率、時延等)硬件故障(UCE、磁盤介質錯誤等)等秒級巡檢能力。系統全棧 I/O 觀測:提供面向分布式存儲場景的 I/O 全棧觀測能力,包括 GuestOS 進程級、Block 層的 I/O 觀測能力,以及虛擬化層存儲前端 I/O 觀測能力,分布式存儲后端 I/O 觀測能力。精細化性能 Profiling:提供多維度(包括系統、進程、容器、Pod 等多個維度)、高精度(10ms 采樣周期)的性能(包括 CPU 性能、內存占用、資源占用、系統調用等類型)火焰圖、時間線圖,可實時在線持續性采集。K8S Pod 全??捎^測及診斷:提供 K8S 視角的 Pod 集群業務流實時拓撲
198、能力,Pod 性能觀測能力、DNS 觀測能力、SQL 觀測能力等。X-diagnosis 項目介紹:X-diagnosis 是 Linux 操作系統運維套件,主要包含問題定位工具集、系統異常巡檢、ftrace 增強等功能。功能列表如下:豐富的問題定位工具集:提供了網絡、IO、CPU 調度、文件系統、內存等類型的問題定位工具,例如 ICMP、TCP、UDP 丟包及異常檢測、系統文件只讀或 IO 慢等場景的定位。豐富的系統問題巡檢項:支持網絡、CPU 調度、磁盤、服務及配置、系統資源等類型的問題項巡檢,巡檢結果支持日志和接口方式輸出告警。例如 DNS 配置異常、CPU 沖高、磁盤分區空間滿、時間跳
199、變、進程數超限制等異常項巡檢。提供系統調試和分析工具 eftrace 和 ntrace。eftrace 是 ftrace 工具的增強,支持自動計算結構體偏移量,降低了 ftrace使用難度;ntrace 支持快速輸出協議棧固定函數kprobe的關鍵參數,協助快速定位協議棧流程問題,同時支持IP、端口、協議類型過濾。apollo 項目介紹:智能補丁管理框架,提供 CVE/Bug 實時巡檢,冷熱補丁修復,實現自動發現和零中斷修復。功能列表如下:補丁服務:支持冷熱補丁訂閱,提供補丁在線獲取能力 智能補丁巡檢:支持基于單機和集群的 CVE/Bug 巡檢和通知能力,具備冷熱補丁混合管理,一鍵式修復和回退
200、功能,極大減少補丁管理成本。ragdoll:配置導致的故障比例占 OS 問題總數達 50%以上,ragdoll 提供系統配置監控能力,實時發現系統配置變化,快速定位配置錯誤問題。配置基線:支持按照集群基線已有配置文件,可以通過插件和方式擴展配置文件類型,支持客戶自定義的配置文件。配置溯源:支持后臺自動巡檢系統配置文件變更情況,并通過告警和郵件通知管理員。配置定位:通過 ebpf 監控文件操作快速定位配置文件變更原因(開發中)。極簡運維與開發074openEuler 操作系統技術白皮書創新項目總覽應用場景A-Ops 在 openEuler 等 Linux 環境主要面向場景包括數據庫、分布式存儲、
201、虛擬化、云原生等場景。助力金融、電信、互聯網等行業客戶提供全??捎^測能力,能實現亞健康故障診斷;集群情況下人為導致的配置錯誤具備實時檢查能力;冷熱補丁混合管理能力,避免引入熱補丁導致的補丁管理復雜。針對內核高分 CVE 直接提供熱補丁,避免修復 kernel 緊急問題而需要重啟系統。倉庫地址https:/ 軟件架構智能運維平臺A-Ops系統智能運維硬件外圍包內核外設MemoryCPUGala-xragdolldianaapollo日志分析架構感知異常檢測精準度量智能算法根因分析在線調優應用拓撲系統數據湖用戶態熱補丁系統智能代理系統自動配置系統服務熱替換(systemd、dbus、qemu等)內
202、核熱替換模塊熱替換內核熱補丁智能探針無感升級Intel鯤鵬狀態保存與恢復網卡磁盤.Samsung極簡運維與開發075openEuler 操作系統技術白皮書創新項目總覽CPDS 容器故障檢測系統sig-CloudNative邊緣計算云計算容器集群故障檢測系統,該軟件系統實現了對容器 TOP 故障、亞健康檢測的監測與識別。技術挑戰業務規模的增長,容器集群規模不斷擴張,IT 運維壓力也成比例增大。各種軟、硬件故障而造成的業務中斷,成為穩定性影響的重要因素之一。目前業內對容器集群故障的檢測方案主要基于集群組件狀態檢測、服務入口監控、自定義接口檢活等,具有一定的局限性,難以對服務的亞健康狀態進行檢測與識
203、別。處理方式也缺乏故障的診斷與執行策略的制定,難以處理一些關鍵、核心故障。項目介紹功能描述CPDS(Container Problem Detect System)容器故障檢測系統由 4 個組件組組成,整體采用微服務架構,組件之間通過 API 進行通信。信息采集組件(CPDS-Agent):負責采集集群各節點的容器和系統原始數據 異常檢測組件(cpds-detector):根據配置的異常規則對各節點原始數據進行分析,檢測節點是否存在異常 故障/亞健康診斷組件(cpds-analyzer):根據配置的診斷規則,對異常節點進行健康分析,計算出節點當前健康狀態 用戶交互組件(cpds-dashboa
204、rd):提供 web 頁面,對集群內節點健康情況進行展示,支持診斷規則配比下發??蛻舳嗽\斷結果查看寫入寫入寫入檢測數據離線/斷點上報檢測數據在線上報異常檢測模塊信息采集模塊診斷規則下發規則下發異常檢測數據分析在線上傳數據采集離線上傳/斷點續傳TOP故障/亞健康診斷模塊診斷規則設置用戶交互模塊可視化診斷結果診斷結果持久化檢測數據持久化故障/亞健康診斷結果異常檢測結果數據預處理持久化數據原始數據異常規則診斷配置診斷規則實時查看歷史查看容器數據源節點數據源極簡運維與開發076openEuler 操作系統技術白皮書創新項目總覽應用場景CPDS 主要應用在云原生場景的基礎設施中,提供容器集群故障檢測。倉
205、庫地址https:/ 采集集群信息在宿主機上實現節點代理,采用 systemd、initv、ebpf 等技術,對容器關鍵服務進行監控;對節點網絡、內核、磁盤 LVM等相關信息進行采集;對容器內的應用狀態、資源消耗情況、關鍵系統函數執行情況、io 執行狀態等執行異常進行監控。集群異常檢測采集各節點原始數據,基于異常規則對采集的原始數據進行異常檢測,提取關鍵信息。同時基于異常規則對采集數據進行異常檢測,后將檢測結果數據和原始據進行在線上傳,并同步進行持久化操作。節點、業務容器故障/亞健康診斷基于異常檢測數據,對節點、業務容器進行故障/亞健康診斷,將分析檢測結果進行持久化存儲,并提供 UI 層進行實
206、時、歷史的診斷數據查看。極簡運維與開發077openEuler 操作系統技術白皮書創新項目總覽CPM4OSSP 操作系統軟件包集中管理平臺ops SIG服務器操作系統軟件包集中管理平臺(Centralized management platform for operating system software package)(以下簡稱:CPM4OSSP)是由北京凝思軟件股份有限公司設計的針對操作系統軟件包集中管理平臺,該軟件實現多個服務器的軟件包安裝、升級、卸載統一管理的功能。技術挑戰目前大部分 Linux 操作系統,均采用單個主機執行命令或者使用 ansible 等遠程工具從源服務器下載安裝
207、軟件包的方式,無法實現多個主機軟件包、軟件源的統一批量管理。針對這種場景,CPM4OSSP 設計了一種多節點集中統一軟件包管理解決方案。項目介紹CPM4OSSP 主要分為如下幾個模塊:軟件源管理模塊:實現軟件源模板的生成、查看、下發、編輯、刪除等操作,方便運維人員根據軟件源模板快速搭建依賴環境。軟件包管理模塊:實現軟件包的安裝、卸載、升級、回退等功能,簡化運維人員對軟件包的維護工作,提升運維效率。審計管理模塊:實現對用戶操作的全審計功能,方便事后定位問題。用戶管理模塊:通過用戶管理模塊,遵循三權分立原則,系統用戶、安全用戶、審計用戶各司其職,增強平臺的安全性和穩定性。應用場景本項目將為用戶提供
208、以下功能:提供易操作的圖形化管理界面,支持用戶分權管理。提供節點主機軟件源的更新,回退功能 提供節點軟件包更新檢測、一鍵升級、搜索功能 提供軟件包分類管理功能 提供軟件包卸載功能 提供操作審計功能倉庫地址https:/ 操作系統技術白皮書創新項目總覽CTinspectorOps SIG服務器云計算CTinspector 通過 ebpf vm 技術進行多節點協同帶狀態的監測與分析網絡流量,能夠快速定位網絡性能瓶頸。技術挑戰傳統性能檢測工具無法多節點協同,無法進行有狀態檢測,無法實時編程應對需求快速變化的困難。應用場景運維人員在網絡故障時經常需要 dump OVS 的流表查看問題在哪,但是流表太多
209、不方便查看,另外 dump 大量的流表也耗時甚多,這就需要對流表進行過濾。傳統的工具很難在線上臨時新增過濾字段,也難以做有狀態的過濾,比如查看轉發報文最多的 top 3 flow。使用 CTinspector 運維人員可以在 dump 流表時指定一個 ebpf 程序,將每條流傳入 ebpf 程序由其決定是否過濾,在其內部狀態數據中記錄報文統計數從而選出 top 3 flow。倉庫地址https:/ functionsApplicationEBPF VM runner(library)checkpointcheckpointcheckpointbasic kernelfunctionsebpfc
210、ompilerJITURLroutingTxRxebpf linkerloadermemorymappertransportorschedulerexecutor項目介紹CTinspector 通過 ebpf vm 技術進行多節點協同帶狀態的監測與分析網絡流量,能夠快速定位網絡性能瓶頸?;?ebpf vm 的 ACL 將傳統 iptables 命令行配置替換為 ebpf 程序,簡化 ACL 的功能開發、提高下發速度?;?ebpf VM 的 RPC 能夠節省網絡帶寬和縮小時延,以運維人員編好的腳步自適應的診斷網絡問題。CTinspector 的服務端框架分為內核函數、加載器、編譯器、路由器、
211、轉發器、調度器、執行器、內存映射幾大模塊。當外部任務下發時,腳本內容、上下文環境、運算結果等會被全部封裝在 ebpf VM 中,從而可以實現非交互式鏈式傳播,大大提高執行和結果運算的效率。極簡運維與開發079openEuler 操作系統技術白皮書創新項目總覽eggo K8s 集群部署解決方案sig-CloudNative服務器云計算eggo 項目旨在解決大規模生產環境 K8S 集群自動化部署問題、部署流程跟蹤以及提供高度的靈活性。技術挑戰集群部署一直是K8S集群使用的痛點,業界也給出了多種解決方案。但是openEuler云原生SIG組對集群部署存在很多訴求,而業界方案無法滿足。主要挑戰如下:多
212、種部署方式;在線和離線部署模式;集群內節點支持多種架構;可跟蹤、可溯源的集群配置管理。項目介紹功能描述eggo 可以作為獨立組件運行為個人提供集群部署和管理的能力;也可以與 GitOps 結合通過倉庫管理集群部署配置以實現云原生的集群管理部署方式。eggo 當前支持的能力如下:支持在多種常見的 Linux 發行版本上部署 k8s 集群:例如 openEuler/CentOS/Ubuntu;支持多架構節點部署,一個集群支持多種架構(AMD64/Arm64 等)的節點;支持 K8S 組件二進制部署方式;支持在線部署、離線部署模式。git repo配置庫元集群master部署點火點火點火監控部署任務
213、的調度,是由目標集群和元集群中worker節點的網絡親和性決定的。worker 1worker 2worker 3worker N鏡像倉庫operator集群節點1節點2節點N集群節點1節點2節點N集群節點1節點2節點N極簡運維與開發080openEuler 操作系統技術白皮書創新項目總覽應用場景大規模生產環境自動化部署 K8S 集群的場景,且能跟蹤集群的生命周期、變更等。倉庫地址https:/ repo 配置庫:git 代碼倉庫,用于存放集群的部署配置信息,倉庫配置信息變更云集群可以通過注冊 webhook 感知,從而觸發集群管理相關的操作;鏡像倉庫:集群使用的容器鏡像倉庫;元集群:部署 e
214、ggo 管理程序的 K8S 集群,感知用戶設置的集群配置倉庫變化、以及集群生命周期管理等;operator:元集群的 CRD,負責感知集群配置、以及負載集群的生命周期管理;worker 節點:元集群的負載節點,用于執行目標集群部署任務(可以根據目標集群的網絡親和性選擇節點);負載集群:eggo 管理的集群,用于用戶業務運行,根據用戶需要隨時可通過 eggo 進行管理(例如刪除、創建、更新節點等);極簡運維與開發081openEuler 操作系統技術白皮書創新項目總覽nvwa 內核熱升級ops SIG服務器邊緣計算云計算嵌入式內核熱升級是指在業務服務不中斷的情況下,升級系統內核,從而修復內核漏洞
215、,保障系統穩定運行。技術挑戰Linux 內核日趨復雜,新的 CVE 漏洞陸續被發現,而 60%以上的漏洞無法通過熱補丁修復,只能升級內核解決。修復內核漏洞面臨以下困難:大部分業務場景要保障業務連續,不允許系統重啟 業務遷移的時間和空間成本無法接受 大量業務無法遷移應用場景nvwa 適用于 x86 和 Arm64 架構。在虛擬機運行常見服務(例如 MySQL、Redis、NGINX)場景可直接使用。在物理服務器場景,如有必要可使用框架進行驅動適配。倉庫地址https:/ 項目提供了一條簡潔的nvwa update命令,進行內核的熱升級操作。如技術原理圖所示,nvwa 通過進程 Checkpoin
216、t/Restore 技術保持業務不中斷,通過 kexec 及增強技術完成內核快速切換,通過一系列驅動、內核狀態保存機制,保障系統恢復后業務可以恢復運行。其關鍵技術點如下:進程/虛擬機凍結、恢復技術:增強 criu、改進 QEMU,將進程或虛擬機的完整狀態凍結在內存中,內核升級后進行進程/虛擬機的恢復,用戶態無感知。內核快速重啟技術:在 kexec 基礎上增加大量優化,使得內核在 500ms 內完成重啟。硬件狀態保持技術:硬件、BIOS 等不進行操作,保持狀態不變,內核升級過程中 DMA 可以繼續運行。內核模塊狀態保持技術:提供 module_suspend/module_resume 接口,允
217、許必要的驅動在內核升級前后進行狀態保存和恢復。pin 內存技術:允許用戶態進程、內核態模塊將所使用內存凍結,系統升級后這部分內存恢復映射,可繼續使用。APP/VMKernel硬件BIOSDrivers系統服務凍結業務進程/VM部分驅動狀態保存criu/qemumodrestoreAPP/VMKernel硬件BIOSDrivers系統服務APP/VMKernel硬件BIOSkexec切換新內核Drivers系統服務APP/VMKernel硬件BIOSDrivers系統服務內核熱升級恢復業務進程/VM、驅動狀態失敗回滾:切換舊內核、恢復進程狀態criu/qemu+kexec+modrestorec
218、riu/qemumodrestoreAPP/VMKernel硬件BIOSDrivers系統服務APP/VMKernel硬件BIOS系統服務舊狀態凍結狀態重新加載保存的驅動Drivers極簡運維與開發082openEuler 操作系統技術白皮書創新項目總覽PilotGo 運維管理平臺Ops SIG服務器PilotGo 運維管理平臺是一個在 openEuler 社區孵化的插件式的運維管理軟件,提供服務器集群全生命周期的管理能力,提供插件式的功能擴展,致力于打破不同運維管理工具之間的障礙,實現完整的自動化運維管理流程。技術挑戰運維技術覆蓋的業務場景非常廣泛,包括安全、日志采集、指標監控、故障定位、性
219、能優化、配置管理、自動化流程等各個方面。特定的業務運維場景均有獨立的運維平臺,功能完整且相對復雜,學習成本較高。除此之外,各個業務場景之間往往沒有相關性,在跨場景的運維操作當中,需要切換不同的運維工具,難以實現有效的全流程自動化。然而不同運維平臺的功能不盡相同,且不一定提供方便的 API 或 CLI 接口,難以進行有效的封裝。如何打通不同的運維工具,是一個非常困難的問題。項目介紹功能:PilotGo 是一個插件化的運維管理平臺,平臺核心僅提供有限的必要的功能;業務場景相關的功能均由平臺插件來提供。核心功能:PilotGo 的核心功能用于對平臺的基本能力進行支撐,并對插件系統提供相關服務。具體包
220、含如下:用戶管理:提供賬號信息管理功能 主機管理:提供主機集群管理功能 權限管理:提供權限管理功能 審計日志:提供審計功能 批次管理:提供批量任務管理功能 配置管理:提供系統及軟件配置管理功能 遠程命令執行:提供遠程控制功能 插件管理:提供插件管理及插件擴展功能大部分核心功能均通過接口暴露給插件,以便插件實現各類業務邏輯。除此之外,PilotGo 平臺還提供全局的事件通知機制,提升整個集群的感知能力。擴展功能PilotGo 運維管理平臺通過插件的方式擴展業務功能,這類擴展是用戶最常使用的功能。PilotGo 運維管理平臺當前支持的擴展功能插件包括:prometheus:提供監控指標采集、展示及
221、告警功能 grafana 插件:提供美觀的指標可視化功能 gala 插件:提供 gala 智能運維軟件的功能支持,如高級指標采集及展示、故障診斷、平臺拓撲等PilotGo 插件自身也可暴露功能接口,以便不同業務插件之間進行聯動,提升整個平臺的自動化能力。極簡運維與開發083openEuler 操作系統技術白皮書創新項目總覽應用場景PilotGo 可用于裸金屬、虛擬機、容器等各類 OS 及應用運行環境的監控及管理能力,以及容器集群、mysql 集群、nginx集群等典型的應用場景的集群監控、運維能力。倉庫地址主項目倉庫:https:/ 插件項目倉庫:https:/ 分為以下幾個獨立的組件:Pil
222、otGo server:PilotGo 平臺核心邏輯組件 PilotGo UI:提供微服務架構的前端框架,可擴展插件 UI 頁面 PilotGo agent:提供 PilotGo 平臺的遠程能力 插件 server:提供 PilotGo 平臺擴展業務能力 插件 UI:提供插件業務功能相關的 UI 界面,嵌入到 PilotGo UI 當中 插件 agent(可選):與插件 server 配合實現相關擴展業務能力一般情況下,PilotGo server 和插件 server 各自部署在單獨的服務器當中,通過網絡協議進行通訊;PilotGo agent 和插件 Agent 部署在業務主機當中,僅與對
223、應的 server 進行網絡通訊。UIPlugin Ul平臺管理Plugin ServerPilotGo Server開放API遠程控制遠程控制主機PilotGo AgentPilotGo AgentPilotGo AgentPilotGo Agent極簡運維與開發084openEuler 操作系統技術白皮書創新項目總覽SysCare 系統熱服務ops SIGSysCare 是一款操作系統運維工具,能夠在線解決系統運行過程中的各類故障和風險,為 Linux 操作系統提供全方位熱修復服務。技術挑戰在 Linux 世界,有一個困擾大家已久的難題:如何在不影響業務的情況下,快速可靠地修復漏洞、解決故
224、障。當前常見的方法是采用熱補丁技術:在業務運行過程中,對問題組件直接進行代碼級修復,業務無感知。然而,當前熱補丁制作方式復雜,補丁需要代碼級匹配,且管理困難,特別是用戶態組件面臨文件形式、編程語言、編譯方式、運行方式的多樣性問題,當前缺少簡便統一的補丁機制。故障通過熱補丁修復之后,系統仍需升級存在漏洞的軟件,以便業務重啟或系統重啟后直接使用新版本軟件。當前,軟件升級和熱補丁是兩套獨立的機制,互相不感知,升級操作復雜。熱補丁由于機制限制,只能修復約 40%的問題,剩余部分問題只能采用熱遷移結合冷升級的方式。冷升級方式,系統重啟速度慢,會影響業務。因此,亟需一種快速且安全的系統重啟方式。為了解決以
225、上問題,SysCare 應運而生。項目介紹SysCare 提供系統熱服務解決方案,當前已經提供統一熱補丁、快速重啟等能力,包含應用熱補?。ㄖС?C/C+常見應用,如 QEMU,Redis,MySQL 等)、動態庫熱補?。ㄖС?C/C+常用系統庫,如 glibc,OpenSSL,Protobuf 等)、內核熱補丁以及系統快速重啟能力,集成了內核熱升級能力(nvwa 項目),如下圖所示:服務器云計算邊緣計算嵌入式SysCareAppsupatchglibcOpenSSL.kpatchLibsKernelQEMURedisMySQL.nvwafast rebootmodulesglibcOpenSS
226、LProtobuf.極簡運維與開發085openEuler 操作系統技術白皮書創新項目總覽應用場景內核、動態庫、用戶態等需要通過熱補丁解決 bug、CVE 等場景,軟件升級需要系統重啟的場景,均可使用 SysCare。倉庫地址https:/ 提供了如下關鍵功能:用戶態熱補丁針對內核熱補丁,業界已有相對成熟的 kpatch、livepatch 等方案,并已有廣泛應用。因此,SysCare 集成了 openEuler 已有的內核熱補丁能力。針對用戶態程序文件形式、編程語言、編譯方式、運行方式多樣等問題,SysCare 提出了新的熱補丁解決方案,其大概思路如下:對比代碼修改前后編譯生成的.o 目標文
227、件,將差異點提取并生成熱補丁文件。通過 uprobe 技術,向 GCC 等編譯器注入代碼,跟蹤程序的整個編譯過程,并獲取制作熱補丁所需的信息和.o 目標文件。使用 uprobe 技術,將熱補丁與 ELF 文件綁定。在 ELF 文件運行時,通過 uprobe 觸發補丁生效,這樣就無需監控進程,無論進程是否已經運行,都可以在打補丁后或新進程運行時使補丁生效;同時該技術也可以給動態庫打熱補丁,解決了動態庫熱補丁的難題。補丁管理當前的熱補丁管理方案比較復雜,SysCare 通過屏蔽內核熱補丁和用戶態熱補丁的差異,簡化了補丁管理。通過 syscare build 命令,即可制作指定組件的熱補丁。另外,S
228、ysCare 也提供了 apply、active、deactive、remove、status、info、list 等補丁管理命令,用于應用、激活、去激活、移除、查詢狀態、查詢信息、查詢補丁列表等??焖僦貑ysCare 使用系統 kexec 功能,提供快速重啟能力;增加了 CPU park、quick kexec 等技術,極大地提高了系統重啟速度;同時融合 systemd 重啟流程,保障業務安全退出和快速恢復?;A設施086openEuler 操作系統技術白皮書創新項目總覽開發者支持基礎設施087openEuler 操作系統技術白皮書創新項目總覽Compass-CIsig-CICD服務器邊緣
229、計算云計算嵌入式Compass-CI是一個可持續集成的開源軟件平臺。為開發者提供針對上游開源軟件(來自 Github、Gitee、Gitlab等托管平臺)的測試服務、登錄服務、故障輔助定界服務和基于歷史數據的分析服務。Compass-CI基于開源軟件PR進行自動化測試(包括構建測試,軟件包自帶用例測試等),構建一個開放、完整的任務執行系統。技術挑戰Linux 日趨復雜,開源軟件開發者由于受到資源約束,往往只會對單一場景進行驗證,面對眾多的 Linux 發行版,開源軟件如何快速引入及測試驗證,是擺在開發者面前的首要問題。資源單一,使用場景卻是 os,arch,machine,.的矩陣組合。這導致
230、大量的問題會在后續的使用過程中才會被發現,造成更大的修改成本。問題復現困難,大量成本消耗在環境的準備中,無法進行快速的問題定位。項目介紹Compass-CI 是一個通用全棧軟件測試平臺,集構建&測試系統、登錄調測、測試分析比較、輔助定位于一體,通過主動測試數以萬計的開源軟件,暴露這些軟件在芯片和操作系統上的問題,在第一時間自動定位問題并以報告的形式反饋給第三方軟件開發者,方便第三方開發者能及時處理問題,保障軟件質量。給社區開發者提供友好的開發體驗,與社區開發者一起繁榮開源軟件生態及提升開源軟件質量。接入層服務層調試任務測試任務結果分析輔助定界倉庫注冊restful郵件數據管理服務支撐層數據層資
231、源層任務數據庫設備數據庫測試結果數據庫調度部署任務隊列構建數據處理測試物理機虛擬機部署服務器repo依賴倉庫SSHGITEE/GITHUB/GITLAB/.門戶網站基礎設施088openEuler 操作系統技術白皮書創新項目總覽應用場景聚合開發者測試用例:開發者向代碼托管平臺提交代碼、測試用例、測試工具時,Compass-CI 自動獲取提交的代碼開展構建測試,同時獲取開發者編寫到開源軟件包的測試用例進行自動化測試,并反饋測試結果。登錄環境隨時調測:測試過程中,發現 Bug 時,可隨時提供調測資源服務,登錄到環境進行復現、調試??煺諗祿治鰧Ρ龋簻y試過程中,全面監控系統運行信息(CPU/MEM/
232、IO/網絡等),對測試過程中的數據做快照歸檔,提供多次測試之間快照數據分析對比能力,協助開發者對測試結果開展分析,找出影響測試結果的因素。輔助定界:測試過程中,發現有 Bug 時,自動觸發 Regression 機制,找出首次引入問題 Commit 信息。倉庫地址https:/ 測試服務:支持開發者基于本地設備開發,往 github 提交代碼,Compass-CI 自動獲取代碼開展測試,并向開發者反饋測試結果。調測環境登錄:Compass-CI 提供 SSH 登錄能力,測試過程中如果測出問題,開發者可根據需要登錄環境進行調測。測試結果分析:Compass-CI記錄歷史測試結果,對外提供web及
233、命令行接口,支持開發者針對已有的測試結果進行分析,挖掘影響測試結果的因素。輔助定位:Compass-CI 在測試過程中可以自動識別錯誤信息,觸發基于 git tree 的測試,找出引入問題模塊的變化點?;A設施089openEuler 操作系統技術白皮書創新項目總覽CVE Manager 漏洞管理sig-infrastructure|security-committee漏洞管理是 openEuler 社區對安全漏洞進行感知、收集、處理以及披露的流程、工具和機制的統稱。技術挑戰作為操作系統根社區,社區軟件包及社區發行版的安全漏洞感知、處理及披露的及時性和有效性直接影響下游 OSV 及用戶的系統安
234、全。目標:及時感知 高效分析 快速修復 受控披露項目介紹openEuler 社區非常重視社區版本的安全性,openEuler 安全委員會負責接收、調查和披露 openEuler 社區相關的安全漏洞。我們鼓勵漏洞研究人員和行業組織主動將 openEuler 社區的疑似安全漏洞報告給 openEuler 社區安全委員會。我們會快速的響應、分析和解決上報的安全問題或安全漏洞。漏洞響應流程主要支持 openEuler 社區的 LTS 發行版和其分支版本。漏洞端到端的處理流程如下圖。服務器邊緣計算云計算嵌入式openEuler 安全團隊希望上報者將 openEuler 產品疑似安全漏洞上報給 openE
235、uler 社區,并相互配合以負責任的方式修復和披露該問題。漏洞上報方式為通過 email 將 openEuler 產品的潛在安全漏洞發送到 openEuler 安全團隊郵箱(openEuler-securityopenEuler.org)。安全團隊將在 48 小時內響應通過郵箱上報的疑似安全漏洞,并向上報者反饋漏洞處理的進展。漏洞處理流程披露范圍安全團隊漏洞狀態安全團隊,SIG維護者安全團隊,SIG漏洞上報漏洞確認漏洞修復受限披露公開披露下游廠商所有人接收漏洞漏洞評估補丁開發補丁驗證受限披露發布補丁發布SA漏洞影響描述申請CVE獲得CVE基礎設施090openEuler 操作系統技術白皮書創新
236、項目總覽應用場景應用場景 1:對 openEuler 長期維護發行版進行公開漏洞的感知、分析、修復和披露。應用場景 2:對 openEuler 長期維護發行版進行 0day 漏洞的收集、分析、修復和披露。倉庫地址https:/www.openEuler.org/zh/security/vulnerability-reporting/https:/ 社區通過原創的 CVE-Manager 項目從合作漏洞感知系統獲取公開漏洞感知信息,然后通過機器人在碼云平臺對應項目軟件包倉創建并維護漏洞相關記錄,漏洞修復后進入通用版本構建發布以及安全公告發布流程。openEuler 使用 CVSSv3 進行漏洞評
237、分。為了保護 openEuler 用戶的安全,在進行調查、修復和發布安全公告之前,openEuler 社區不會公開披露、討論或確認openEuler 產品的安全問題。安全漏洞修復后 openEuler 社區會發布安全公告,安全公告內容包括該漏洞的技術細節、CVE 編號、CVSS 安全評分、嚴重性等級以及受到該漏洞影響的版本和修復版本等信息。安全公告提供郵件訂閱功能,同時社區也提供 CVRF 格式的安全公告。版本構建和發布新建CVEissue關閉CVEissue分析和修復CVE提交PR合入修復合作漏洞感知系統CVE-Manager軟件包和版本信息軟件包和CPE映射基礎數據漏洞庫過濾器自動生成SA
238、和CVRF安全委員會評審SA和CVRF發布SA和CVRFCVE-Manager過濾器碼云平臺基礎設施091openEuler 操作系統技術白皮書創新項目總覽EUR openEuler 用戶軟件倉庫openEuler 用戶軟件倉庫,用于支撐社區最外圍的第三方包生態,是社區針對開發者推出的個人軟件包托管平臺,開發者在 EUR 中擁有自己的工作空間,便于上傳個人開發的軟件包,社區還未引入的軟件包或社區軟件包的變體,基于 EUR 進行軟件包的構建后,還可以便利的將軟件包分發給其他用戶使用。技術挑戰圍繞 openEuler 的第三方包,社區當前缺少一個比較好的構建,測試分發平臺,能支持正在開發中的軟件包
239、、社區變體包或長尾包。例如用戶期望為已發布的20.03 LTS版本提供最新的nginx版本,或開發者自己的軟件期望盡早與社區版本適配,這樣的現狀一定程度上降低了開發者為社區適配軟件包的熱情。項目介紹EUR 支持開發者將多種源碼格式的 spec 文件和源碼包打包成任意 openEuler 版本可用的軟件包,并自動完成軟件包簽名和軟件倉庫的生成,當前支持通過 git/svn 獲取 spec 文件,也支持自動將 pypi,rubygem 上的軟件包打包成 rpm 包。應用場景 openEuler 社區開發者為社區提供第三方長尾包支持(例如在社區已經下架的軟件包)。openEuler 社區開發者為社區
240、軟件包提供第三方變體包支持(例如為老版本提供最新的 gcc,nginx,gnome 等組件)。上游社區為 openEuler 社區提供快速迭代的第三方新版本軟件包(例如 firefox,chrome 的 nightly 版本)。倉庫地址https:/ 操作系統技術白皮書創新項目總覽OEPKGS openEuler 軟件擴展倉庫OEPKGS 開放軟件包服務(Open External Packages Service)正式上線,為 openEuler 生態提供超過 3 萬+源碼包、百萬級二進制軟件包,可為 CentOS、Fedora 等系統向 openEuler 遷移的開發者、OSV、企業等用戶
241、提供一站式兼容性軟件包、文件查詢、下載、開源軟件包的使用風險感知服務。技術挑戰 文件、軟件包軟件包精準及模糊檢索。軟件包 CICD 門禁管理,依賴元數據分析及管理,軟件包自由組合驗證。開源軟件風險感知,安全性及合規性風險分析。項目介紹OEPKGS 由中國科學院軟件研究所、中科南京軟件技術研究院、openEuler 社區共同發起并提供支持的項目。旨在作為openEuler 社區的擴展倉庫,為開發者及廣大用戶提供豐富的軟件包,同時提供一個成熟的 CICD 體系,支撐軟件包引入溯源分析,源碼構建,二進制掃描,基本功能驗證,漏洞、合規風險感知,補丁、版本更新感知,保障軟件倉庫質量可靠及持續演進;結合
242、RPM 軟件包檢索、元數據分析、SBOM 和供應鏈分析、安全性及合規性風險分析等多項能力,同時提供一站式文件、軟件包查詢、風險感知查詢、下載等服務,提升開發者及用戶的使用體驗。oepkgs-openuler擴展倉來源可靠openEuler擴展倉的質量保障持續跟進操作系統開源社區或業界熱門(或 趨 勢)的 開 源 軟 件 包,持 續 推 進openEuler擴展倉內容?;A驗證基于openEuler,對二進制包進行適配度、可用性等方位的測試,確保openEuler可用風險甄別對目標包的安全評估是質量保障最重要的一環。嚴格控制風險因素,既是對openEuler用戶的保障,也是openEuler生態
243、發展的重中之重可靠評估通過開源軟件供應鏈進行分析,對其可靠性及未來演進評估openEuler官方倉有著更加嚴格的生命周期要求準入openEuler擴展倉對比官方倉基礎設施093openEuler 操作系統技術白皮書創新項目總覽應用場景 面向創新場景開發者提供快速的軟件包引入平臺,快速將上游項目形成 RPM 包。面向遷移場景開發者提供多版本軟件包引入能力,支持傳統其他 Linux OS 快速替代。面向廣大用戶,提供 openEuler 已兼容的軟件包查詢,文件所在軟件包的查詢平臺。面向企業用戶,提供開源軟件風險一站式查詢平臺,感知軟件的風險。面向企業,提供閉源軟件分發渠道,支持企業軟件直達用戶。
244、使用指導https:/www.openeuler.org/zh/blog/liping/2022-11-10-OEPKGS-introduction.html倉庫地址https:/ 操作系統技術白皮書創新項目總覽openEuler 軟件包貢獻平臺軟件包貢獻平臺旨在為全球的貢獻者提供一個統一的、可視化的、便捷的服務,用于將軟件包貢獻到 openEuler 社區。該平臺實現了軟件包貢獻流水線,覆蓋申請測、試、審批、發布等流程;并通過流水線視圖,做到貢獻過程透明化。平臺支持將軟件包代碼發布到 Gitee 或 Github,海外貢獻者可在 Github 上進行后續的版本開發,保證軟件包貢獻的連續性。該
245、平臺必將促進更多的軟件包貢獻到 openEuler 社區。技術挑戰openEuler 社區的軟件包共分為 3 類,按照核心層度從內到外分別是核心包,擴展包以及第三方包。當前按照統一的流程進行軟件包貢獻。第一步,到 openEuler/community 倉庫提交申請;第二步,等待軟件倉庫創建完成后,提交軟件包的代碼并等待合入。整個流程是同步進行的,耗時比較長。另外當前貢獻者只能在 Gitee 上進行貢獻,海外用戶在 Gitee 的使用上存在挑戰。項目介紹該項目實現了針對 openEuler 軟件包的一站式貢獻服務,優化了當前的貢獻流程,降低貢獻者的學習成本,提高貢獻效率。優化后的貢獻流程如下圖
246、所示,將測試和審批流程提前;完成審批后,后續的創建倉庫、代碼提交等全部由平臺完成,從而將貢獻流程從同步變成了異步的過程。應用場景為社區開發者提供一站式軟件包貢獻到社區的服務。倉庫地址https:/software-pkg.openeuler.org/zh/package 申請人TC軟件包貢獻服務簽署CLA提交軟件包貢獻申請申請須包含可公開訪問的spec和src-rpm的文件路徑檢視對申請內容進行檢視根據檢視意見,測試結果進行修改重新運行測試進行軟件包測試反饋測試結果至申請單審批同意:須等測試通過拒絕:任意時刻都可創建軟件包代碼倉庫為倉庫配置CI上傳spec,src-rpm至代碼倉庫基礎設施09
247、5openEuler 操作系統技術白皮書創新項目總覽Signatrust openEuler 軟件包簽名服務openEuler Signatrust 是社區基礎設施 SIG 組針對操作系統常見的簽名場景推出的高效、便捷、安全的簽名服務,可支持openPGP 及 X509 體系的秘鑰管理,同時對接了 EFI、RPM、KO、ISO 等多種軟件包,支持大批量的軟件包簽名,可極大提升社區秘鑰管理及軟件包簽名效率。技術挑戰當前社區現有的 rpm 簽名工具,在大批量簽名的情況下,存在性能瓶頸,影響整體的軟件包構建效率,同時基于 pgp-agent 的本地秘鑰存儲模式,存在秘鑰泄露及管理易用性不夠的問題。另
248、外,隨著社區發展,需要支持簽名的場景及文件越來越多,包括不限于 Kernel Module、EFI、鏡像等,需要有服務能在支持多種體系多種文件格式的同時兼顧秘鑰存儲的安全、簽名的高效及管理的易用性。項目介紹Signatrust 項目基于 KMS 等體系對密鑰對進行加密存儲,支持在 TEE 或者內存中對文件進行簽名,能有效保證密鑰的安全性,同時整個項目基于異步框架,能有效提升高并發場景下的簽名效率,最后項目引入了獨立的 UI 界面能最大程度上方便管理員對密鑰進行管理。應用場景 支持社區版本的 openPGP 秘鑰對管理,并對 RPM/SRPM、ISO、Repodata 等文件簽名。支持社區版本中
249、的 X509 秘鑰對管理,并對 Kernel Module 及 EFI 文件簽名。支持社區開發者在用戶軟件倉庫中生成個人 openPGP 秘鑰對,并用個人密鑰對簽名 RPM 包并驗簽。倉庫地址https:/ 操作系統技術白皮書創新項目總覽EulerLauncher 跨平臺 openEuler 開發者工具EulerLauncher 是由 openEuler 社區技術運營團隊及基礎設施團隊孵化的開發者工具集,通過對主流桌面操作系統中的虛擬化技術(LXD、HyperV、Virtualization Framework)等技術進行有機整合,使用 openEuler 社區官方發布的虛擬機、容器鏡像,為開
250、發者在 Windows、MacOS、Linux 上提供統一的開發資源(虛擬機、容器)發放和管理體驗,提升主流桌面操作系統上搭建 openEuler 開發環境的便利性,有效提升開發者體驗。技術挑戰主流桌面操作系統上提供相關開發資源(虛擬機、容器等)的便利性和穩定性是影響 openEuler 開發者體驗的重要因素,尤其是對于對開發資源受限的個人及高校開發者 openEuler 開發體驗影響更為明顯。當前常見的虛擬機管理平臺有諸多局限性,如 VirtualBox 需要下載體積龐大的 ISO 鏡像,同時需要進行操作系統安裝等相關操作,WSL 無法提供真實的openEuler 內核,絕大多數虛擬機管理軟
251、件目前對 Apple Sillicon 芯片支持尚不完善且眾多軟件需要付費等,這些簡化了在已有桌面 OS 環境搭建 openEuler 開發環境的步驟,加強使用體驗。項目介紹功能描述EulerLauncher 支持在 Windows、MacOS 及 Linux 等主流桌面操作系統上提供方便、易用、統一體驗的開發者工具集,硬件架構支持 x86_64 及 Aarch64(包含 Apple Sillicon 系列芯片);并支持各平臺對應的虛擬化硬件加速能力,為開發者提供高性能的開發資源。EulerLauncher 支持使用 openEuler 社區發布的虛擬機、容器(規劃中)鏡像、openEuler
252、 社區提供的 Daily Build 鏡像以及其他符合要求的自定義鏡像,為開發者提供多種選擇。應用場景 Windows/MacOS/Linux 桌面環境搭建 openEuler 開發環境??焖佾@取 openEuler 開發工具及簡化在社區貢獻依賴的配置。倉庫地址https:/ 開發者工具097openEuler 操作系統技術白皮書創新項目總覽EulerTest 測試管理平臺sig-QA服務器云計算 EulerTest 是一個 openEuler 社區孵化的用以承載社區全流程測試活動的管理平臺。該平臺核心為 web 端數據中臺,幫助社區版本測試高效運作,使能社區版本測試可跟蹤可追溯。具備支撐資源
253、管理以及自動化測試功能的插件化服務,支持對接多元測試引擎。技術挑戰當前社區具備版本集成測試開源測試框架,但缺乏對開發者如何貢獻該框架下的文本用例已經自動化腳本的足夠牽引,以實現社區測試能力共建與用例上量。且當前缺乏一個承載社區所有測試活動資產和流程的基礎設施,社區各個團隊的測試活動依賴于各自離散的本地化管理方式,也因此社區的版本測試活動無法達到完全的質量可信。同時,社區缺乏一個測試維度的樞紐對社區其他工程能力進行串聯,從而提升流程效率。項目介紹功能描述 支持對物理機進行靜態資源管理,包括資源的密鑰修改、占用釋放和系統重裝。支持對虛擬機進行動態資源管理,提供網卡磁盤配置熱修改以及 web 控制臺
254、等功能。支持文本用例的數據管理與和版本用例基線的制定,具備用例評審功能。支持對產品和里程碑進行數據管理,支持和碼云企業倉進行數據同步管理,提供版本質量看板支撐質量看護,使能測試可信。支持管理測試任務數據,支持自動化測試觸發執行,以及支持手工測試執行 IT 化管理。具備日志按測試步驟分割和分析標注的功能。支持自動化從 openQA、Compass-CI 等平臺讀取執行結果矩陣,并基于社區既定模板整合為版本測試報告。邊緣計算嵌入式openQA官方repo本地用例調度資源池部署執行Compass-CIAPI結果分析與歸檔部署&執行資源池worker-x86調度測試套/用例系統鏡像/repo測試套配置
255、(環境)解析CI 調度個人使用worker-ArmCI 調度個人使用用戶注冊/登陸基于社區賬號管理1碼云賬號登陸用戶管理CLA校驗分組權限校驗信息完善分組管理(管理員)任務管理任務執行任務報告任務創建(版本/組織/團隊/個人)任務更新(版本/組織/團隊/個人)用例管理(文本用例寫作/自動化用例綁定)問題分析任務進度(Cl調度/個人使用)Test reports(Cl調度/個人使用)基于任務開放能力2開發者工具098openEuler 操作系統技術白皮書創新項目總覽應用場景開發者測試面向生態伙伴與社區開發者開放測試環境與用例,社區測試環境統一管理,含鏡像、虛機、容器,實現并發測試調度與執行。對接
256、多元測試服務,支持伙伴自有環境接入、自定義任務與自助任務執行。版本質量看護面向社區正式 release 版本,每日構建、AT 執行、軟件范圍變更、測試執行、問題閉環、需求進展等多項過程質量,將質量標準 IT 化看護。倉庫地址https:/ 開發者工具099openEuler 操作系統技術白皮書創新項目總覽pkgshippkghsip 是由 openEuler 社區孵化的用于查詢 openEuler 發布版本或其他 Linux 版本 rpm 包基本信息及依賴樹的可視化工具,使用 pkgship 能大大縮短分析軟件包依賴關系的時間,簡化軟件包引入或升級時分析步驟,有效提升在 openEuler社區
257、參與貢獻和軟件包運維的效率。技術挑戰openEuler 操作系統包含大量的 rpm 包,這些 rpm 包的依賴關系錯綜復雜,當需要增加、刪除或者升級某個包時,需要分析這個包影響或依賴哪些其他的 rpm 包,當前主流的查詢方式是使用 dnf/yum 命令進行查詢,參數復雜且功能單一,并需要提前加載對應 repo 文件,嚴重影響開發者使用體驗和維護成本。項目介紹pkgship 通過分析用戶配置的各發布版本的 repo 文件或 url,獲取軟件包的基本信息和依賴信息,重新組合后存入Elasticsearch 數據庫,并提供命令行和 Restful 接口進行快速查詢??刹樵儍热莅ㄜ浖Q、版本、描
258、述、LICENSE等基本信息,以及一層及多層編譯依賴、安裝依賴、被依賴信息,并將這些依賴關系以圖譜的形式進行展示。使用簡單,且多數接口可在 1 秒內返回結果,查詢速度快,并支持 repo 配置動態擴展。極大的提高了開發者查詢和分析軟件包信息的效率。官方網站:https:/pkgmanage.openEuler.org/應用場景構建 RPM 軟件包自依賴信息查詢。倉庫地址https:/ 操作系統技術白皮書創新項目總覽QuickIssue 快捷的社區 issue 分類提交工具QuickIssue 是 openEuler 基礎設施團隊開發的一個能夠滿足社區發展的問題跟蹤系統。它也是一個更快捷的 is
259、sue 分類提交工具,在提交 issue 上具備獨特的優勢。項目介紹QuickIssue 是一個更快捷的 issue 分類提交工具,在提交 issue 上有一些獨特的優勢:QuickIssue 在 openEuler 官網提供統一的 issue 提交入口,開發者在提交 issue 時更便于查找對應倉庫。QuickIssue 提供了兩種提交 issue 的方式,無論開發者是否有 Gitee 賬號,都可以提交 issue。QuickIssue 可以指導用戶或開發者將 issue 提交到某個倉庫中,也有默認的倉庫可供開發者提交 issue。QuickIssue 只為 openEuler 服務,保證查
260、詢、搜索、篩選等操作足夠順滑??梢院蜕鐓^已有的 SIG 管理、貢獻統計等服務互通信息。QuickIssue 提供三個主要功能:新建 issue、查詢 issue、查詢 PR,可以為開發者提供更便捷的 issue 提交服務。新建 issue 統一了 issue 提交入口,openEuler 社區的所有 issue 都可以通過這個入口提交。解決了 issue 提交人沒有代碼托管平臺賬號的問題,可以直接使用郵件和驗證碼完成 issue 提交。優化了 issue 提交人查找 issue 歸屬倉庫的途徑,可以按圖索驥找倉庫,也可以直接提交默認倉庫。查詢 issueQuickIssue 服務會展示 ope
261、nEuler 社區所有的 issue 信息。針對不同的使用場景,QuickIssue 提供了較為便捷的篩選功能,開發者可以按照自己需求定向查找。如果需要查找通過郵件提交的 issue,可以在提交人一欄輸入郵箱前半段篩選。查詢 PRQuickIssue 會展示 openEuler 社區所有的 PR 信息。開發者通過 PR 狀態、提交人、標簽等信息可以篩選出滿足場景的PR。QuickIssue 中只包含 openEuler 社區的全量 PR,比代碼托管平臺自身所管理的 PR 信息量少很多,且系統采用了緩存數據,查詢操作響應速度有保障。應用場景社區開發者提交 issue 入口,快速搜索查看社區 is
262、sue、PR。倉庫地址https:/ 操作系統技術白皮書創新項目總覽OSV 技術評測openEuler OSV 技術測評是在開放原子基金會指導下成立的對 OSV 進行技術測評的技術規范,目前通過 openEuler 創新中心具體實施。項目介紹OSV 技術測評清單主要存放通過社區 OSV 基礎測評的 OS 廠家、OS 版本信息。應用場景通過技術測評,主要測評OSV對openEuler技術路線的一致性,保持與社區廣泛兼容性生態復用,降低重復遷移適配工作量。面向 OSV 版本開發過程,看護 OSV 版本前向兼容性。面向遷移場景,制作差異數據庫,與 x2openEuler 遷移工具結合,加速 OS 遷
263、移及升級替代。倉庫地址https:/ 技術測評主要通過對操作系統內核版本,KABI、內核配置,軟件包范圍、版本、配置、服務、命令、文件一致性檢測,通過對 epol/OEPKGS 等倉庫的復用度,運行時一致性檢測,保持對 openEuler 系生態軟件的可用性。兼容性與技術評測102openEuler 操作系統技術白皮書創新項目總覽openEuler 兼容性全景清單openEuler 兼容性列表為廣大用戶提供整機、板卡、開源軟件、商業軟件查詢平臺。項目介紹openEuler 兼容性清單,分為整機、板卡、開源軟件、商業軟件等信息,鏈接參考:https:/www.openEuler.org/zh/c
264、ompatibility/。同時開源軟件兼容性查詢方式通過第三方進行補充,鏈接參考:https:/search.OEPKGS.net/。硬件兼容性:主要面向南向 CPU 架構、CPU 廠家、整機廠家、整機型號、部件芯片型號、部件芯片廠家等硬件,在社區建立了一套規范、一套流程、一套 CICD 流程,用于指導芯片及板卡廠家在社區建立獨立倉庫,并基于社區基礎設施,保持持續演進;與對應廠家建立芯片功能、版本使能、生態適配三層能力看護,共同保障芯片功能、性能、兼容性、規范性、穩定性。當前已有 marvell、星云智聯、云芯智聯等公司在社區建倉,并跟隨版本例行化運作,相關流程參考:https:/www.o
265、penEuler.org/zh/compatibility/hardware/開源軟件兼容性:主要基于業界主流上游活躍項目,按照 openEuler 社區包管理規范集成到 openEuler 社區及擴展社區,保持 openEuler 對主流軟件的兼容性,同時建立一套軟件包引入平臺及機制,便于在 OS 遷移、升級場景快速引入及獲取對應版本的軟件包,相關流程參考:https:/www.openEuler.org/zh/compatibility/software/商業軟件兼容性:主要面向千行百業 ISV,提供一套對商業軟件的測評體系,包括測評規范、流程、方案、工具鏈,支持ISV 到創新中心進行測評
266、,測評完成后,提供社區認證的證書,相關流程參考:https:/certification.openEuler.org/兼容性與技術評測103openEuler 操作系統技術白皮書創新項目總覽應用場景通過 openEuler 兼容性清單,用戶可以查詢及檢索 openEuler 版本兼容的 CPU 架構、CPU 廠家、整機廠家、整機型號、部件芯片型號、部件芯片廠家、開源軟件、商業軟件的兼容性信息。通過兼容性清單,可以獲取 openEuler 兼容性的測試規范、測試方案、流程、相關工具。通過兼容性清單,獲取加入到兼容性的具體操作過程,幫助 IHV/ISV/開發者將關注的軟硬件加入到兼容性清單。倉庫地
267、址https:/ 操作系統技術白皮書創新項目總覽openEuler 技術測評openEuler 技術測評是在開放原子基金會指導下成立的對商業軟件、硬件、OSV 進行技術測評的技術規范,目前通過openEuler 創新中心具體實施。項目介紹openEuler 技術測評是基于 openEuler 操作系統,在多樣性算力平臺上,基于社區制定的統一規范,通過統一的設備測評工具、統一的檢測標準,構建統一的openEuler生態體系。openEuler技術測評對象主要包括三類:軟件、硬件及操作系統。針對軟/硬件產品、主要測評其對 openEuler 操作系統的兼容性,針對操作系統產品,主要測評其對 ope
268、nEuler 技術路線的一致性。當前廣大的軟件和硬件伙伴,面向操作系統做兼容性驗證時,由于缺少平臺化、工具化和自動化能力,面臨測試效率低、算力成本高和反復測試等問題。為此,我們基于 openEuler 社區,開發了 openEuler 生態服務平臺,該平臺可拉通多算力資源,通過提供資源的統一納管、測試用例的自動執行、測試報告的自動生成等功能,形成一站式的生態服務,大幅提升伙伴生態服務體驗。測試更便捷:如前所述,通過統一的資源調度,以及環境安裝/用例執行/報告生成等全流程自動化平臺。算力更豐富:社區協同 openEuler 生態創新中心,共建全算力硬件資源平臺,當前已支持鯤鵬、x86 等主流算力
269、能力,可為伙伴在國產操作系統的遷移、適配、測評中大幅降低算力成本。服務更高效:通過與基礎軟件、整機廠商聯合互認證,已可為伙伴實現一次 openEuler 測試、多方獲取認證證書的能力,大幅提高軟件伙伴生態構建效率。應用場景通過兼容性技術測評,可以幫助客戶從紛雜的產品和解決方案中,快速識別經過嚴格驗證的解決方案;幫助社區通過統一的技術測評體系,繁榮滿足操作系統的產業技術生態。倉庫地址https:/ openEuler 社區,形成海納百川之勢,才有 openEuler 社區三年跨越式的發展,感謝以下在 openEuler 社區貢獻的企業:華為技術有限公司麒麟軟件有限公司統信軟件技術有限公司江蘇潤和
270、軟件股份有限公司超聚變數字技術有限公司中軟國際科技服務有限公司龍芯中科技術股份有限公司湖南麒麟信安科技股份有限公司北京拓林思軟件有限公司中國科學院軟件研究所粵港澳大灣區(廣東)國創中心SUSE中國聯通軟通動力信息技術(集團)股份有限公司英特爾亞太研發有限公司普華基礎軟件股份有限公司中國電信股份有限公司云計算分公司星辰天合(北京)數據科技有限公司華中科技大學網絡空間安全學院Linaro Limited中移(蘇州)軟件技術有限公司北京網迅科技有限公司深圳易寶軟件有限公司北京匯鈞科技有限公司北京青云科技股份有限公司深信服科技股份有限公司航天科工網絡信息發展有限公司陜西弓今網絡科技有限公司新華三技術有限公司廣西云旸軟件有限公司無錫先進技術研究院合芯科技有限公司網宿科技股份有限公司北京凝思軟件股份有限公司(排名不分先后)