国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

μC/OS內(nèi)核的形式化驗(yàn)證技術(shù)

上海控安 ? 來(lái)源:上海控安 ? 作者:上海控安 ? 2022-08-18 16:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者 | 郭建上海控安可信軟件創(chuàng)新研究院特聘專(zhuān)家

丁繼政 上海控安研發(fā)中心研究員

版塊 | 鑒源論壇 · 觀模

操作系統(tǒng)作為軟件系統(tǒng)的核心,其安全性與可靠性是構(gòu)造高可信軟件最為關(guān)鍵的一步。嵌入式實(shí)時(shí)操作系統(tǒng)因其具有并發(fā)、可搶占以及代碼復(fù)雜性的特征,給驗(yàn)證工作帶來(lái)了巨大挑戰(zhàn)。我們提出了一種通用的自動(dòng)化驗(yàn)證框架,借助相關(guān)工具,使用本驗(yàn)證框架可對(duì)由C語(yǔ)言匯編語(yǔ)言實(shí)現(xiàn)的實(shí)時(shí)操作系統(tǒng)內(nèi)核進(jìn)行自動(dòng)化驗(yàn)證,從而實(shí)現(xiàn)C和匯編的混合代碼驗(yàn)證的目標(biāo)。

01

操作系統(tǒng)內(nèi)核驗(yàn)證框架

操作系統(tǒng)絕大多數(shù)都是采用C語(yǔ)言和匯編語(yǔ)言編寫(xiě)的,對(duì)操作系統(tǒng)的驗(yàn)證需要分析C語(yǔ)言、匯編語(yǔ)言和混合語(yǔ)言的驗(yàn)證。我們以μC/OS-II為研究對(duì)象,提出了一個(gè)通用的自動(dòng)化驗(yàn)證框架,該框架如圖1所示。

poYBAGL9-niABZUDAAMWOnPRtr8273.png

圖1 操作系統(tǒng)內(nèi)核自動(dòng)化驗(yàn)證框架

驗(yàn)證工作分為兩個(gè)部分:在第一部分中,對(duì)由高層語(yǔ)言(如C語(yǔ)言)構(gòu)成的系統(tǒng)調(diào)用進(jìn)行驗(yàn)證,通過(guò)自動(dòng)化驗(yàn)證工具VCC檢查系統(tǒng)調(diào)用的源代碼與其規(guī)范的一致性;在另一部分中,對(duì)由高層語(yǔ)言和底層語(yǔ)言(如C語(yǔ)言和匯編語(yǔ)言)構(gòu)成的內(nèi)核服務(wù)程序進(jìn)行驗(yàn)證,通過(guò)將匯編語(yǔ)言轉(zhuǎn)換成抽象模型,并實(shí)現(xiàn)與C語(yǔ)言的粘合,形成符合基于C語(yǔ)言的驗(yàn)證工具(如VCC)能夠接收的模型,再利用該工具驗(yàn)證新混合代碼。

02

基于驗(yàn)證框架的μC/OS-II內(nèi)核驗(yàn)證

操作系統(tǒng)是對(duì)資源的管理,不可避免地需要對(duì)硬件資源進(jìn)行訪問(wèn)操作。為了提高效率,特別是在上下文切換、中斷機(jī)制中,通常得使用匯編語(yǔ)言。針對(duì)μC/OS-II內(nèi)核代碼,存在兩種混合形態(tài):

(1)C代碼內(nèi)嵌匯編的混合程序,即在C語(yǔ)言編寫(xiě)的程序中調(diào)用匯編代碼;

(2)匯編內(nèi)嵌C混合程序,即在由匯編語(yǔ)言編寫(xiě)的程序中調(diào)用C代碼。

為了實(shí)現(xiàn)對(duì)μC/OS-II內(nèi)核代碼的驗(yàn)證,這里使用自動(dòng)化驗(yàn)證工具VCC對(duì)抽象模型實(shí)現(xiàn)。

