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