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