VCC是源代碼級(jí)并發(fā)C程序的自動(dòng)化推理驗(yàn)證工具,用于證明C語(yǔ)言程序功能規(guī)范的正確性。VCC工具鏈允許使用函數(shù)合約和數(shù)據(jù)結(jié)構(gòu)的不變量對(duì)并發(fā)C程序進(jìn)行模塊化驗(yàn)證。函數(shù)合約由前置條件和后置條件指定。VCC是基于注釋的系統(tǒng),即合約和不變量作為注釋插入在源代碼中,其方式對(duì)于常規(guī)的非驗(yàn)證編譯器是透明的。

2.1抽象模型的實(shí)現(xiàn)

匯編程序的抽象模型是包含狀態(tài)S、堆棧指針sp以及轉(zhuǎn)移關(guān)系δ的三元組。程序狀態(tài)S用Ghost結(jié)構(gòu)體MCF_c表示。MCF_c結(jié)構(gòu)體中的三個(gè)元素依次對(duì)應(yīng)了數(shù)據(jù)寄存器、地址寄存器和狀態(tài)寄存器,抽象模型的狀態(tài)S和堆棧指針sp的定義如下:

poYBAGL9-tuAdQ7EAACi9EZU1oM286.png

圖 2

在μC/OS-II通過(guò)只使用一個(gè)硬件指針實(shí)現(xiàn)了把即將運(yùn)行的任務(wù)控制塊(OSTCB)的內(nèi)容從內(nèi)存區(qū)域中加載到寄存器中,或者將當(dāng)前正在運(yùn)行任務(wù)的內(nèi)容存儲(chǔ)到相應(yīng)的任務(wù)控制塊中。

MCF_B16t類(lèi)型和MCF_B32t類(lèi)型是我們自定義類(lèi)型,它們分別對(duì)應(yīng)了無(wú)符號(hào)16位整型和無(wú)符號(hào)32位整型,通過(guò)使用關(guān)鍵字typedef定義,如下:

_(typedef unsigned short MCF_B16t)

_(typedef unsigned long MCF_B32t)

抽象模型中的狀態(tài)S包括數(shù)據(jù)通用寄存器、地址通用寄存器和狀態(tài)寄存器,這三個(gè)成員在實(shí)現(xiàn)中分別對(duì)應(yīng)于數(shù)組D[8]和A[8]和變量SR,抽象模型的堆棧指針sp對(duì)應(yīng)于實(shí)現(xiàn)中的*SP。在Ghost語(yǔ)句中,使用了關(guān)鍵字ghost對(duì)指針*SP進(jìn)行了定義。

抽象模型中的狀態(tài)轉(zhuǎn)移關(guān)系δ表示抽象模型執(zhí)行匯編語(yǔ)句前后狀態(tài)變化,狀態(tài)轉(zhuǎn)移關(guān)系的實(shí)現(xiàn)見(jiàn)表1。

pYYBAGL9-vSAGUb7AABP-ojjp-4580.png

表1狀態(tài)轉(zhuǎn)移的代碼實(shí)現(xiàn)

2.2 C代碼和抽象模型的粘合

在μC/OS-II的內(nèi)核代碼中,匯編程序和C程序分別定義在兩種不同類(lèi)型的文件中。C語(yǔ)言定義的程序具有高移植性,匯編語(yǔ)言定義的程序可以對(duì)內(nèi)核運(yùn)行的硬件平臺(tái)進(jìn)行訪問(wèn)控制,內(nèi)核的正常運(yùn)轉(zhuǎn)離不開(kāi)這兩種語(yǔ)言程序的協(xié)作運(yùn)行。這兩種不同語(yǔ)言程序的協(xié)作是通過(guò)在各自程序中調(diào)用另一語(yǔ)言定義的函數(shù)完成的。

