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

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

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

成功遷移安全關(guān)鍵型軟件

星星科技指導員 ? 來源:嵌入式計算設(shè)計 ? 作者:Ole N. Oest ? 2022-10-20 09:56 ? 次閱讀

軟件俱樂部的第一條規(guī)則:如果它沒有壞,就不要談?wù)撚|摸它。但是,這在許多情況下是不可行的,例如,由于與系統(tǒng)相關(guān)的原因,必須遷移運行良好的代碼。這在安全關(guān)鍵型系統(tǒng)中成為一個大問題,其中更改代碼會觸發(fā)一系列其他昂貴且有風險的活動。那么設(shè)計師們該怎么辦呢?以下是有關(guān)如何衡量團隊目標以及應考慮哪些選項的解釋。

將安全關(guān)鍵型系統(tǒng)遷移到新技術(shù)可能是一個成本高昂且有風險的過程,開發(fā)人員應盡可能避免。但是,在某些情況下,出于財務(wù)或性能原因,遷移是可取的,或者由于硬件過時和新要求而無法避免。面臨遷移的開發(fā)人員需要仔細考慮系統(tǒng)更改的類型和程度,以比較內(nèi)部活動與設(shè)計服務(wù)支持的好處。

部署在航空航天和國防領(lǐng)域的安全關(guān)鍵型嵌入式系統(tǒng)的使用壽命通常超過單個系統(tǒng)組件的使用壽命。技術(shù)發(fā)展的快速步伐使得這些組件中至少有一個需要在系統(tǒng)本身退役之前數(shù)年甚至數(shù)十年進行更改的可能性很高。反過來,這種硬件更改可能會觸發(fā)開發(fā)人員將系統(tǒng)軟件遷移到新技術(shù)的需要,以確保持續(xù)的可維護性。

許多系統(tǒng)更改可能會觸發(fā)軟件組件遷移。例如,外設(shè)、通信總線或協(xié)議可能會發(fā)生變化,從而迫使代碼段遷移到新硬件。目標硬件或處理器可能會過時,就像基于英特爾 80860 的系統(tǒng)一樣,迫使整個系統(tǒng)軟件遷移到一個全新的平臺。可能會出現(xiàn)新的功能要求或認證標準,迫使系統(tǒng)設(shè)計在以前不需要的地方納入實時操作系統(tǒng)(RTOS)。同樣,新標準的強加,F(xiàn)AA等監(jiān)管機構(gòu)對認證的新要求,以及與新系統(tǒng)互操作的需求,都可能產(chǎn)生將軟件遷移到新平臺的需求。

對開發(fā)環(huán)境的更改也可能導致遷移系統(tǒng)軟件的需要。開發(fā)和維護應用程序的主機的過時(如 VAX/VMS 主機所發(fā)生的情況)可能會在難以找到故障硬件的備件時強制將系統(tǒng)軟件遷移到新的開發(fā)工具。開發(fā)工具本身的過時或應用程序工具或語言專業(yè)知識的喪失可能會啟動向新工具的遷移,以確保開發(fā)人員可以繼續(xù)支持已安裝的系統(tǒng)。同樣,RTOS 的過時可能會促使軟件遷移到新平臺。

即使是業(yè)務(wù)變化也會刺激遷移。與RTOS或其他軟件組件相關(guān)的生產(chǎn)版稅可能會影響系統(tǒng)的盈利能力。由于利潤空間狹窄,開發(fā)人員可能會選擇遷移系統(tǒng)軟件以消除此類版稅。

降低成本和風險

無論什么觸發(fā)硬件或軟件的更改,遷移系統(tǒng)軟件都會涉及成本和風險。軟件遷移不僅意味著更改軟件及其隨之而來的引入錯誤的風險,還意味著重新測試和可能重新認證軟件。開發(fā)和測試工作的總成本可能相當可觀,特別是對于必須滿足嚴格要求的安全關(guān)鍵系統(tǒng)。

