1、RROS:混合異構內核操作系統1李弘宇李弘宇北京郵電大學北京郵電大學2024-4-9背景:終端設備任務復雜化2024-4-92李弘宇 北京郵電大學復雜終端任務實時性任務混合任務要求通用性任務場景一:衛星星務/載荷任務復雜化2024-4-93李弘宇 北京郵電大學衛星星座重要性日益凸顯衛星星座重要性日益凸顯衛星互聯網發展勢頭強勁衛星互聯網發展勢頭強勁北斗導航北斗導航星鏈組網星鏈組網6G通信通信國防軍事國防軍事生活服務生活服務科學研究科學研究衛星任務通用化衛星任務通用化衛星面臨通信、導航定位、地球觀測、科學實驗、緊急響應、資源探測等各類通用化任務;衛星任務復雜化衛星任務復雜化 衛星硬件異構、功能通過
2、軟件配置、控制和操作;衛星多個載荷之間存在未完全利用的計算和存儲資源;星務計算機/載荷控制單元即要處理傳統實時任務,又要處理通用任務。星務計算機太陽能帆板載荷控制單元太陽能帆板場景二:復雜業務中的實時成像2024-4-94李弘宇 北京郵電大學Vision ProVision Pro空間計算空間計算光學干涉望遠鏡光學干涉望遠鏡11更多應用場景:車載攝像頭,無人機數傳功能:多臺望遠鏡實時追蹤星體干涉成像實時性:星際物體的實時成像追蹤系統通用性:控制系統,網絡傳輸功能:實時計算空間成像實時性:實時渲染,采集成像通用性:用戶上層自定義任務1 Seneta,Eugene B.,et al.When yo
3、u want it done right now:experience from programming hard real time systems in Xenomai for the Magdalena Ridge Observatory interferometer.Software and Cyberinfrastructure for Astronomy VI.Vol.11452.SPIE,2020.場景三:5G基站共享計算資源2024-4-95李弘宇 北京郵電大學現象現象1 1:5G BBU5G BBU白盒化后資源閑置白盒化后資源閑置BBU(Base band Unite)單元負
4、載功能:增加報文協議頭;屬性:實時任務,要求硬實時;硬件:白盒化BBU(50%資源閑置);現象現象2 2:基站資源豐富,負載時序抖動:基站資源豐富,負載時序抖動BBURRU天線BBU白盒單元同時處理實時任務和通用任務,提高資源利用率11 Foukas,Xenofon,and Bozidar Radunovic.Concordia:Teaching the 5G vRAN to share compute.Proceedings of the 2021 ACM SIGCOMM 2021 Conference.2021.用戶通用任務負載功能:用戶自定義;屬性:通用任務,對實時性無要求;硬件:COT
5、S架構即可滿足;場景四:具身智能機器人2024-4-96李弘宇 北京郵電大學 實時性:機器人控制 通用性:AI大模型任務 具身智能機器人需要同時運行AI大模型通用任務和實時控制任務。雙內核架構適用于實時機器人系統。RoboCat系統:ROS系統RT-2系統:ROS系統OptimusGen2系統:ROS系統 ROS系統通過Xenomai增強實時性實時性增強機器人DRC-HUBO+架構具身智能機器人具身智能機器人實時性和通用性兼容難題2024-4-97李弘宇 北京郵電大學復雜終端任務需要復雜終端任務需要“新操作系統新操作系統”的支持的支持 操作系統是控制和管理計算機硬件的最基本、最核心的系統軟件,
6、起到承上啟下的關鍵作用:“向下”調度資源,“向上”統一接口、提供服務 通用操作系統:通用操作系統:1.實時性差2.系統繁重3.可靠性低 實時操作系統:實時操作系統:1.通用性差、高度定制化2.非國產非開源、安全性差3.價格昂貴現有兩大類操作系統的不足現有兩大類操作系統的不足實時性和通用性兼容難題2024-4-98李弘宇 北京郵電大學RROS思路:雙內核思路:雙內核 整體架構整體架構Linux內核提供通用性支持實時內核提供硬實時保證中斷虛擬化隔離內核,減少開銷 中斷處理流程中斷處理流程底層硬件產生的中斷首先發送到實時內核若實時內核無對應中斷處理函數再向通用內核轉發 任務處理流程任務處理流程優先處
7、理實時任務,所有的實時任務都處理完,處理idle任務,即通用內核的任務 SpaceX獵鷹火箭,星鏈衛星,dragon飛船均采用COTS器件作為計算硬件,利用三模冗余提升可靠性,采用Preempt-Linux作為主要的操作系統1 天智衛星2采用Linux作為主要的操作系統缺點:實時性差 Smartsat3星座采用Hypervisor技術同時運行Linux和實時操作系統缺點:內核隔離較重,性能受限,資源靜態分配現有解決思路現有解決思路1 ELC:SpaceX lessons learned https:/ https:/ https:/ 北京郵電大學 雙內核虛擬機Preempt-rt資源分配動態動
8、態靜態動態動態實時性硬實時硬實時硬實時硬實時軟實時開發便捷性容易(單地址空間)容易(單地址空間)難(雙地址空間)容易容易隔離性中等隔離完全隔離完全隔離無隔離維護難度中等高低低高動態,強實時實時性通用性雙內核雙內核虛擬機虛擬機Preempt-rtPreempt-rt實時性和通用性兼容難題2024-4-910李弘宇 北京郵電大學 雙內核虛擬機Preempt-rt資源分配動態動態靜態動態動態實時性硬實時硬實時硬實時硬實時軟實時開發便捷性容易(單地址空間)容易(單地址空間)難(雙地址空間)容易容易隔離性中等隔離完全隔離完全隔離無隔離維護難度中等高低低高動態,強實時實時性通用性雙內核雙內核雙內核系統適用
9、范圍1.執行環境可信2.實時性需求適中3.通用負載動態虛擬機系統適用范圍1.執行環境不可信2.實時性需求高,失敗后果顯著3.實時負載小,任務資源充裕虛擬機虛擬機RROS架構通用型內核Linux(基于C)+實時內核(基于Rust)2024-4-911李弘宇 北京郵電大學Rust語言優勢語言優勢 內存安全 高性能 并發編程 社區活躍RROS優勢優勢 實時性強:硬實時,兼容現有的RTOS的接口,應用遷移、維護和開發更為簡單 通用性好:借助Linux豐富生態,可以直接部署TensorFlow/k8s等復雜應用 穩定性高:基于Rust開發增強了實時內核的穩定性 交互簡單:實時內核和Linux內核的交互簡
10、單,隔離較小 適配性好:采用Linux完成啟動,更易適配新架構/新版RROS架構RROS內核柔性管理和調度針對不同硬件的資源差異,靈活調整Linux內核的大小 對于資源豐富場景,如手持終端,車載芯片:采用通用Linux 對于資源一般場景,如基站網關,監控探頭:采用剪裁后的Linux 對于資源匱乏場景,如海洋浮標,氣象檢測站點:采用ucLinux針對實時操作系統生態不完善問題,提供多實時接口2024-4-912李弘宇 北京郵電大學RROS架構架構資源需求資源需求內核大小內核大小目標硬件目標硬件實時接口實時接口Linux+實時內核高1530MBZynq,NVIDIA Jetson,etcEvl,F
11、reeRTOS,c/os,Vxworks精簡Linux+實時內核中37MBRPi,HiFive Unmatched,etcEvl,FreeRTOS,c/os,Vxworks(ucLinux+)實時內核低400700KBSTM32,飛凌RT1052,etcEvl,FreeRTOS,c/os,VxworksRROS基礎能力2024-4-913李弘宇 北京郵電大學實時操作系統子系統 線程支持FIFO/RR/TP等多種實時調度算法優先級繼承,天花板算法解決優先級反轉問題 內存實時動態內存分配算法,保證系統靈活和實時性 文件實時文件系統,提升數據存取實時性 網絡適配UDP協議棧,可以對UDP報文實時處理
12、 驅動通過GPIO等接口實時驅動外部設備,保證實時性生態方面 Linux應用無感遷移、原生運行 適配x86/x86_64/arm/arm64多種架構 適配樹莓派開發板 內核適配范圍廣,支持內核剪裁到150kb,可以在2MB存儲,256KB內存的MCU上運行p 對于實時應用,提供FreeRTOS,c/os,Vxworks等實時接口p 適配RISC-V架構,瑞芯微開發板RROS實時內存管理2024-4-914李弘宇 北京郵電大學小內存管理采用快速緩沖池 時間復雜度為O(1)大內存管理從紅黑樹中查找 時間復雜度為O(logn)內存問題內存問題解決方案解決方案內存分配時間復雜度高高效分配算法+預留空間
13、/延遲釋放實時和通用應用不隔離雙內存池隔離實時和通用應用Hard/Soft Page Fault內核vmalloc分配TLB/Cache miss實時內核緩存動態?;頡ROS實時內存管理2024-4-915李弘宇 北京郵電大學小內存管理分配時采用預留空間方法 提升實時性小內存管理釋放時采用延遲釋放方法 提升實時性內存問題內存問題解決方案解決方案內存分配時間復雜度高高效分配算法+預留空間預留空間/延遲釋放延遲釋放實時和通用應用不隔離雙內存池隔離實時和通用應用Hard/Soft Page Fault內核vmalloc分配TLB/Cache miss實時內核緩存動態?;頡ROS實時內存管理2024-
14、4-916李弘宇 北京郵電大學 在通用內核執行任務時 對實時內核緩存?;?對TLB刷新全部緩存,對Cache刷新部分緩存 定期訪問頁表項提升計數 編譯期插入預讀取指令 _builtin_prefetch,數據常駐Cache 策略策略優化前優化前T/s優化后優化后T/s優化優化預留空間6.121.6772.71%延遲釋放548.41287.7447.54%TLB優化32.1212.6160.75%Cache優化28.158.1271.16%內存問題內存問題解決方案解決方案內存分配時間復雜度高高效分配算法+預留空間/延遲釋放實時和通用應用不隔離雙內存池隔離實時和通用應用Hard/Soft Page
15、 Fault內核vmalloc分配TLB/Cache miss實時內核緩存動態?;顚崟r內核緩存動態?;頡ROS 安全性保證2024-4-917李弘宇 北京郵電大學RROS內核中unsafe代碼的來源與消除辦法系統架構問題引入對裸指針的直接操作直接使用bindings生成的Linux結構引入裸指針,直接使用extern聲明的外部C函數引入unsafe消除辦法重構代碼,形式化驗證將使用到的Linux相關C結構、函數,封裝到Rust for Linux層,形式化驗證來源RROSLinux內部執行可能產生BUG內核容錯機制RROS 安全性保證2024-4-918李弘宇 北京郵電大學BUGVFS API
16、Linux kernelRROS kernelMem AllocatorClockSubsystemFilesubsystemMem AllocatorClockSubsystemFilesubsystemMem APIClock APISchedSubsystemSchedSubsystemThread APIMonitorSubsystemFPGASubsystemGpioSubsystemGpu SubsystemRealtime application&General applicationRROS 安全性保證2024-4-919李弘宇 北京郵電大學BUGBUGVFS APILinux
17、 kernelRROS kernelMem AllocatorClockSubsystemFilesubsystemMem AllocatorClockSubsystemFilesubsystemMem APIClock APISchedSubsystemSchedSubsystemThread APIMonitorSubsystemFPGASubsystemGpioSubsystemGpu SubsystemRealtime application&General applicationRROS 安全性保證2024-4-920李弘宇 北京郵電大學VFS APILinux kernelRROS
18、 kernelMem AllocatorClockSubsystemFilesubsystemMem APIClock APISchedSubsystemThread APIMonitorSubsystemFPGASubsystemGpioSubsystemGpu SubsystemRealtime application&General applicationVFS APIMem AllocatorClockSubsystemFilesubsystemMem APIClock APISchedSubsystemThread APIBUGRROS 安全性保證2024-4-921李弘宇 北京郵電
19、大學VFS APILinux kernelRROS kernelMem AllocatorClockSubsystemFilesubsystemMem APIClock APISchedSubsystemThread APIMonitorSubsystemFPGASubsystemGpioSubsystemGpu SubsystemRealtime application&General applicationVFS APIMem AllocatorClockSubsystemFilesubsystemMem APIClock APISchedSubsystemThread APIBUGRRO
20、S 安全性保證2024-4-922李弘宇 北京郵電大學VFS APIRROS kernelMem AllocatorClockSubsystemFilesubsystemMem APIClock APISchedSubsystemThread APIMonitorSubsystemGpioSubsystemRealtime applicationRROS 安全性保證2024-4-923李弘宇 北京郵電大學VFS APILinux kernelRROS kernelMem AllocatorClockSubsystemFilesubsystemMem APIClock APISchedSubsy
21、stemThread APIMonitorSubsystemFPGASubsystemGpioSubsystemGpu SubsystemRealtime application&General applicationVFS APIMem AllocatorClockSubsystemFilesubsystemMem APIClock APISchedSubsystemThread APIRROS 安全性保證2024-4-924李弘宇 北京郵電大學VFS APILinux kernelRROS kernelMem AllocatorClockSubsystemFilesubsystemMem
22、APIClock APISchedSubsystemThread APIMonitorSubsystemFPGASubsystemGpioSubsystemGpu SubsystemRealtime application&General applicationVFS APIMem AllocatorClockSubsystemFilesubsystemMem APIClock APISchedSubsystemThread APIRROS CI系統2024-4-925李弘宇 北京郵電大學獲取倉庫中最新代碼,自動構建內核根據配置運行qemu或者實體機測試p構建統一的實時性能測試負載,自動測試其
23、他實時操作系統的性能并對比p在測試時用qemu模擬外太空設備受射線影響發生的粒子反轉RROS基本性能2024-4-926李弘宇 北京郵電大學性能指標方面硬件平臺:樹莓派4b+,軟件平臺:Linux kernel 5.13測試應用:TensorFlow2.12,Kubernetes1.22.15對比項目對比項目RROSPREEMPT-LinuxTimer Latency5ms30msNetwork ping Latency2ms5msTensorFlowMobilenet v20.25s/img0.25s/imgResnet1011.45s/img1.37s/imgVgg111.27s/img1
24、.17s/imgVit_b_161.48s/img1.64s/imgKubeedge Cloudcore setup13s12sRROS使用與演示2024-4-927李弘宇 北京郵電大學RROS官網:https:/bupt-os.github.io/website/根據應用場景的需求和資源,選擇RROS架構 選擇開發環境編譯RROS 開發內核態應用:利用RROS的內核態接口編寫實時應用 開發用戶態應用:利用RROS的系統庫libevl編寫實時應用 調用Linux下的系統庫Glibc編寫非實時應用 單地址空間開發與單地址空間開發與DebugRROS與已有操作系統比較2024-4-928李弘宇 北
25、京郵電大學對比項目對比項目RROSXenomaiReal-Time LinuxVxworksuc/os-IIIQNXFreeRTOSNuttxHarmony實時性 應用生態 穩定性 隔離性 無無 無無無性能 適配性 用戶態實時內核態實時源碼開放國產系統RROS開發時間線 2021.11 項目啟動 2022.11 完成進程管理與調度子系統,在QEMU上實現HelloWorld,完成內核的V0.1版本 2023.4 完成開發板的適配工作,在樹莓派真機上成功運行 2023.6 完成實時內核的內存、文件和網絡子系統,并實現系統調用,可以在用戶態調用實時線程 2023.11 RROS開源 2023.12
26、.9 RROS搭載衛星升空,成為首個在軌運行的Rust OS2024-4-929李弘宇 北京郵電大學RROS影響力2024-4-930李弘宇 北京郵電大學開源倉庫至今獲得400+star,超半數來源于國外,包括很多知名開發者,資深工程師,首席技術官等。RROS影響力2024-4-931李弘宇 北京郵電大學 受邀參加Xenomai 2023大會;上游RFL社區積極響應,主動宣傳,邀請團隊分享項目;國內外十幾家媒體報道;RROS開源貢獻2024-4-932李弘宇 北京郵電大學團隊積極參與上游開源社區建設,向Rust for Linux提交了若干issue和pull request,在社區中pr數量
27、世界高校第一在Rust E1000社區提交的Pull Request在Rust for Linux社區提交的Pull RequestRROS開發現狀2024-4-933李弘宇 北京郵電大學以當前開源倉庫主線main為例:RROS開發計劃2024-4-934李弘宇 北京郵電大學 RROS vs Evl/Xenomai 實時性:實時內存 安全性:Rust開發/形式化驗證/自恢復 生態/功能:RISC-V/龍芯/POSIX 場景:太空雙內核故障自恢復安全性增強 形式化驗證Unsafe Linux Bug容錯功能 POSIX 接口 拓展架構/版型支持:RISC-V/龍芯地面場景 ROS2 5GRAN
28、ethercat 實時數傳/空間計算太空場景 天算星座星務計算機 星務軟件Rust化發行版 跟隨Linux LTS選定RROS LTS課程建設與培養機制社區依托操作系統,基于RROS設計開發了相關的lab,并搭建在線平臺自動化檢查學生完成情況Rust雙鏈表的實現RROS的編譯和運行RROS實時調度算法RROS實時內存分配算法目前已經有100多名學生完成基礎版本的lab培養機制:基礎lab+bonus任務=考核+選拔開源之夏:2024-4-935李弘宇 北京郵電大學Lab鏈接:https:/ 北京郵電大學技術文檔工具文檔開發文檔Debug文檔等技術分享2024-4-937李弘宇 北京郵電大學技術分享:組會技術分享=B站記錄分享2024-4-938李弘宇 北京郵電大學共建開源Thanks Q&A2024-4-938RROS開源倉庫:https:/