在VCC設(shè)計(jì)理念中,Ghost語(yǔ)言只存在于驗(yàn)證過(guò)程中,不能夠直接影響原程序的執(zhí)行。我們采用了Ghost代碼模擬了匯編程序的執(zhí)行。但在OS實(shí)際運(yùn)行過(guò)程中,匯編語(yǔ)言程序與C語(yǔ)言程序之間存在數(shù)據(jù)的交換。為了解決抽象模型Ghost代碼與C代碼數(shù)據(jù)交換的問(wèn)題,提出了在純函數(shù)中添加VCC合約語(yǔ)句,見(jiàn)下面的代碼:

poYBAGL9-xSALgMeAABiZNAWSas691.png

圖 3

通常在VCC中,函數(shù)入口處的前置條件和后置條件是函數(shù)應(yīng)該滿(mǎn)足的性質(zhì)。但是,在函數(shù)體不為空時(shí),直接在驗(yàn)證函數(shù)的入口處添加前置條件或后置條件,VCC認(rèn)為該性質(zhì)描述語(yǔ)句是重言式,然后可以通過(guò)Ghost語(yǔ)句將Assignment()的返回值賦給一個(gè)具體類(lèi)型對(duì)象。例如,在C語(yǔ)言程序中的一個(gè)類(lèi)型為無(wú)符號(hào)32位的StoreValue變量,需要將抽象模型中D0的值賦值給C語(yǔ)言的變量StoreValue,此時(shí)使用下列語(yǔ)句就可以實(shí)現(xiàn)匯編指令與C語(yǔ)言代碼的通訊:

poYBAGL9-zGAfww9AABC2IkPi3U647.png

圖 4

同理,也可以通過(guò)Ghost純函數(shù)Assignment()將具體變量的值傳遞給Ghost類(lèi)型變量。借助在定義的Ghost純函數(shù)中添加斷言的形式,成功地模擬出C代碼和抽象模型之間的數(shù)據(jù)通訊。這樣,抽象模型的實(shí)現(xiàn)模擬了匯編指令的執(zhí)行,并可以與C代碼一起在VCC上運(yùn)行。

這部分給出了高層實(shí)現(xiàn)語(yǔ)言Ghost代碼的語(yǔ)法定義,通過(guò)該Ghost語(yǔ)言對(duì)抽象模型中三元組的各個(gè)元素進(jìn)行了具體實(shí)現(xiàn),最后介紹了如何將抽象模型的實(shí)現(xiàn),以及抽象模型與內(nèi)核中C代碼的粘合。

03

驗(yàn)證μC/OS-II及其分析

我們運(yùn)用前面提出的驗(yàn)證框架驗(yàn)證了基于μC/OS-II的商用實(shí)時(shí)操作系統(tǒng)內(nèi)核,包括近8000行的C代碼和100多行的匯編代碼(去除空格和注釋?zhuān)譃橄到y(tǒng)調(diào)用8個(gè)模塊的驗(yàn)證和混合語(yǔ)言實(shí)現(xiàn)的核心服務(wù)程序的驗(yàn)證。

3.1 系統(tǒng)調(diào)用的驗(yàn)證

μC/OS-II內(nèi)核中一共74個(gè)系統(tǒng)調(diào)用,在驗(yàn)證過(guò)程中,根據(jù)需求,提取出每個(gè)系統(tǒng)調(diào)用需要滿(mǎn)足的性質(zhì),性質(zhì)是基于Hoare邏輯的形式給出的,并采用VCC提供的合約或者斷言的形式,以注釋的方式插入到源代碼中。系統(tǒng)調(diào)用的驗(yàn)證性質(zhì)見(jiàn)表2。

poYBAGL9-3GAe0U5AABfIgxs4_k403.png

表2系統(tǒng)調(diào)用性質(zhì)提取