移徙因素

成功遷移的一個關(guān)鍵是徹底了解遷移的影響。開發(fā)人員需要考慮許多因素,包括:

性能:新處理器/實時操作系統(tǒng)/平臺能否滿足系統(tǒng)“??s”的實時截止時間要求?

資源限制:軟件是否適合系統(tǒng)內(nèi)存和寄存器可用性的限制?

RTOS 影響:更改 RTOS 或?qū)?RTOS 添加到曾經(jīng)裸露的板環(huán)境中可能會改變代碼執(zhí)行順序或時序。它還可能增加系統(tǒng)復雜性并改變內(nèi)存要求。

字長:字長的變化(例如從 16 位到 32 位)將如何影響現(xiàn)有代碼?計算算法、指針、計數(shù)器、上溢/下溢條件和執(zhí)行速度可能會受到字長變化的影響。

工具可用性:主機或目標平臺的更改是否也意味著工具集的更改?用于創(chuàng)建和維護系統(tǒng)軟件的開發(fā)工具可能不適用于主機系統(tǒng)和目標處理器或 RTOS 的給定組合。

數(shù)據(jù)布局:編譯器將數(shù)據(jù)映射到寄存器和內(nèi)存的方式各不相同。此類變化可能會導致與軟件中隱含或預期的映射發(fā)生沖突。

可擴展性:軟件遷移可能需要升級或增強功能以滿足新的要求。工具和系統(tǒng)資源需要支持此類增強功能。

可追溯性:將遷移的軟件追溯到原始軟件的能力可以通過證明軟件未更改來幫助降低測試成本。

遷移期間所做的更改越多,起作用的因素就越多。風險最低的遷移是僅更改系統(tǒng)的一個方面,例如主機開發(fā)平臺。如果原始軟件開發(fā)系統(tǒng)和軟件工具在當前主機平臺(如運行微軟Windows的PC)上可用,這是可行的。僅更改開發(fā)主機對系統(tǒng)和軟件的其余部分的影響最小。

開發(fā)人員應尋求創(chuàng)造性的方法,將更改次數(shù)保持在最低限度。例如,如果開發(fā)工具在新的主機平臺上不可用,仿真可能會提供切換工具集的替代方法。事實證明,在PC上運行的VAX仿真器在允許繼續(xù)使用工具方面是成功的,并且由此生成的二進制目標代碼通常與原始目標代碼相同。工具、源代碼和目標代碼沒有改變,減少了重新測試和重新認證的需要。

工具更改需要編譯器專業(yè)知識

當工具集必須更改時,開發(fā)人員將面臨其他挑戰(zhàn)。編譯器將源代碼映射到底層硬件結(jié)構(gòu)的方式各不相同,例如內(nèi)存尋址和寄存器用法。除非開發(fā)人員仔細約束編譯器的“??s”行為,否則這些變化可能會導致目標代碼的更改。充其量,這會觸發(fā)重新測試并可能重新認證軟件的需要。在最壞的情況下,這些更改可能會導致執(zhí)行期間出現(xiàn)意外且可能存在缺陷的系統(tǒng)行為。

在不引起其他更改的情況下更改工具集要求開發(fā)團隊具有應用程序級工程師通常缺乏的編譯器行為‘?ì專業(yè)知識。為了避免花費時間和精力獲得所需的技能,開發(fā)團隊可以向外尋求幫助。設(shè)計服務(wù)組織通常具有使用各種工具集的經(jīng)驗,并且可以將這種經(jīng)驗用于確保工具更改不會觸發(fā)軟件更改。

設(shè)計人員團隊應盡可能避免某些更改,例如將應用程序從舊編程語言轉(zhuǎn)換為當前編程語言。團隊應該使用舊語言和新目標硬件的開發(fā)系統(tǒng),而不是轉(zhuǎn)換。這將并發(fā)更改和風險的數(shù)量限制為僅兩個:開發(fā)系統(tǒng)和目標硬件。

