0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺談操作系統(tǒng)的適航符合性(上)

上海控安 ? 來源:上??匕? ? 作者:上海控安 ? 2023-08-08 15:09 ? 次閱讀

作者 |蔡喁上海控安可信軟件創(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)容。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5052

    文章

    18909

    瀏覽量

    300740
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6603

    瀏覽量

    123021
收藏 人收藏

    評論

    相關(guān)推薦

    實(shí)時(shí)操作系統(tǒng)和分時(shí)操作系統(tǒng)的區(qū)別

    操作系統(tǒng)能否滿足實(shí)時(shí)性要求來區(qū)分,可把操作系統(tǒng)分成分時(shí)操作系統(tǒng)和實(shí)時(shí)操作系統(tǒng),分時(shí)操作系統(tǒng)按照相等的時(shí)間片調(diào)度進(jìn)程輪流運(yùn)行,分時(shí)操作系統(tǒng)
    發(fā)表于 11-14 17:39 ?1.3w次閱讀

    物聯(lián)網(wǎng)的八大操作系統(tǒng)

    科技行業(yè)將大量的時(shí)間花在致力于物聯(lián)網(wǎng)熱潮。營利科技公司和開源社區(qū)成員都在宣傳各自的操作系統(tǒng),標(biāo)榜自己是適合眾多物聯(lián)網(wǎng)用途的那種操作系統(tǒng)。而事實(shí),不是每種
    發(fā)表于 03-10 09:12 ?1.4w次閱讀

    淺談Linux操作系統(tǒng)的三大部分

    是一種多用戶、多任務(wù)、支持多種處理器架構(gòu)的操作系統(tǒng),它能夠運(yùn)行在各種不同的硬件設(shè)備,包括個(gè)人電腦、服務(wù)器、移動設(shè)備和嵌入式系統(tǒng)等。Linux操作系統(tǒng)具有良好的穩(wěn)定性、可靠
    發(fā)表于 07-23 12:59 ?2598次閱讀
    <b class='flag-5'>淺談</b>Linux<b class='flag-5'>操作系統(tǒng)</b>的三大部分

    [原創(chuàng)]嵌入式操作系統(tǒng)的可移植

    ,或者有許多產(chǎn)品系列,系列之間的操作系統(tǒng)也只是稍有不同。他們花在移植操作系統(tǒng)的時(shí)間,遠(yuǎn)小于應(yīng)用程序的工作量,甚至可以忽略不計(jì)。因此,操作系統(tǒng)的可移植
    發(fā)表于 03-16 22:11

    嵌入式操作系統(tǒng)的FreeRTOS操作系統(tǒng)分析

    在嵌入式領(lǐng)域中,嵌入式實(shí)時(shí)操作系統(tǒng)正得到越來越廣泛的應(yīng)用。采用嵌入式實(shí)時(shí)操作系統(tǒng)(rtos)可以更合理、更有效地利用cpu的資源,簡化應(yīng)用軟件的設(shè)計(jì),縮短系統(tǒng)開發(fā)時(shí)間,更好地保證系統(tǒng)
    發(fā)表于 07-01 08:19

    操作系統(tǒng)的重要如何?

    文末領(lǐng)取大圖。這不是一篇教你如何創(chuàng)建一個(gè)操作系統(tǒng)的文章,相反,這是一篇指導(dǎo)文章,教你從幾個(gè)方面來理解操作系統(tǒng)。首先你需要知道你為什么要看這篇文章以及為什么要學(xué)習(xí)操作系統(tǒng)。搞清楚幾個(gè)問
    發(fā)表于 07-23 08:26

    了解Android操作系統(tǒng)和Chrome操作系統(tǒng)

    了解Android操作系統(tǒng)和Chrome操作系統(tǒng)等嵌入式Linux,華為更新向?qū)H用于更新華為模塊固件的工具。該工具符合華為設(shè)備的接口,禁止應(yīng)用于任何其他制造商的設(shè)備。升級華為模塊必須遵守以下規(guī)則
    發(fā)表于 11-04 08:37

    為什么要用操作系統(tǒng)?

    何謂操作系統(tǒng)1.什么是操作系統(tǒng)?操作系統(tǒng)是管理和控制計(jì)算機(jī)硬件與軟件資源的計(jì)算機(jī)程序,是直接運(yùn)行在“裸機(jī)”的最基本的系統(tǒng)軟件,任何其他軟件
    發(fā)表于 12-14 07:56

    符合幾種情況采用操作系統(tǒng)

    在嵌入式軟件開發(fā)中,可以使用操作系統(tǒng),也可以不使用操作系統(tǒng),這取決于系統(tǒng)的復(fù)雜程度。如果是功能比較單一的系統(tǒng),如沒有聯(lián)網(wǎng)功能的刷卡機(jī)、簡單的家電監(jiān)控
    發(fā)表于 12-22 06:29

    linux操作系統(tǒng)的安全

    linux操作系統(tǒng)的安全 計(jì)算機(jī)系統(tǒng)安全性的內(nèi)涵 操作系統(tǒng)的安全性功能 操作系統(tǒng)的安全機(jī)制 安全
    發(fā)表于 04-28 15:05 ?0次下載

    嵌入式操作系統(tǒng)實(shí)時(shí)比對與分析

    嵌入式操作系統(tǒng)實(shí)時(shí)比對與分析 以影響嵌入式操作系統(tǒng)實(shí)時(shí)的一系列相關(guān)指標(biāo)為研究對象,以比對實(shí)驗(yàn)平臺為基礎(chǔ),提出一種全
    發(fā)表于 03-29 15:14 ?1823次閱讀
    嵌入式<b class='flag-5'>操作系統(tǒng)</b>實(shí)時(shí)<b class='flag-5'>性</b>比對與分析

    操作系統(tǒng)的種類

        操作系統(tǒng)的種類     操作系統(tǒng)(Operating System,簡稱OS)傳統(tǒng)是負(fù)責(zé)對計(jì)算機(jī)硬件直接控制及管理的系統(tǒng)
    發(fā)表于 12-17 16:49 ?1245次閱讀

    RTOS操作系統(tǒng)

    RTOS操作系統(tǒng)RTOS操作系統(tǒng)RTOS操作系統(tǒng)RTOS操作系統(tǒng)RTOS操作系統(tǒng)
    發(fā)表于 12-28 15:30 ?0次下載

    基于UEFI固件的操作系統(tǒng)完整度量機(jī)制

    操作系統(tǒng)是計(jì)算機(jī)硬件和軟件的紐帶,是應(yīng)用軟件運(yùn)行的基礎(chǔ)環(huán)境,而內(nèi)核的安全操作系統(tǒng)安全的核心問題,若操作系統(tǒng)內(nèi)核受到攻擊,會對操作系統(tǒng)以及
    發(fā)表于 11-30 17:27 ?0次下載
    基于UEFI固件的<b class='flag-5'>操作系統(tǒng)</b>完整<b class='flag-5'>性</b>度量機(jī)制

    淺談操作系統(tǒng)適航符合(下)

    本篇將展開討論降低民機(jī)機(jī)載操作系統(tǒng)適航風(fēng)險(xiǎn)的具體方法。
    的頭像 發(fā)表于 08-08 15:11 ?684次閱讀
    <b class='flag-5'>淺談</b><b class='flag-5'>操作系統(tǒng)</b>的<b class='flag-5'>適航</b><b class='flag-5'>符合</b><b class='flag-5'>性</b>(下)