作者:BENJAMIN BROSGOL,DR. DUDREY SMITH
FACE [未來機(jī)載能力環(huán)境] 方法是一項(xiàng)政府-行業(yè)聯(lián)合軟件標(biāo)準(zhǔn)和商業(yè)戰(zhàn)略,用于獲取負(fù)擔(dān)得起的軟件系統(tǒng),促進(jìn)全球國防計(jì)劃中便攜式能力的創(chuàng)新和快速集成。FACE——最初只關(guān)注航空電子設(shè)備,但現(xiàn)在已擴(kuò)大到包括廣泛的應(yīng)用目錄,用于整個(gè)實(shí)時(shí)系統(tǒng)范圍——并不直接解決質(zhì)量或適用性問題。由于這些特征在實(shí)踐中顯然很重要,因此組件開發(fā)人員的自然問題是如何滿足可移植性的明確FACE目標(biāo)以及軟件可靠性,安全性和安全性的任何特定領(lǐng)域要求。部分答案是選擇適當(dāng)?shù)能浖_發(fā)技術(shù)和語言。
FACE 參考體系結(jié)構(gòu)由五個(gè)部分組成,每個(gè)部分都有一組定義的要求:
操作系統(tǒng)段 (OSS)。OSS 是其他 FACE 段的軟件基礎(chǔ),為分區(qū)、進(jìn)程/線程管理和內(nèi)存管理提供服務(wù)。它還可能包括運(yùn)行狀況監(jiān)視、故障管理和生命周期管理等功能。
輸入/輸出服務(wù)部門 (IOSS)。IOSS 在 PSSS 一致性單元 (UoC) 和為給定平臺(tái)提供的 IO 設(shè)備之間提供標(biāo)準(zhǔn)接口。
特定于平臺(tái)的服務(wù)部門 (PSSS)。PSSS 包括設(shè)備服務(wù)、公共服務(wù)(例如,日志記錄或設(shè)備協(xié)議中介)和圖形服務(wù)。它們?cè)诒銛y式組件段 (PCS) UoC 和 IOSS 之間提供標(biāo)準(zhǔn)接口。
運(yùn)輸服務(wù)部門(TSS)。TSS為來自其他細(xì)分市場(chǎng)的UoC提供通信服務(wù),包括分發(fā),路由,狀態(tài)持久性和數(shù)據(jù)轉(zhuǎn)換。
便攜式組件部門 (PCS)。PCS UoC 提供特定的應(yīng)用程序功能,僅使用 TSS 接口進(jìn)行數(shù)據(jù)通信,僅使用 OSS 接口進(jìn)行操作系統(tǒng)支持。
圖1:人臉參考體系結(jié)構(gòu)示意圖。經(jīng)The Open Group許可轉(zhuǎn)載。
滿足給定段要求的組件稱為相對(duì)于該段的“一致性單位”。FACE 一致性計(jì)劃定義了驗(yàn)證、認(rèn)證和正式認(rèn)可注冊(cè)軟件符合 FACE 技術(shù)標(biāo)準(zhǔn)的流程,并指定了證明符合各個(gè)細(xì)分市場(chǎng)要求的政策和程序。
開放源碼軟件及其界面
FACE 參考架構(gòu)的基礎(chǔ)是 OSS(圖 2),它通過 ARINC 653 和 POSIX 應(yīng)用程序編程接口 (API) 為其他段提供標(biāo)準(zhǔn)接口。當(dāng)編程語言運(yùn)行時(shí)支持庫(通常情況)與其服務(wù)的接口是通過語言語法而不是 FACE API 時(shí),它們被視為 OSS 的一部分。
圖2:操作系統(tǒng)段 (OSS) 及其界面。
因此,編程語言運(yùn)行時(shí)與其他 OSS 組件在關(guān)鍵方面有所不同。而不是由 API 指定 - 考慮到編譯器實(shí)現(xiàn)之間的差異,這將過度約束 - 運(yùn)行時(shí)接口由一組語言功能(所謂的功能集)定義。運(yùn)行時(shí)的實(shí)現(xiàn)可能會(huì)也可能不會(huì)通過對(duì) FACE API 的調(diào)用來實(shí)現(xiàn)功能集的功能。更一般地說,OSS組件與其實(shí)現(xiàn)中所需的較低級(jí)別服務(wù)之間的接口(所謂的底部接口)不受FACE技術(shù)標(biāo)準(zhǔn)的定義或約束。
接口配置文件
符合 FACE 標(biāo)準(zhǔn)的組件可以部署在具有不同安全和/或安保要求的各種環(huán)境中。因此,F(xiàn)ACE技術(shù)標(biāo)準(zhǔn)為OSS接口定義了一組配置文件。按照普遍性的遞增順序,它們是:
安全性:這是一個(gè)最小的接口,旨在支持具有高安全保證要求的應(yīng)用程序。它保證了實(shí)時(shí)確定性行為,并需要時(shí)間和空間劃分。
安全:這由兩個(gè)子配置文件組成,安全底座和安全擴(kuò)展。這些針對(duì)的是具有安全認(rèn)證要求的系統(tǒng)。這兩個(gè)配置文件保證了實(shí)時(shí)確定性行為,并建議但不要求時(shí)間和空間分區(qū)。
通用:在此配置文件中,不保證實(shí)時(shí)確定性,并且時(shí)間/空間分區(qū)是可選的。通用型材適用于安全/安保保證水平較低的組件。
語言很重要
編程語言的選擇是系統(tǒng)設(shè)計(jì)過程中的基本決策之一。源代碼是開發(fā)、驗(yàn)證和維護(hù)的工件,也是安全或安保認(rèn)證所需的許多分析的主題。盡管原則上幾乎任何編程語言都可用于開發(fā)高保證軟件,但在實(shí)踐中,當(dāng)所選語言明確設(shè)計(jì)為可靠性、安全性和安全性時(shí),軟件生命周期成本就會(huì)降低。FACE技術(shù)標(biāo)準(zhǔn)特別引用了四種候選語言 - C,C++,Ada和Java - 其中,Ada最符合這一標(biāo)準(zhǔn)。Ada特別適用于需要符合安全配置文件或其中一個(gè)安全配置文件的組件,避免了緩沖區(qū)溢出等C和C++漏洞,并且還避免了Java的非確定性問題(垃圾收集,線程語義)。
Ada 通過支持健全的軟件工程實(shí)踐、強(qiáng)制類型安全的編譯時(shí)檢查以及強(qiáng)制實(shí)施動(dòng)態(tài)約束(如數(shù)組索引邊界和標(biāo)量范圍)的運(yùn)行時(shí)檢查,幫助滿足高保證要求。Ada 并發(fā)功能的確定性子集(稱為 Ravenscar 配置文件)允許將 Ada 并發(fā)用于需要滿足高保證認(rèn)證要求的應(yīng)用程序,例如用于機(jī)載軟件的 DO-178B 或 DO-178C。
便攜性是FACE方法背后的驅(qū)動(dòng)力,也是Ada的關(guān)鍵目標(biāo)。編程語言面臨的挑戰(zhàn)是在不犧牲運(yùn)行時(shí)效率的情況下以獨(dú)立于平臺(tái)的方式定義語義。Ada 通過多種方式實(shí)現(xiàn)這一目標(biāo)。首先,它為并發(fā)(任務(wù))、內(nèi)存管理和異常處理提供了一個(gè)高級(jí)模型,具有跨所有平臺(tái)的標(biāo)準(zhǔn)語義,可以映射到目標(biāo)系統(tǒng)提供的最有效的服務(wù)。這與 FACE 參考體系結(jié)構(gòu)中對(duì)語言運(yùn)行時(shí)的處理完全一致。使用 Ada,開發(fā)人員還可以以獨(dú)立于計(jì)算機(jī)的方式表達(dá)類型的邏輯屬性(例如整數(shù)范圍、浮點(diǎn)精度、記錄字段/類型),然后編譯器可以將其映射到有效的底層表示形式。數(shù)據(jù)結(jié)構(gòu)(布局、對(duì)齊、地址)的物理表示有時(shí)由系統(tǒng)要求指定,Ada 允許在程序邏輯中定義這一點(diǎn),但與目標(biāo)相關(guān)的屬性分開,以便于維護(hù)。
功能集
提供OSS配置文件的基本原理 - 更高的保證級(jí)別意味著對(duì)通用性的限制 - 也適用于編程語言。因此,F(xiàn)ACE技術(shù)標(biāo)準(zhǔn)為C,C++,Ada和Java定義了相應(yīng)的限制集(功能集)。安全性和安全性功能集指定運(yùn)行時(shí)功能的子集,并限制在更高保證級(jí)別上可能存在問題的其他通用功能。
FACE 技術(shù)標(biāo)準(zhǔn)的 3.0 版為 Ada 定義了兩個(gè)通用功能集:一個(gè)用于 Ada 95,它允許大多數(shù)語言,另一個(gè)用于 Ada 2012。Ada 2012 通用功能集包含 Ada 95 集和多個(gè) Ada 2012 功能,但尚未包含基于契約的編程(如圖 3 所示)。Ada 的安全和安保功能集僅針對(duì) Ada 95 定義,而尚未為 Ada 2012 定義。這些功能集引入了進(jìn)一步的限制,例如將并發(fā)功能限制為 Ravenscar 配置文件允許的功能。
圖3:Ada 2012 基于合約的編程示例如下所示:子程序前置條件和后置條件。
Ada 2012標(biāo)準(zhǔn)引入了重要的功能,特別是“基于合同的編程”,它直接支持安全和安保,并通過主要防御系統(tǒng)提供商使用的編碼標(biāo)準(zhǔn)實(shí)現(xiàn)。Ada 2012 在廣泛的目標(biāo)平臺(tái)上實(shí)施,包括已通過或正在計(jì)劃通過 OSS 一致性認(rèn)證的實(shí)時(shí)操作系統(tǒng) (RTOS)。鑒于 Ada 2012 的成熟度和優(yōu)勢(shì),正在考慮在更新 FACE 技術(shù)標(biāo)準(zhǔn)時(shí)將基于合同的編程和其他 Ada 2012 功能添加到 Ada 的安保和安全功能集中。
面孔:向前邁進(jìn)
尋求開發(fā)符合 FACE 標(biāo)準(zhǔn)的組件的組織需要遵守 FACE API 以實(shí)現(xiàn)可移植性,但在開發(fā)和驗(yàn)證技術(shù)的選擇方面具有相當(dāng)大的靈活性。對(duì)于需要高保證的應(yīng)用程序,Ada 提供了內(nèi)在優(yōu)勢(shì),并具有可支持所有版本語言標(biāo)準(zhǔn)的開發(fā)環(huán)境。例如,AdaCore的GNAT Pro實(shí)現(xiàn)了Ada的安全擴(kuò)展功能集,并將在未來的FACE版本中支持Ada功能集。GNAT Pro的Ravenscar運(yùn)行時(shí)間可用于Wind River的VxWorks 653和Lynx Software Technology的LynxOS-178 RTOS為多個(gè)版本的FACE技術(shù)標(biāo)準(zhǔn)實(shí)現(xiàn)的安全配置文件,允許開發(fā)人員設(shè)計(jì)具有安全和確定性行為的可移植并發(fā)程序。
Ada 在軍事和商業(yè)航空電子項(xiàng)目以及其他關(guān)鍵應(yīng)用中的成功使用歷史悠久,F(xiàn)ACE 組件開發(fā)人員可以利用 Ada 的優(yōu)勢(shì)在相關(guān)保證級(jí)別生成可移植代碼。Ada 的重用不僅僅是在小型圖書館的層面上;航空電子設(shè)備開發(fā)人員已經(jīng)將幾乎完整的生產(chǎn)線可更換單元 (LRU) 和功能應(yīng)用模塊移植到不同的主機(jī)開發(fā)環(huán)境和不同的目標(biāo)中。Ada的設(shè)計(jì)并正在用于FACE方法所針對(duì)的應(yīng)用程序和環(huán)境,無論是在新項(xiàng)目還是現(xiàn)有系統(tǒng)的升級(jí)中。開發(fā)人員可以將 Ada 用于符合其保障需求的 FACE 配置文件(安全性、安全基礎(chǔ)、安全擴(kuò)展、通用)。
審核編輯:郭婷
-
接口
+關(guān)注
關(guān)注
33文章
8447瀏覽量
150720 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6684瀏覽量
123140
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論