系統(tǒng)調(diào)用的8個(gè)模塊列于表3的第一列中,相對(duì)應(yīng)的每個(gè)模塊中所驗(yàn)證的系統(tǒng)調(diào)用個(gè)數(shù)列于表的第二列,每一個(gè)模塊所提取的性質(zhì)列在了表的第三列。在74個(gè)系統(tǒng)調(diào)用中添加了共653條性質(zhì),并完成了驗(yàn)證。

3.2 核心服務(wù)程序的驗(yàn)證

μC/OS-II內(nèi)核的核心服務(wù)程序是以混合語(yǔ)言(即C語(yǔ)言和匯編語(yǔ)言)實(shí)現(xiàn),其中匯編語(yǔ)言完成有關(guān)中斷控制、上下文切換以及寄存器讀寫(xiě)的操作。為了實(shí)現(xiàn)對(duì)混合語(yǔ)言程序的驗(yàn)證,將匯編程序轉(zhuǎn)換為抽象建模,并在VCC中實(shí)現(xiàn)。而對(duì)性質(zhì)的提取、性質(zhì)的形式化描述與系統(tǒng)調(diào)用的方法是相同的。我們?cè)隍?yàn)證中是針對(duì)程序是否嚴(yán)格滿(mǎn)足所要求的需求規(guī)范進(jìn)行分析驗(yàn)證。如果滿(mǎn)足,則表示功能正確。反之,表示軟件存在缺陷。

驗(yàn)證包括了13個(gè)C語(yǔ)言文件、2個(gè)頭文件以及1個(gè)匯編語(yǔ)言文件,共計(jì)6446行C語(yǔ)言程序和100行的匯編語(yǔ)言程序(除去了代碼中所有的注釋和空行),添加了936行性質(zhì)驗(yàn)證代碼和205行的抽象模型的代碼實(shí)現(xiàn),抽象模型實(shí)現(xiàn)與匯編代碼的比例約為2:1。

μC/OS-II 內(nèi)核總共驗(yàn)證出10個(gè)缺陷,分布于7個(gè)功能函數(shù)中。

04

總結(jié)