改變語言涉及許多可能的陷阱。生成的應用程序?qū)⑴c原始應用程序不同,需要昂貴的重新測試和重新認證。其他因素也起作用。生成的代碼將具有不同的布局,并且可能不再適合可用內(nèi)存;數(shù)據(jù)布局將有所不同,不再正確映射到底層硬件;性能和時間方面將發(fā)生變化。應用程序必須在源代碼級別進行修改,這將需要使用新的編程語言以及應用程序的設(shè)計和內(nèi)部工作來培訓軟件工程師。

雖然如果沒有一個程序員接受過應用程序’??s編程語言的培訓,那么遷移到一門新語言可能很誘人,但這應該是最后的手段。在采取這條路之前,請考慮用舊語言培訓程序員。精通相對復雜的當前語言(如JavaC++)的程序員不會發(fā)現(xiàn)學習另一種語言是不可逾越的。

設(shè)計服務(wù)提供專家協(xié)助

另一種可能性是聘請?zhí)峁┍匾Z言專業(yè)知識的設(shè)計服務(wù)。對于針對軍事和航空電子系統(tǒng)的專用語言,如Ada和JOVIAL,設(shè)計服務(wù)提供商通常在應用領(lǐng)域和語言方面擁有豐富的經(jīng)驗,包括安全關(guān)鍵系統(tǒng)設(shè)計需求的經(jīng)驗。這使他們能夠快速深入了解系統(tǒng)軟件,并提供開發(fā)團隊所需的維護和升級支持。

如果最終必須廢棄原始語言,系統(tǒng)設(shè)計人員可以使用翻譯工具部分更改語言(如圖 1 所示)。但是,沒有任何工具可以完成完整的工作,并且轉(zhuǎn)換后的源程序的可讀性可能值得懷疑。如果可能,開發(fā)團隊應努力僅在絕對必要的部分更改語言。

圖1

pYYBAGNQqrWAZNAfAAAzEiewiH0518.jpg

實現(xiàn)此目的的一種方法是使用支持新舊目標語言并且可以混合語言的工具集。這允許團隊保持原始代碼中仍然可用的部分不變,并將語言更改限制為滿足新要求所涉及的部分。

這種混合語言工具的一個關(guān)鍵部分是調(diào)試器。雖然許多編譯器可以組合不同語言的代碼段,但大多數(shù)調(diào)試器工具一次只處理一種語言。這意味著開發(fā)人員必須同時調(diào)用多個工具才能查看代碼段之間的交互,而這些工具很少以協(xié)調(diào)的方式進行交互或交換信息以幫助將目標代碼與多種語言源相關(guān)聯(lián)。DDC-I‘??s OpenArbor(如圖 2 所示)等工具允許在單次啟動時進行混合語言調(diào)試,可以顯著縮短調(diào)試時間,并更容易檢測交互錯誤。

圖2

poYBAGNQqraAbYb5AABVbMDC86o663.jpg

無論是否涉及語言更改,遷移安全關(guān)鍵型系統(tǒng)軟件都是一項復雜的任務(wù),存在許多潛在的陷阱。硬件、主機、目標、工具和語言的每次更改都會引入復雜性,并可能強制進行其他更改,從而導致后果升級。應通過最大化舊版工具和代碼重用來盡可能避免遷移中固有的成本和風險。當需要更改時,仔細選擇新工具并戰(zhàn)略性地使用經(jīng)驗豐富的設(shè)計服務(wù)可以降低軟件遷移風險和成本。

審核編輯:郭婷

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

    關(guān)注

    37

    文章

    6838

    瀏覽量

    123385
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2970

    瀏覽量

    104814
  • RTOS
    +關(guān)注

    關(guān)注

    22

    文章

    815

    瀏覽量

    119698
