隨著汽車智能化和自動駕駛技術的飛速發展,車載高性能計算(High-Performance Computing, HPC)系統已成為推動汽車產業革新的核心力量。在此背景下,Linux作為開源操作系統領域的佼佼者,正以其高度靈活性、強大生態系統以及不斷發展的安全特性,在車載HPC安全領域發揮著至關重要的作用。
我們很高興地宣布,經過深入研究與實踐探索,Elektrobit正式發布《Linux在提升車載HPC安全方面的應用:綜合概述》白皮書。本白皮書主要內容為面向功能安全應用的EB corbos Linux for Safety Applications的架構、開發階段和概念,以便大家更加了解Linux在車載HPC安全方面的工作原理。
1.引言
功能安全至關重要
自20世紀90年代以來,由于系統復雜性不斷增加,汽車上的電子控制單元 (ECU) 越來越多。防抱死制動系統、牽引力控制和高級駕駛輔助系統(ADAS) 等功能需要專用的ECU,以便進行優化,并確保高效的性能和可靠性。
這種ECU模塊化設計方法便于在不對整個系統進行檢修的情況下集成新功能,在采購、裝配和維護方面具有靈活性和成本效益。此外,用于制動和安全氣囊展開等關鍵功能的專用ECU通過隔離這些功能和降低系統故障風險,大大提高了車輛的安全性和可靠性。
監管要求和行業標準進一步推動了多個ECU在汽車中的應用。排放控制、功能安全和網絡安全方面的規定往往要求使用專用的ECU來實現特定功能。此外,行業標準和協議促進了不同ECU和車輛系統之間的互操作性和兼容性,確保了無縫集成和操作。隨著軟件功能的增加,高性能計算 (HPC) 系統當前的目標是將許多ECU的功能整合到單個片上系統 (SoC) 或ECU數量更少但更大的SoC集群中。
高性能計算 (HPC) 系統對管理安全關鍵和非安全關鍵應用不可或缺,因此功能安全在車載HPC系統中至關重要。HPC系統必須遵守功能安全方面的適用標準和法規,如ISO 26262,以實現所需的可靠性、功能安全、信息安全,特別是網絡安全、隱私和數據保護。
自動駕駛增加了對安全相關軟件的需求
自動駕駛,又稱(部分)無人駕駛或自動駕駛技術,大幅增加了車輛中與安全相關的軟件數量,主要有以下幾個原因:
控制系統的復雜性。復雜的傳感器(攝像頭或雷達)和控制單元等組件之間錯綜復雜的相互作用,使自動駕駛系統變得越來越復雜。復雜傳感器產生的海量數據需要經過先進且密集的數據處理。各種復雜傳感器的集成和先進的數據處理需要許多技術嫻熟的跨學科團隊合作。確保復雜控制系統的功能安全本身也是一項復雜的任務。
物體識別和情境解讀。AD/ADAS系統首先需要建立一個不確定且不斷變化的環境模型(道路、其他車輛、行人、車輛本身......)。這反過來又需要收集和處理來自不同傳感器的信息,并將其匯總到該模型中,然后利用該模型就如何駕駛車輛做出決策。這一過程需要大量密集的數據采集和處理,包括圖像和信號。
冗余和失效可操作機制。自動駕駛汽車中的安全關鍵系統通常采用冗余和故障檢測與排除機制,以確保系統可用性和功能安全。
例如,采用冗余傳感器陣列和冗余處理單元來交叉驗證數據并檢測/消除/緩解潛在故障。先進的故障檢測、隔離和恢復算法通常用于檢測異常情況,從而確保安全運行。
在SAE L2級別及以下的ADAS系統中,駕駛員始終是最終的監督者,對車輛負最終責任,即使系統出現故障也是如此。從SAE L3級別開始,系統對車輛的安全承擔全部責任,而駕駛員則無需監督其運行。因此,要求系統在發生故障后仍能執行緊急功能,至少在有限的時間內(例如,直到車輛停穩)。對于失效安全系統,冗余可用于檢測故障;而對于失效可操作系統,冗余還能在發生故障或失效時提供執行緊急功能所需的可用性。當然,這也適用于我們的數字座艙示例,我們還需要設定安全狀態和/或回退機制。
實時決策。自動駕駛系統必須在動態和不可預測的駕駛環境中迅速做出決策,以確保安全駕駛。這要求軟件具有高度的響應性和準確性,能夠通過復雜的算法實時處理大量數據。軟件必須考慮道路狀況、交通模式、天氣條件和其他道路使用者的行為等因素,以做出適當的駕駛決策,避免事故發生。
驗證和校驗。開發自動駕駛安全關鍵軟件需要進行適當的驗證和校驗,以確保剩余誤差的風險符合適用的規范和法規。這包括在模擬和真實環境中進行測試,涉及許多不同場景的虛擬和真實駕駛數據。
自動駕駛技術為車輛帶來了各種與安全相關的軟件組件。這些組件包括從感知算法到失效可操作機制的所有內容。此外,還有驗證/校驗流程來確保所有這些組件正常工作。隨著汽車行業向自動駕駛方向發展,確保這些軟件系統的安全性和可靠性至關重要。
高性能計算與對AD/ADAS和座艙的適用性
HPC系統支持自動駕駛和防撞等安全關鍵功能,而作為HPC用例的座艙/車載信息娛樂 (IVI) 系統主要側重于娛樂和GPS導航等非安全關鍵功能,但也執行與安全相關的功能。無論其關鍵程度如何,這兩種情況都面臨與系統復雜性、互連性和潛在故障模式有關的挑戰,因此必須采取強有力的功能安全措施,以確保可靠運行。
圖 12024年國際消費類電子產品展覽會 (CES) 上展示的邊緣到邊緣數字座艙
2.Linux在汽車系統中的作用
理解和定義Automotive OS
Automotive OS(汽車操作系統)是汽車制造商目前最常用的術語之一。它讓人聯想到汽車就像您的手機或電腦一樣擁有一個單一的操作系統,并且體現了“軟件定義汽車”的概念——這也是目前汽車界廣泛使用的另一個術語。然而,我們都知道,一輛汽車實際上包含幾十個獨立的ECU,它們都運行各自的軟件,通過CAN或以太網等多個網絡,使用主要由AUTOSAR定義的通用通信標準進行連接。這一系列ECU該如何形成一個單一的汽車操作系統?這種分散的基礎設施又該如何保證功能安全和信息安全?
要解決這些問題,我們需要從術語“Automotive OS”的定義入手。Elektrobit 使用三個陳述來定義Automotive OS的屬性:
“Automotive OS是一個軟件平臺,它能夠將復雜的ECU車輛網絡抽象簡化為單一設備。”
這意味著,對于Automotive OS而言,我們談論的不是一個單一的操作系統。事實上,它是一個軟件層,利用定義的接口隱藏復雜的ECU集合及其通信矩陣。這樣,信息娛樂系統和集群系統等應用程序就能與駕駛員和乘客進行交互,同時還能通過云連接訪問汽車功能,而無需了解汽車的網絡結構。這有助于提高不同車型和不同代軟件平臺之間的可移植性。
“Automotive OS管理、監督和更新設備。”
當然,組成Automotive OS的軟件平臺了解汽車的內部網絡。它確保各個組件配置正確,以適當狀態運行,并充當與外部世界的接口。它還確保所有組件都是最新的,并在兼容的軟件版本上運行。
“Automotive OS通過協調用于開發功能的API來構建生態系統。”
雖然前兩個陳述已經大大提高了汽車制造商軟件平臺的可維護性,但這句話卻概括了Automotive OS概念的全部意義:“我們需要為應用程序提供一個開放且明確的接口,使其能夠在不同車型、品牌,甚至不同代的汽車上運行,就像您的手機應用可以在多個操作系統版本和各種設備上運行一樣”。
在汽車系統中使用Linux的優勢
GNU/Linux作為一種開源操作系統,可為汽車系統提供眾多優勢。它可在服務器環境、云計算、HPC和Android設備等各種使用情況下提供可定制的特性和功能、可靠性和穩定性。
龐大的開發人員庫。GNU/Linux的一大優勢是其龐大的開發人員庫。大量的用戶和用戶組織有助于不斷改進和提供寶貴的資源、文檔和支持。眾所周知的API簡化了開發和集成,節省了時間和工作量。此外,開源特性可避免供應商鎖定,使組織能夠從多個供應商中進行選擇,即使原來的供應商無法提供服務,也能確保靈活性。
創新周期快。GNU/Linux創新周期快,經常更新、修復錯誤并增加新功能,使操作系統處于最新狀態。
兼容性。GNU/Linux與多種硬件架構兼容,汽車制造商可根據具體要求選擇組件,而不會立即出現軟件兼容性問題。
源代碼透明。此外,GNU/Linux的源代碼完全透明,有助于高效調試和故障排除,從而加快錯誤修復速度,提高系統穩定性。這種透明度提高了基于GNU/Linux構建的汽車系統的整體可維護性。
在汽車中使用專門的Linux發行版相較于使用企業發行版或嵌入式Linux構建系統的優勢
在汽車應用中選擇Linux發行版而不是Yocto等嵌入式Linux構建系統,需要考慮幾個關鍵因素,其中維護是一個重要的考慮因素。雖然Yocto為嵌入式系統提供了靈活性和定制選項,但它需要大量的專業知識和資源才能進行有效的維護和更新。相比之下,專為汽車定制的Linux發行版通過提供預配置組件和對汽車特定功能的支持,簡化了維護流程,減輕了開發團隊的負擔,并確保了系統在汽車生命周期內的安全性。
還需要考慮的是,由于通用Linux發行版對存儲和內存的要求過高,無法滿足汽車領域的特定需求。到目前為止,這一直是通過簡單地減少軟件包的數量來解決的,但這并不是一個有效的解決方案,因為它會對功能產生不利影響。
此外,專用的汽車Linux發行版可針對汽車用例和車規級安全功能進行有針對性的優化和增強,并應符合ISO 26262等適用標準和法規。EB corbos Linux for Safety Applications配備了專為汽車開發定制的軟件堆棧和工具,可加快產品上市速度并降低開發成本。
3.汽車行業的功能安全標準和法規
相關安全標準和法規概述
相關的汽車安全標準和法規在確保道路車輛的安全和可靠性方面發揮著至關重要的作用。最突出的標準之一是 ISO 26262,該標準概述了道路車輛電氣和電子系統的功能安全要求。ISO 26262為整個汽車供應鏈的安全關鍵系統的開發、實施和驗證提供了一個全面的框架。它涵蓋多個方面,包括危害分析和風險評估、安全目標定義、硬件和軟件開發流程以及驗證和校驗,所有這些都旨在最大限度地降低系統故障風險,確保車輛安全。
在軟件源代碼層面,對于汽車而言,這通常包括遵守MISRA-C及其衍生標準。雖然有GNU/Linux編碼指南,但這些指南并不針對嵌入式系統,更不用說與功能安全相關的系統。
除ISO 26262之外,汽車制造商還必須遵守針對其目標市場的地區安全法規和標準。如果公司希望在道路上使用電子或軟件系統,就必須將功能安全考慮在內。即使產品責任法沒有明確要求遵守某些功能安全標準,汽車制造商也有責任確保其系統采用最先進的技術開發,包括驗證和校驗。
功能安全標準對基于Linux的汽車系統的影響
“Linux內核作為一個重要的開源組件,吸引了安全研究人員和廣大開發人員的極大關注。其透明的特性使得可以進行深入分析,相比閉源軟件,安全漏洞報告率更高。”
這可確保較好的網絡安全性能,但并未涉及功能安全。功能安全是另一個需要考慮的問題。Linux內核并非為車輛系統設計,即使在出現故障或錯誤的情況下,也無法可靠、安全地運行,以防止事故并保護乘客和道路使用者。此外,圍繞內核的GNU系統更不是為此目的而設計的。這可確保較好的網絡安全性能,但卻無法實現所需的功能安全。Linux內核的設計并不是為了可靠、安全地運行,更不是為了處理故障或錯誤。圍繞內核的GNU系統更不是為安全關鍵和關鍵任務應用而設計的。因此,使用通常用于實現和證明符合適用功能安全規范和標準的方法、技術和程序來指定和證明GNU/Linux的功能安全是不現實的。
要使GNU/Linux適用于與功能安全相關的應用,需要采用非常創新的方法和“打破常規”的思維。
4.汽車領域的Linux安全解決方案
面向功能安全應用的EB corbos Linux for Safety Applications是基于開源軟件的安全相關系統車載HPC系統的解決方案。
經過TüV評估的安全架構,適用于帶有Linux系統的汽車應用HPC系統
功能安全概念包括在ECU軟件中集成安全措施,以確保汽車應用中關鍵系統的有效性。
為了展示其解決方案的潛力和優勢,Elektrobit開發了一個示例系統。該示例系統可顯示由車輛傳感器或攝像頭生成的視頻流,提供有關車輛周圍環境的視覺信息。視頻流和其他相關數據顯示在顯示屏上,顯示軟件行為和系統響應,使觀看者能夠了解系統的行為。該軟件包括一個安全監控系統,可持續分析視頻流中的錯誤或異常。如果檢測到任何問題,系統會采取適當的措施,例如關閉系統以防止潛在的安全隱患。該演示包括一種通過向視頻流或Linux內核注入故障來誘導錯誤場景的機制,以模擬系統必須檢測和應對異常情況的實際情況。
系統示例架構如圖2所示。在此示例中,HPC中集成了另一個操作系統分區,使用Android框架為OEM可能希望使用現有軟件模塊的特殊顯示用例提供服務。陰影區域顯示了正在開發和運行的組件的安全完整性等級。
圖 2 集成座艙 + IVI示例
示例數字座艙架構圖顯示了不同的硬件和軟件層。從下到上,片上系統 (SoC) 使用一個或多個RTC核,如ARM Cortex M、R或外部MCU。HPC核通常包括ARM Cortex A核,例如Cortex A78AE。RTC和HPC核各有自己的Bootloader。
在本例中,RTC部分在Bootloader上安裝了支持功能安全的Classic AUTOSAR操作系統EB tresos Safety OS [25] 及其Safety MCAL,但也可以在下面安裝專用的實時EB tresos Embedded Hypervisor,以備需要多個Classic AUTOSAR實例時使用。
專用HPC虛擬機監控程序EB corbos Hypervisor具有特定的SoC支持功能和操作系統安全監控功能,可作為多個HPC操作系統實例的基礎。虛擬機監控程序和操作系統安全監視器是安全組件,完全按照相關質量和安全標準開發。非安全(質量管理 (QM)) Linux分區運行所有常規的非安全相關功能,例如在容器化環境中作為性能應用。在數字座艙的示例中,Android框架也作為非安全相關分區運行,用于上述用例。最后,EB corbos Linux for Safety Applications內核是虛擬機監控程序上的獨立虛擬機,帶有安全中間件API,如EB corbos Adaptive或ROS,作為啟用ISO 26262 ASIL-A/B的性能安全應用的基礎。
這一概念包含幾個關鍵方面:
錯誤監控:系統持續監控錯誤,尤其是示例視頻流中的錯誤,這對各種汽車功能至關重要。
高完整性分區:ECU內的高完整性分區負責生成和監控視頻流。它能確保視頻流及時發現任何錯誤或異常。
操作系統安全監視器:操作系統安全監視器,又稱進程管理程序,負責監督高完整性分區的功能,確保其正常運行。它還監控分區內的故障,并在必要時觸發關機程序。
總之,這一安全概念旨在創建一個強大的系統,能夠檢測和應對潛在的危險或故障,從而提高汽車系統的安全和可靠性。通過功能分解或多通道方法可以實現更高的完整性等級(ASIL)。在ISO 26262標準中,功能分解包括將安全要求最高的ASIL-D功能分解為冗余的ASIL-B(D) 要求。[37Ch. 5].這些ASIL-B(D) 要求可以在ASIL-B組件中實現,并不受干擾。[37Ch.6–7]
面向功能安全應用的EB corbos Linux for Safety Applications受專利保護,因為其技術方法將OSS從進程管理程序中分離出來。
與功能安全相關的故障場景
上文介紹的示例系統所演示的故障場景包括在視頻流中或直接在監視器中產生錯誤。
典型用例:在我們的Linux發行版上運行一個性能應用程序并處理圖像數據。安全關鍵應用程序在Linux發行版的安全衍生版上運行,位于第二個hypervisor虛擬機中,負責監控性能應用程序。進程管理程序保護安全關鍵應用的數據完整性。
性能應用程序內部故障:在第一個場景中,視頻流中出現錯誤,導致視頻流生成器向安全應用程序傳輸無效圖像。系統檢測到視頻流中的錯誤,顯示紅色指示燈并隨后關閉系統。
內核故障損壞安全關鍵應用程序:例如,當啟用安全功能的Linux分區內核訪問未經授權的內存區域時,我們的操作系統解決方案的專用安全層(稱為進程管理程序)會檢測到這一情況,并通過GPIO通知在PC上運行的外部用戶界面。需要指出的是,功能安全是一種系統屬性,而不是任何組件的固有特征。每個功能的本質決定了整個系統中該功能影響鏈的具體功能安全要求,從而對系統架構產生要求,進而對硬件、軟件和軟件架構產生要求。
如上所述,在傳統的ECU領域,這導致許多功能需要專用硬件,以滿足特定的功能安全需求等。然而,對于減少變體、增加集中化以及降低硬件復雜性的強烈需求和愿望,推動了E/E架構的演進,使其朝著能夠支持各種功能安全概念的架構方向發展。
這兩種場景都強調了系統檢測錯誤和啟動關機程序的能力,突出了集成在系統中的安全措施的穩健性。
將安全措施集成到基于Linux的汽車軟件棧中
我們的目標是使安全應用程序正確執行,并在必要時提供適當的通知。面向功能安全應用的EB corbos Linux for Safety Applications中的安全擴展包含了確保系統安全的各個方面:
監督用戶空間初始化及其過程并使其合法化。Linux系統啟動時,需要初始化各種用戶空間組件,以使系統正常運行。初始化過程包括加載必要的庫,設置環境變量,以及執行啟動腳本或二進制文件。這里的“合法化”是指初始化過程遵循既定慣例、尊重安全機制并遵守最佳實踐。特別是,專門的啟動和服務初始化模塊,如crinit和cominit,取代了非自動就緒的基于腳本的解決方案。
在內核和應用程序之間分離內存區域的讀/寫/執行權限。在Linux中,內核對分配給應用程序的內存沒有寫或執行權限,這意味著分配給應用程序的內存及其內容不能被Linux內核修改,從而保護應用程序。
監督應用程序內存的任何讀取/寫入/執行嘗試并使其合法化。這意味著,除了上述不同的寫入和執行權限外,任何訪問分配給應用程序的內存的嘗試都會受到監督,只有在合法的情況下才會被允許。這樣做的目的是檢測對分配給應用程序的內存的任何不當或不正當訪問,并在發生此類嘗試時發出通知。
在整個上下文切換過程中,監督并允許或阻止對處理器狀態寄存器的更新。這可確保正確處理進程切換并防止未經授權的修改,從而增強系統的穩定性和安全性。
通過這些擴展,EB corbos Linux for Safety Applications可確保Linux內核不會對屬于安全應用程序的內存部分進行不當訪問,也不會通過與其他分區共享的內存對屬于安全應用程序的內存部分進行不受控制的訪問。
經過安全評估的虛擬機監控程序會為安全和非安全工作負載劃分資源分區。虛擬機監控程序的操作系統安全監控器負責對EB corbos Linux for Safety Applications內核進行外部監控。
5.最佳實踐和建議
與早幾十年的ECU設計不同,車輛投產后,ECU軟件幾乎不再更新,而HPC系統設計則需要持續不斷的長期開發。
面向功能安全應用的EB corbos Linux for Safety Applications虛擬機分區的所有軟件開發都必須遵守《安全手冊》。這不適用于非安全型EB corbos Linux,因為它沒有任何限制。監管概念可以擴展;在即將推出的版本中還將增加更多允許的功能。
汽車行業采用開源軟件既帶來了機遇,也帶來了挑戰。在本節中,我們將根據本文的討論得出結論,強調在評估汽車系統中使用GNU/Linux和開源軟件時應考慮的要點。
必須承認的是,開源軟件并不能直接替代專有軟件,尤其是在考慮到長期維護的影響時。雖然開源軟件具有許多優勢,如靈活性、透明度和龐大的開發人員庫,但也需要仔細評估和考慮特定的應用程序需求。
在選擇專有軟件還是GNU/Linux時,沒有簡單的答案或“一刀切”的解決方案。需要對每種應用進行全面分析,考慮采用GNU/Linux的利弊,特別是要考慮長期影響。必須考慮功能需求、合規條例和行業標準等因素,以確定開源軟件是否適合特定應用。
雖然開源軟件通常與節約成本聯系在一起,但必須考慮到總擁有成本可能因應用需求而異。直接從開源項目獲取的免費軟件可能缺乏保證和擔保,這會影響其在關鍵汽車系統中的適用性。因此,選擇專注于GNU/Linux產品的組織作為合作伙伴,可以提供更多支持并確保長期維護,從而節省大量資源并降低風險。Elektrobit等在汽車軟件和Linux領域擁有豐富經驗的公司可以提供幫助,提供基于Canonical Ubuntu的EB corbos Linux。
在考慮采用GNU/Linux時,要全面評估每種應用的需求和優先級。考慮長期影響、與現有系統的兼容性以及是否有專門的GNU/Linux供應商。與在提供適合汽車行業的長期維護GNU/ Linux系統方面有良好記錄的供應商合作,如Elektrobit。這將有助于確保持續得到支持、漏洞修復和安全更新。
6.結論
保證HPC系統的功能安全絕非易事,不容小覷。作為HPC操作系統的GNU/Linux也是如此。實際上,EB corbos Linux for Safety Applications可在不依賴Linux內核本身的情況下實現所需的功能安全等級,因此可以使用最新的內核。這樣就可以在車輛和車輛平臺的架構中實現面向未來的架構和性能。
在使用HPC時,您需要盡早認真考慮功能安全方面的問題。面向功能安全應用的EB corbos Linux for Safety Applications是您的不二之選。
-
Linux
+關注
關注
87文章
11345瀏覽量
210395 -
開源
+關注
關注
3文章
3407瀏覽量
42712 -
HPC
+關注
關注
0文章
324瀏覽量
23853 -
自動駕駛
+關注
關注
785文章
13931瀏覽量
167007 -
Elektrobit
+關注
關注
0文章
28瀏覽量
3604
原文標題:白皮書 | Linux在提升車載HPC安全方面的應用綜合概述
文章出處:【微信號:Elektrobit官方,微信公眾號:Elektrobit】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論