作者 |蔡喁上海控安可信軟件創(chuàng)新研究院副院長
版塊 |鑒源論壇 · 觀擎
社群 |添加微信號“TICPShanghai”加入“上海控安51fusa安全社區(qū)”
01
源頭和現(xiàn)狀
在越來越多的國產(chǎn)機(jī)載系統(tǒng)研制中,操作系統(tǒng)軟件的選擇對后續(xù)開展研制以及適航舉證活動帶來很大的影響。與其他行業(yè)不同的是,民用飛機(jī)的適航對飛機(jī)上所有安裝的功能及其組成部分都有著具體的適航符合性要求。這就使得研制單位因為采用第三方開發(fā)的操作系統(tǒng)從而無法免除適航符合性責(zé)任。另一方面,前期的文章中我們也已經(jīng)介紹過,民用飛機(jī)保證安全的核心手段,是詳盡的安全性分析【詳見:淺談民用飛機(jī)機(jī)載系統(tǒng)的安全性】。對每種可能的功能根據(jù)其失效后果精確地分析可能的產(chǎn)生原因,針對每種可能的失效源頭,分別適用不同的適航要求。操作系統(tǒng)作為機(jī)載軟件的底層,其功能異常往往會引起上層應(yīng)用軟件異常,進(jìn)而引發(fā)飛機(jī)功能異常,因此,研制單位在系統(tǒng)中使用的操作系統(tǒng)不但應(yīng)該具體分析其潛在的安全影響,而且還是機(jī)載軟件適航標(biāo)準(zhǔn)DO-178B/C所適用的對象。
實際上,DO-178B/C標(biāo)準(zhǔn)并沒有將應(yīng)用程序和包括操作系統(tǒng)在內(nèi)的底層軟件模塊區(qū)分對待,也就是說,所有裝載在飛機(jī)上可能引起功能異常的代碼,均需滿足相應(yīng)的適航符合性要求。除操作系統(tǒng)外,函數(shù)庫、以代碼形式呈現(xiàn)的BSP組件等模塊實際上也是需要滿足適航要求的,也就是在采用DO-178B/C標(biāo)準(zhǔn)表明符合性的機(jī)載項目中,嵌入式操作系統(tǒng)也需要滿足標(biāo)準(zhǔn)對于軟件計劃過程、軟件開發(fā)過程、軟件綜合過程(驗證、構(gòu)型、質(zhì)量、審定)的目標(biāo)【詳見:民用飛機(jī)機(jī)載軟件是如何表明適航符合性的】。
由于民機(jī)軟件適航標(biāo)準(zhǔn)較高的要求,實際上使得大部分嵌入式操作系統(tǒng)沒有或者無法應(yīng)用于民用飛機(jī)中。目前國內(nèi)外民用飛機(jī)中常見的操作系統(tǒng)研發(fā)模式有兩種,按照航空標(biāo)準(zhǔn)專門研制或由第三方專業(yè)操作系統(tǒng)開發(fā)單位對實時操作系統(tǒng)進(jìn)行適航改造。在上世紀(jì)90年代到本世紀(jì)初,部分研制單位通過自己開發(fā)操作系統(tǒng)的方式來確保底層軟件完全可適航。典型的代表有霍尼韋爾公司的DEOS、HeartOS系統(tǒng)等。其中DEOS系統(tǒng)在上世紀(jì)90年代取得了DO-178B A級軟件的適航認(rèn)可。在那個航空機(jī)載軟件有自己的編程語言(Ada)的年代,采用自研滿足適航標(biāo)準(zhǔn)的操作系統(tǒng)似乎也是一種高效的解決方案。實際上,在那個時期,機(jī)載系統(tǒng)廠商不僅自研操作系統(tǒng),很多研制單位甚至?xí)约憾ㄖ?a target="_blank">處理器。本世紀(jì)初,隨著美軍表對強(qiáng)制使用Ada語言要求的廢除,越來越多的研制單位選擇采用C語言開發(fā),這也就減少了對Ada編譯環(huán)境以及實時內(nèi)核等的需求,同時,其他嵌入式領(lǐng)域內(nèi)基于C語言的工具和庫極大地降低了機(jī)載軟件的開發(fā)成本,但也推高了航空專用操作系統(tǒng)的開發(fā)和維護(hù)難度。自此,由機(jī)載研制單位開發(fā)專用操作系統(tǒng)逐漸減少。
面對航空市場,通用操作系統(tǒng)提供商從另一條路徑實現(xiàn)其操作系統(tǒng)的適航化。那就是將通用操作系統(tǒng)按照DO-178B/C標(biāo)準(zhǔn)進(jìn)行生命周期改造,并提供相關(guān)適航符合性證據(jù)。目前,包括WindRiver、GreenHill在內(nèi)的嵌入式操作系統(tǒng)研發(fā)企業(yè),同時也包括中航工業(yè)操作系統(tǒng)研發(fā)單位均采取這種方法實現(xiàn)對民機(jī)機(jī)載研制環(huán)境的支持。所謂的適航鑒定包指的是操作系統(tǒng)研制單位,在其開發(fā)操作系統(tǒng)的過程中嚴(yán)格按照DO-178B/C的生命周期過程進(jìn)行開發(fā),并保留和記錄了所有用于表明DO-178B/C適航標(biāo)準(zhǔn)符合性的生命周期數(shù)據(jù)證據(jù),從而確保在應(yīng)用程序開發(fā)和適航取證過程中無需反復(fù)對操作系統(tǒng)進(jìn)行驗證和審查。國際上也有將開源或者簡單操作系統(tǒng)逆向工程的方法,補(bǔ)齊對應(yīng)的需求、設(shè)計等生命周期數(shù)據(jù)并通過基線迭代的方法表明操作系統(tǒng)適航符合性的例子。
實際上,適航鑒定包是操作系統(tǒng)開發(fā)方的一種說法,不論是中國、美國還是歐洲的民航局方幾乎沒有給操作系統(tǒng)單獨頒發(fā)適航認(rèn)可的先例。哪怕是相同的操作系統(tǒng)運用在不同的機(jī)載系統(tǒng)中,或者運行在不同的硬件環(huán)境上,其潛在的失效源頭、影響等并不一定相同,從而造成適航審定無法將操作系統(tǒng)和應(yīng)用軟件分開。特別是,不同系統(tǒng)中調(diào)用和使用操作系統(tǒng)的方式也存在差異,這也造成了操作系統(tǒng)很難單獨地評價其適航符合性。換句話來說,在每一個機(jī)載系統(tǒng)審定項目中(包括TC和TSO),操作系統(tǒng)必須和應(yīng)用軟件一同表明符合性。適航鑒定包的主要意義在于通過實現(xiàn)固化的生命周期證據(jù),在每個取證項目中減少了大量重復(fù)舉證的成本。同時,較為成熟的操作系統(tǒng)也有助于提高局方審查信心,減少審查開銷。
02
如何簡單快速預(yù)計操作系統(tǒng)適航性
針對國內(nèi)外大大小小的數(shù)百個實時操作系統(tǒng),研制單位往往難以判斷其滿足適航要求的程度以及后續(xù)舉證的復(fù)雜度。筆者在適航審查工作中,往往通過以下幾個要素快速判斷操作系統(tǒng)適航風(fēng)險的大小。這些問題并不足以判斷操作系統(tǒng)的適航符合性,但作為挑選可用的操作系統(tǒng)提供了較為快速的評價判斷參考。
·操作系統(tǒng)是否有完善的需求定義,特別是對其自身性能和使用邊界的精確定義?
·是否能夠按照基于需求的測試原則實現(xiàn)軟件結(jié)構(gòu)覆蓋要求?
·操作系統(tǒng)是否包含其他第三方的庫函數(shù)或者必須依賴某些黑盒組件?
·操作系統(tǒng)在當(dāng)前項目的硬件平臺上是否開展過完整的軟硬件集成驗證?
·操作系統(tǒng)當(dāng)前構(gòu)型是否穩(wěn)定,是否對其使用問題和缺陷開展的長期的跟蹤?
·操作系統(tǒng)研制單位或應(yīng)用開發(fā)單位至少一個是否熟悉DO-178B/C標(biāo)準(zhǔn)的要求?
03
嵌入式操作系統(tǒng)適航的主要難點
滿足適航要求的操作系統(tǒng)之所以開發(fā)難度較大與民用飛機(jī)保證適航安全的思路是直接相關(guān)的。
3.1 需求定義及其追溯
在民機(jī)的適航體系中,幾乎所有的設(shè)計都是從嚴(yán)格的需求定義開始的。操作系統(tǒng)(除非在某個項目中專門開發(fā))一般來說不大可能僅僅通過來自上級的設(shè)計輸入進(jìn)行開發(fā)。因此在表明適航符合性過程中,其自身的需求定義往往存在難點。
· 需求定義的精確性和完整性
傳統(tǒng)行業(yè)中,需求的定義往往存在一定的不精確性。而民用飛機(jī)的設(shè)計思路與之不同,要求對需求進(jìn)行精確完整的定義。對于操作系統(tǒng)來說,高質(zhì)量的需求定義不僅是確保自身正確實現(xiàn)功能和充分驗證的前提,也是證明應(yīng)用軟件正確遵循了操作系統(tǒng)的約束進(jìn)行開發(fā)的證據(jù)。例如提供某種接口的需求,不僅要定義接口的名稱、參數(shù)、類型和使用方式,還需要明確說明這種接口的任何使用限制、性能邊界、禁止行為等。筆者曾經(jīng)審查過的某一系統(tǒng),在其需求中詳細(xì)定義了其命令所帶的后綴的具體行為,但卻沒有描述這些后綴是否存在使用限制,在后續(xù)的分析中發(fā)現(xiàn)某些后綴在一起使用或者連續(xù)使用實際上會產(chǎn)生非預(yù)期的輸出。由于需求中并沒有禁止這種行為,按照民機(jī)的需求定義規(guī)則,這種功能是被允許的,在對需求的充分驗證中將發(fā)現(xiàn)功能與需求的不一致情況。從上面例子可見,民機(jī)體系中,一系列適航活動的基礎(chǔ)是對需求的精確完整定義。
· 需求之間的追溯
由于操作系統(tǒng)功能往往不是來自上級系統(tǒng)和應(yīng)用的功能分解,實際上打破了民機(jī)領(lǐng)域自頂向下精確傳遞的研制過程。按照DO-178B/C的要求,研制單位需要證明軟件高層需求與系統(tǒng)需求的一致性、軟件低層需求與高層需求的一致性等等。實際情況下,操作系統(tǒng)提供的功能和接口經(jīng)常超過上級設(shè)計的需要。如果嚴(yán)格按照追溯方法定義需求和開展驗證,會造成大量未能覆蓋的代碼和功能,難以通過適航評審。為此,當(dāng)今的操作系統(tǒng)往往將其適航鑒定數(shù)據(jù)包作為獨立的滿足DO-178B/C標(biāo)準(zhǔn)的實體,而將操作系統(tǒng)頂層需求以及應(yīng)用開發(fā)的約束限制條件作為與應(yīng)用軟件的符合性界面。在界面以內(nèi)通過完整的需求、設(shè)計、代碼的追溯表明符合性;在界面以外,通過應(yīng)用軟件完全遵從設(shè)計的假設(shè)條件,按照限定的方式開發(fā)軟件作為證據(jù),最終實現(xiàn)內(nèi)外符合性證據(jù)的組合整體表明適航符合性。換句話來說,操作系統(tǒng)開發(fā)單位為應(yīng)用開發(fā)劃定一個安全區(qū)域,并對這個區(qū)域內(nèi)各種可能的情況進(jìn)行驗證和分析,而應(yīng)用研制單位只要能能證明不超出這個安全區(qū)域就證明了其自身軟件的安全性。這實際上給操作系統(tǒng)開發(fā)方提出了很高的要求,特別是要求能夠充分地分析和定義應(yīng)用的行為。
· 對于應(yīng)用的假設(shè)
上文提到了操作系統(tǒng)設(shè)計中安全區(qū)域的概念,實際上在鑒定包的開發(fā)過程中,這種安全區(qū)域的識別和分析極具挑戰(zhàn)。也就是說,在鑒定包開發(fā)過程中,除了通常的需求定義、軟件架構(gòu)、代碼等生命周期數(shù)據(jù)以外,為確保應(yīng)用單位能最低成本的快速復(fù)用當(dāng)前鑒定包所固化的適航符合性證據(jù),操作系統(tǒng)開發(fā)方需對這些證據(jù)的適用條件(場景)進(jìn)行充分的分析和定義。一個好的鑒定包能夠做到在其所明確定義的使用場景下,操作系統(tǒng)所提供的功能和呈現(xiàn)的性能完全在需求所定義的范圍內(nèi)。反之,如果假設(shè)條件定義的不完整,應(yīng)用研制單位需要針對自己使用的場景重新開展分析和驗證,從而使得應(yīng)用研制活動中必須解決操作系統(tǒng)設(shè)計中的部分符合性,在降低開發(fā)效率的同時也因為不同的開發(fā)流程而造成困擾。這就會造成鑒定包的效用難以有效發(fā)揮。
3.2 驗證開銷
隨著需求定義的越來越細(xì)、假設(shè)條件的精確化,對操作系統(tǒng)開展的軟件驗證工作量也隨之增加。通常來說,按照適航要求開發(fā)的軟件,其需求規(guī)模數(shù)倍于傳統(tǒng)方式開發(fā)的軟件。對應(yīng)的功能驗證以及魯棒性測試開銷必然成倍增長。更有甚者,由于DO-178B/C標(biāo)準(zhǔn)中,不僅要求設(shè)計精確地滿足需求(且不超過需求),還要求驗證相關(guān)算法的精確性。這使得很多操作系統(tǒng)在開展測試的同時必須進(jìn)行大量的分析工作。特別是在上一節(jié)對應(yīng)用的假設(shè)條件范圍內(nèi),如何證明操作系統(tǒng)在所有可能的場景和場景組合中均能按照預(yù)期的輸出將是驗證工作中的難點。
3.3硬件適配問題
一個成熟的操作系統(tǒng)必然涉及到在不同的應(yīng)用甚至硬件環(huán)境中使用的問題,除了上文提到的應(yīng)用邊界外,在不同的硬件環(huán)境下(哪怕僅是存在微小的硬件構(gòu)型變化),已經(jīng)取得的驗證證據(jù)將不再有效。通常需要開展差異評估和回歸測試,或者將已經(jīng)開展過的驗證(測試、評審和分析)整體重新開展一遍。這對操作系統(tǒng)的開發(fā)也造成明顯的壓力。某些操作系統(tǒng)其針對不同硬件進(jìn)行重新驗證的成本數(shù)倍于操作系統(tǒng)本身的開發(fā)和驗證。
3.4 第三方組件問題
另外,在操作系統(tǒng)研制中,操作系統(tǒng)本身,以及后續(xù)開發(fā)的應(yīng)用軟件往往會使用到第三方的組件。按照適航標(biāo)準(zhǔn),研制單位需要對所有最終加載在機(jī)上的代碼證明其適航符合性。相較于傳統(tǒng)系統(tǒng)開發(fā),針對第三方組件研制單位無非又回到自研、逆向以及購買第三方鑒定包的幾種選擇中,這一問題又進(jìn)一步推高操作系統(tǒng)研制和取證的成本。
在淺談操作系統(tǒng)的適航符合性(下)中,將詳細(xì)展開討論降低機(jī)載軟硬件適航成本的潛在方法,以及國內(nèi)首個完全符合適航標(biāo)準(zhǔn)的輕量級嵌入式操作系統(tǒng)——飛蜻FlyLite等內(nèi)容。
審核編輯 黃宇
-
嵌入式
+關(guān)注
關(guān)注
5095文章
19189瀏覽量
307989 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6900瀏覽量
123811
發(fā)布評論請先 登錄
相關(guān)推薦
物聯(lián)網(wǎng)的八大操作系統(tǒng)
淺談Linux操作系統(tǒng)的三大部分
![<b class='flag-5'>淺談</b>Linux<b class='flag-5'>操作系統(tǒng)</b>的三大部分](https://file1.elecfans.com/web2/M00/8D/89/wKgaomS8sL6ACMAbAAAys0n_CUU235.jpg)
[原創(chuàng)]嵌入式操作系統(tǒng)的可移植性
嵌入式操作系統(tǒng)上的FreeRTOS操作系統(tǒng)分析
操作系統(tǒng)的重要性如何?
了解Android操作系統(tǒng)和Chrome操作系統(tǒng)
為什么要用操作系統(tǒng)?
符合幾種情況采用操作系統(tǒng)
linux操作系統(tǒng)的安全性
嵌入式操作系統(tǒng)實時性比對與分析
![嵌入式<b class='flag-5'>操作系統(tǒng)</b>實時<b class='flag-5'>性</b>比對與分析](https://file1.elecfans.com//web2/M00/A4/AC/wKgZomUMNTqAVFKqAAAM-WlSiGQ589.gif)
操作系統(tǒng)的種類
RTOS操作系統(tǒng)
基于UEFI固件的操作系統(tǒng)完整性度量機(jī)制
![基于UEFI固件的<b class='flag-5'>操作系統(tǒng)</b>完整<b class='flag-5'>性</b>度量機(jī)制](https://file.elecfans.com/web2/M00/49/6E/poYBAGKhwLKAa6MOAAAfgH1-noc030.jpg)
評論