收藏 人收藏

    評論

    相關(guān)推薦

    DevSecOps自動化在安全關(guān)鍵軟件開發(fā)中的實踐、Helix QAC& Klocwork等SAST工具應用

    DevSecOps自動化旨在通過在軟件開發(fā)生命周期的各個階段集成安全流程,使用自動化工具和最佳實踐來簡化開發(fā)、安全和運營。實現(xiàn)DevSecOps自動化流程的一個重要部分就是使用SAST工具,以幫助盡早發(fā)現(xiàn)問題,減少手動測試需求,
    的頭像 發(fā)表于 01-03 16:05 ?60次閱讀
    DevSecOps自動化在<b class='flag-5'>安全</b><b class='flag-5'>關(guān)鍵</b><b class='flag-5'>型</b><b class='flag-5'>軟件</b>開發(fā)中的實踐、Helix QAC&amp;amp; Klocwork等SAST工具應用

    HarmonyOS Next 應用元服務(wù)開發(fā)-應用接續(xù)動態(tài)配置遷移保持遷移連續(xù)性

    保證遷移連續(xù)性,由于遷移加載時,目標端拉起的應用可能執(zhí)行過自己的遷移狀態(tài)設(shè)置命令(如:冷啟動時目標端在onCreate中設(shè)置了INACTIVE;熱啟動時對端已打開了不可遷移的頁面,
    發(fā)表于 12-30 10:30

    HarmonyOS Next 應用元服務(wù)開發(fā)-應用接續(xù)動態(tài)配置遷移按需退出

    按需退出,支持應用動態(tài)選擇遷移成功后是否退出遷移源端應用(默認遷移成功后退出遷移源端應用)。如果應用不想讓系統(tǒng)自動退出遷移源端應用,則可以設(shè)
    發(fā)表于 12-27 14:39

    云計算HPC軟件關(guān)鍵技術(shù)

    云計算HPC軟件關(guān)鍵技術(shù)涉及系統(tǒng)架構(gòu)、處理器技術(shù)、操作系統(tǒng)、計算加速、網(wǎng)絡(luò)技術(shù)以及軟件優(yōu)化等多個方面。下面,AI部落小編帶您探討云計算HPC軟件關(guān)
    的頭像 發(fā)表于 12-18 11:23 ?99次閱讀

    C2000?第2代至第3代MCU功能安全使能器遷移指南

    電子發(fā)燒友網(wǎng)站提供《C2000?第2代至第3代MCU功能安全使能器遷移指南.pdf》資料免費下載
    發(fā)表于 11-28 15:08 ?0次下載
    C2000?第2代至第3代MCU功能<b class='flag-5'>安全</b>使能器<b class='flag-5'>遷移</b>指南

    云計算遷移的步驟與注意事項

    云計算遷移是一個復雜且關(guān)鍵的過程,需要細致的規(guī)劃和執(zhí)行。以下是云計算遷移的一般步驟及注意事項: 一、云計算遷移的步驟 準備階段 評估目標云環(huán)境 :對目標云服務(wù)器的性能、存儲容量、網(wǎng)絡(luò)帶
    的頭像 發(fā)表于 10-24 09:20 ?614次閱讀

    IT資源遷移到云服務(wù)器的關(guān)鍵因素

    隨著云計算技術(shù)的不斷成熟和普及,越來越多的企業(yè)選擇將他們的IT資源遷移到云服務(wù)器上。這種轉(zhuǎn)變不僅可以降低成本、提高靈活性,還可以提升安全性和效率。本文將深入探討將IT資源遷移到云服務(wù)器的重要性、優(yōu)勢
    的頭像 發(fā)表于 09-18 11:21 ?335次閱讀

    軟件從8位(字節(jié))可尋址CPU遷移至C28x CPU

    電子發(fā)燒友網(wǎng)站提供《將軟件從8位(字節(jié))可尋址CPU遷移至C28x CPU.pdf》資料免費下載
    發(fā)表于 09-06 10:42 ?0次下載
    將<b class='flag-5'>軟件</b>從8位(字節(jié))可尋址CPU<b class='flag-5'>遷移</b>至C28x CPU

    龍智Atlassian ITSM解決方案、云遷移解決方案詳解:高速ITSM實施+端到端的云遷移服務(wù)

    競爭力的關(guān)鍵。憑借卓越的IT服務(wù)管理和深厚的云遷移技術(shù)實力,龍智成功斬獲AtlassianITSM+Cloud雙重專業(yè)認證!標志著龍智團隊在ITSM實施和云遷移方面均
    的頭像 發(fā)表于 09-04 09:41 ?290次閱讀
    龍智Atlassian ITSM解決方案、云<b class='flag-5'>遷移</b>解決方案詳解:高速ITSM實施+端到端的云<b class='flag-5'>遷移</b>服務(wù)

    更深入地了解汽車與航空電子等安全關(guān)鍵應用的IP核考量因素

    中國已經(jīng)連續(xù)十多年成為全球第一大汽車生產(chǎn)國和消費市場,同時越來越多的制造商正在考慮進入無人機和飛行汽車等低空設(shè)備,而所有的這些產(chǎn)品都需要先進芯片的支撐,同時這些芯片又都是安全關(guān)鍵芯片
    的頭像 發(fā)表于 07-09 16:22 ?312次閱讀
    更深入地了解汽車與航空電子等<b class='flag-5'>安全</b><b class='flag-5'>關(guān)鍵</b><b class='flag-5'>型</b>應用的IP核考量因素

    羅德與施瓦茨測試解決方案助力向?qū)拵?b class='flag-5'>關(guān)鍵任務(wù)通信成功遷移

    TETRA 或 P25 傳統(tǒng)窄帶技術(shù)已無法滿足當今應急響應人員的連接需求。隨著任務(wù)關(guān)鍵網(wǎng)絡(luò)需求的增長,寬帶連接是解決之道。
    的頭像 發(fā)表于 05-15 16:38 ?423次閱讀

    鴻蒙OS 跨設(shè)備遷移

    跨設(shè)備遷移(下文簡稱“遷移”)支持將 Page 在同一用戶的不同設(shè)備間遷移,以便支持用戶無縫切換的訴求。以 Page 從設(shè)備 A 遷移到設(shè)備 B 為例,
    的頭像 發(fā)表于 01-31 15:47 ?1148次閱讀

    AIoT人員定位成化工安全關(guān)鍵

    AIoT人員定位成化工安全關(guān)鍵
    的頭像 發(fā)表于 01-12 08:13 ?720次閱讀
    AIoT人員定位成化工<b class='flag-5'>安全</b><b class='flag-5'>關(guān)鍵</b>

    一分鐘,自動完成Redis數(shù)據(jù)遷移

    NineData提供了高效、安全的Redis不停機數(shù)據(jù)遷移方案。與傳統(tǒng)遷移方案相比,NineData具備簡單易用、強勁性能和高可靠性的優(yōu)勢。通過優(yōu)化核心技術(shù),NineData的遷移性能
    的頭像 發(fā)表于 01-08 11:34 ?434次閱讀
    一分鐘,自動完成Redis數(shù)據(jù)<b class='flag-5'>遷移</b>

    SCADE—產(chǎn)品級安全關(guān)鍵系統(tǒng)的MBD開發(fā)套件

    隨著新能源三電、智能駕駛等新技術(shù)的應用,汽車中衍生出很多安全關(guān)鍵零部件,如BMS、VCU、MCU、ADAS等,相應的軟件在汽車中的比重越來越大,并且安全性、可靠性要求也越來越高。ANS
    的頭像 發(fā)表于 01-05 14:12 ?617次閱讀
    SCADE—產(chǎn)品級<b class='flag-5'>安全</b><b class='flag-5'>關(guān)鍵</b>系統(tǒng)的MBD開發(fā)套件