本文提出了一個(gè)通用的嵌入式操作系統(tǒng)內(nèi)核自動(dòng)化驗(yàn)證框架。該驗(yàn)證框架支持對(duì)C語(yǔ)言程序和C語(yǔ)言與匯編語(yǔ)言混合程序的驗(yàn)證。為了檢驗(yàn)本框架的可行性,以商用實(shí)時(shí)操作系統(tǒng)μC/OS-II的內(nèi)核作為研究對(duì)象,運(yùn)用本驗(yàn)證框架,通過(guò)驗(yàn)證工具VCC,完成了該內(nèi)核的系統(tǒng)調(diào)用及混合代碼的驗(yàn)證。

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    鑒源論壇 · 觀模丨形式化驗(yàn)證——以操作系統(tǒng)任務(wù)調(diào)度算法驗(yàn)證為案例

    形式化方法為軟件開(kāi)發(fā)過(guò)程提供了一種較為透徹的思維方式,該方式可以用于工程化系統(tǒng)設(shè)計(jì),并且可以很好地幫助工程人員建立系統(tǒng)抽象模型,從而進(jìn)行系統(tǒng)精化和驗(yàn)證
    的頭像 發(fā)表于 11-09 11:25 ?1998次閱讀
    鑒源論壇 · 觀模丨<b class='flag-5'>形式化驗(yàn)證</b>——以操作系統(tǒng)任務(wù)調(diào)度算法<b class='flag-5'>驗(yàn)證</b>為案例

    芯片開(kāi)發(fā)中形式化驗(yàn)證的是一個(gè)誤區(qū)

    今天的形式驗(yàn)證工具具有更大的容量,并且許多工具能夠在服務(wù)器或云上以分布式模式運(yùn)行。形式驗(yàn)證技術(shù)和方法也得到了擴(kuò)展。
    的頭像 發(fā)表于 11-29 14:31 ?2886次閱讀

    形式化方法的工程化

    形式化工程方法,是以軟件形式化方法理論為基礎(chǔ),以系統(tǒng)化的工程方法引導(dǎo)工業(yè)界工程人員構(gòu)建高質(zhì)量的軟件模型,用以引導(dǎo)后續(xù)的代碼編寫(xiě)和相關(guān)測(cè)試分析。并選取了工業(yè)實(shí)際場(chǎng)景中的某操作系統(tǒng)的調(diào)度系統(tǒng)的形式化驗(yàn)證
    的頭像 發(fā)表于 03-24 11:01 ?2652次閱讀
    <b class='flag-5'>形式化</b>方法的工程化

    EDA形式化驗(yàn)證漫談:仿真之外,驗(yàn)證之內(nèi)

    “在未來(lái)五年內(nèi)仿真將逐漸被淘汰,僅用于子系統(tǒng)和系統(tǒng)級(jí)驗(yàn)證。與此同時(shí),形式化驗(yàn)證方法已經(jīng)開(kāi)始處理一些系統(tǒng)級(jí)任務(wù)。隨著技術(shù)發(fā)展,更多Formal相關(guān)的商業(yè)標(biāo)準(zhǔn)化會(huì)推出。” Intel?fellow
    的頭像 發(fā)表于 09-01 09:10 ?2310次閱讀

    ACRN 之InterruptWindow功能正確性形式化驗(yàn)證

    重磅推薦|ACRN 之InterruptWindow功能正確性形式化驗(yàn)證
    發(fā)表于 06-18 16:04

    化驗(yàn)證和封裝形式有關(guān)系嗎?

    無(wú)關(guān),任何形式的封裝,皆需要做老化實(shí)驗(yàn)。蘇試宜特提供客戶(hù)量身訂制全方位的一站式服務(wù), 從老化驗(yàn)證的硬件設(shè)計(jì)/制造到樣品調(diào)試/實(shí)驗(yàn)/報(bào)告, 蘇試宜特都可以協(xié)助客戶(hù)完成。
    發(fā)表于 09-13 09:46

    形式化方法和測(cè)試技術(shù)及其在安全中的應(yīng)用

    本文回顧和討論了形式化方法和測(cè)試技術(shù),以及形式規(guī)格說(shuō)明可以用于測(cè)試用例生成、測(cè)試順序確定的途徑;并提出了將形式化方法和測(cè)試技術(shù)應(yīng)用于安全保密
    發(fā)表于 06-11 10:49 ?25次下載

    先進(jìn)的形式化驗(yàn)證

    Modern circuits may contain up to several hundred million transistors. In the meantime it has been observed that verification becomes the major bottleneck in design flows, i.e. up to 80% of the overall design costs
    發(fā)表于 07-21 09:13 ?0次下載
    先進(jìn)的<b class='flag-5'>形式化驗(yàn)證</b>

    VaaS平臺(tái)已支持區(qū)塊鏈平臺(tái)智能合約的形式化驗(yàn)證

    VaaS形式化驗(yàn)證平臺(tái),采用了多種形式化驗(yàn)證方法,具有驗(yàn)證效率高、自動(dòng)化程度高、人工參與度低、易于使用、支持多個(gè)合約開(kāi)發(fā)語(yǔ)言、可支持大容量區(qū)塊鏈底層平臺(tái)的形式化驗(yàn)證等優(yōu)點(diǎn)。
    發(fā)表于 12-14 10:18 ?1593次閱讀

    閃電網(wǎng)絡(luò)通過(guò)形式化驗(yàn)證結(jié)果表明和比特幣一樣安全

    of the Lightning Network” 的論文認(rèn)為,如今閃電網(wǎng)絡(luò)已經(jīng)被用于保護(hù)至少 8500 萬(wàn)美元的真實(shí)資金,但其代碼規(guī)范缺乏形式化驗(yàn)證是一件 “極其嚴(yán)重的事”。
    發(fā)表于 09-24 10:29 ?1015次閱讀

    安全測(cè)試之離線免費(fèi)版自動(dòng)形式化驗(yàn)證工具Beosin—VaaS

    近期,筆者注意到一款智能合約自動(dòng)形式化驗(yàn)證工具BeosinVaaS推出了離線免費(fèi)版。所謂離線免費(fèi)版,相較于之前該公司推出的在線免費(fèi)版、企業(yè)版而言,亮點(diǎn)自然不言而喻。對(duì)于開(kāi)發(fā)者來(lái)說(shuō),離線版的驗(yàn)證工具將
    發(fā)表于 11-23 00:06 ?1136次閱讀

    基于定理證明其的有限域及其形式化研究

    方法只能在η固定的特定有限域上進(jìn)行驗(yàn)證,而且計(jì)算量往往超出計(jì)算機(jī)的能力。基于交互式定理證眀器的形式化驗(yàn)證為有限域性質(zhì)的通用驗(yàn)提供了可能性,但這方面的工作難度較大。已有研究主要針對(duì)有服域的抽象性質(zhì)進(jìn)行形式化驗(yàn)證,但計(jì)
    發(fā)表于 04-25 11:41 ?1次下載
    基于定理證明其的有限域及其<b class='flag-5'>形式化</b>研究

    形式化方法背后的動(dòng)因和關(guān)鍵技術(shù)及行業(yè)應(yīng)用

    上海控安形式化方法技術(shù)團(tuán)隊(duì)歷年來(lái)在航空、航天和軌交等領(lǐng)域的成功應(yīng)用經(jīng)驗(yàn),本專(zhuān)題將圍繞“形式化方法”特別是形式化方法的工程化應(yīng)用,組織一系列文章,探討
    的頭像 發(fā)表于 06-10 10:49 ?2060次閱讀
    <b class='flag-5'>形式化</b>方法背后的動(dòng)因和關(guān)鍵<b class='flag-5'>技術(shù)</b>及行業(yè)應(yīng)用

    上海控安iVerifier計(jì)算機(jī)聯(lián)鎖系統(tǒng)驗(yàn)證工具概述

    傳統(tǒng)的聯(lián)鎖系統(tǒng)開(kāi)發(fā)、設(shè)計(jì)和測(cè)試,只能從功能上保證其邏輯的正確性,而無(wú)法保證其安全需求完全得到滿(mǎn)足。SmartRocket iVerifier作為上海控安擁有自主專(zhuān)利技術(shù)的計(jì)算機(jī)聯(lián)鎖系統(tǒng)形式化驗(yàn)證工具
    的頭像 發(fā)表于 08-09 16:37 ?2210次閱讀
    上海控安iVerifier計(jì)算機(jī)聯(lián)鎖系統(tǒng)<b class='flag-5'>驗(yàn)證</b>工具概述

    從小眾走向普及,形式化驗(yàn)證對(duì)系統(tǒng)級(jí)芯片開(kāi)發(fā)有多重要?

    首選。據(jù)估計(jì),在未來(lái)五年內(nèi)仿真將逐漸被取代,僅用于子系統(tǒng)和系統(tǒng)級(jí)驗(yàn)證。與此同時(shí),形式化驗(yàn)證方法已經(jīng)開(kāi)始處理一些系統(tǒng)級(jí)任務(wù),隨著技術(shù)的不斷創(chuàng)新,形式化驗(yàn)證將逐步開(kāi)始處理更多系統(tǒng)級(jí)任務(wù)。
    的頭像 發(fā)表于 04-21 19:35 ?1316次閱讀
    從小眾走向普及,<b class='flag-5'>形式化驗(yàn)證</b>對(duì)系統(tǒng)級(jí)芯片開(kāi)發(fā)有多重要?