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

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

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

一文淺析KataOS的基礎(chǔ)知識(shí)

yzcdx ? 來(lái)源:OS與AUTOSAR研究 ? 作者:thatway ? 2022-10-19 09:30 ? 次閱讀

先來(lái)說(shuō)一個(gè)新聞:谷歌前幾天(2022.10.14)宣布發(fā)布 KataOS,它是用于進(jìn)行機(jī)器學(xué)習(xí)嵌入式設(shè)備的操作系統(tǒng)。KataOS 從設(shè)計(jì)上就具備安全考慮,不但幾乎完全是由 Rust 實(shí)現(xiàn)的,而且是建立在 seL4 微內(nèi)核的基礎(chǔ)之上,seL4 在數(shù)學(xué)上被證明是安全的,具有保證保密性、完整性和可用性。

關(guān)于嵌入式軟件的發(fā)展方向,說(shuō)點(diǎn)個(gè)人見解

1)從linux宏內(nèi)核的粗放型會(huì)向微內(nèi)核的細(xì)顆??刂?/strong>的方向轉(zhuǎn)變,更強(qiáng)調(diào)系統(tǒng)的安全性,一方面內(nèi)核縮小,一方面各個(gè)應(yīng)用間彼此隔離。

2)從編程語(yǔ)言上,會(huì)轉(zhuǎn)向少寫bug的語(yǔ)言,當(dāng)代碼很容易堆砌,成本比較低的時(shí)候,會(huì)更加注重質(zhì)量,新的編程語(yǔ)言一方面會(huì)校驗(yàn)不寫bug,另一方面會(huì)隨著硬件變化自動(dòng)補(bǔ)充功能,雖然編程語(yǔ)言的發(fā)展很難,例如Rust十幾年了才更被大家所知,但是這是趨勢(shì)。

3)對(duì)于核心程序已經(jīng)不能滿足工具技術(shù)來(lái)讓其正確了,需要對(duì)bug零容忍,也就是從正面保證正確性,而不是靠經(jīng)驗(yàn)的測(cè)試和編碼,從數(shù)學(xué)上就是形式化,但是證明工作量巨大,不過也是趨勢(shì)。

現(xiàn)在你再去看這段新聞,你會(huì)發(fā)現(xiàn)不得了,大家想干的事情,谷歌先干了,而且不自己從無(wú)到有的造一個(gè),用了已有的sel4(微內(nèi)核+形式化驗(yàn)證)和Rust(新語(yǔ)言)結(jié)合。美中不足的是現(xiàn)在還在開發(fā)中,只是公布了第一版,但是就像之前谷歌的Fuchsia、安卓等一樣,代碼開放程度還是挺好的,基本不保留。這樣我們就可以上我們的慣例了: 代碼下載+編譯+運(yùn)行。

1.KataOS簡(jiǎn)介

4004e334-4f3d-11ed-a3b6-dac502259ad0.png ????

目前我們使用的很多智能設(shè)備收集的個(gè)人身份數(shù)據(jù)——例如人的圖像和他們的聲音錄音等,如果其被惡意軟件訪問就會(huì)有安全問題。所以必須從數(shù)學(xué)上證明能夠保證數(shù)據(jù)的安全,也就是我們經(jīng)常說(shuō)的形式化驗(yàn)證的方法。KataOS就是這么一個(gè)簡(jiǎn)單的解決方案來(lái)為嵌入式硬件構(gòu)建可驗(yàn)證的安全系統(tǒng)。

GoogleResearch 團(tuán)隊(duì)已著手通過構(gòu)建一個(gè)可證明的安全平臺(tái)來(lái)解決這個(gè)問題,就是上面說(shuō)的KataOS。這是一個(gè)正在進(jìn)行的項(xiàng)目,還有很多事情要做,但我們很高興能分享一些早期的細(xì)節(jié)并邀請(qǐng)其他人在平臺(tái)上進(jìn)行協(xié)作,這樣我們就可以構(gòu)建默認(rèn)內(nèi)置安全性的智能環(huán)境系統(tǒng)。

sudo apt-get install repo
mkdir sparrow
cd sparrow
repo init -u https://github.com/AmbiML/sparrow-manifest -m camkes-manifest.xml
repo sync -j4

2. 代碼介紹

401e63ae-4f3d-11ed-a3b6-dac502259ad0.png ????

從整體上看,KataOS完全借用了開源軟件的力量,可以說(shuō)是攢出來(lái)的系統(tǒng),微內(nèi)核用現(xiàn)成的SeL4,為了在其上面運(yùn)行Rust程序使用了一個(gè)開源軟件sel4-syscrate,然后跟Antmicro公司合作優(yōu)化了sel4-syscrate,形成了框架,加上了調(diào)試模擬和基于硬件的Sparrow安全驗(yàn)證運(yùn)行環(huán)境(初始版本未公開)。

下面看官網(wǎng)論壇介紹:

KataOS 開源了幾個(gè)組件,并與 Antmicro合作開發(fā)了他們的Renode 模擬器和相關(guān)框架。作為這個(gè)新操作系統(tǒng)的基礎(chǔ),我們選擇seL4作為微內(nèi)核,因?yàn)樗寻踩旁谑孜?;它在?shù)學(xué)上被證明是安全的,具有保證的機(jī)密性、完整性和可用性。通過 seL4CAmkES 框架,我們還能夠提供靜態(tài)定義和可分析的系統(tǒng)組件。

KataOS提供了一個(gè)可驗(yàn)證安全的平臺(tái)來(lái)保護(hù)用戶的隱私,因?yàn)閼?yīng)用程序在邏輯上不可能違反內(nèi)核的硬件安全保護(hù),并且系統(tǒng)組件是可驗(yàn)證安全的。KataOS也幾乎完全用Rust實(shí)現(xiàn),它為軟件安全性提供了一個(gè)強(qiáng)有力的起點(diǎn),因?yàn)樗苏麄€(gè)類別的錯(cuò)誤,例如一個(gè)錯(cuò)誤和緩沖區(qū)溢出。

當(dāng)前的 GitHub 版本包含了大部分 KataOS 核心部分,包括我們用于 Rust 的框架(例如 sel4-sys crate,它提供了 seL4 系統(tǒng)調(diào)用 API),一個(gè)用 Rust 編寫的備用根服務(wù)器(用于動(dòng)態(tài)系統(tǒng)范圍的內(nèi)存管理) ),以及對(duì) seL4 的內(nèi)核修改,可以回收根服務(wù)器使用的內(nèi)存。我們與 Antmicro合作,使用Renode為我們的目標(biāo)硬件啟用 GDB 調(diào)試和模擬。

在內(nèi)部,KataOS還能夠動(dòng)態(tài)加載和運(yùn)行在CAmkES 框架之外構(gòu)建的第三方應(yīng)用程序。目前,Github上的代碼不包含運(yùn)行這些應(yīng)用程序所需的組件,但我們希望在不久的將來(lái)發(fā)布這些功能。

為了完整地證明一個(gè)安全的環(huán)境系統(tǒng),我們還為KataOS 構(gòu)建了一個(gè)名為Sparrow 的參考實(shí)現(xiàn),它將KataOS 與一個(gè)安全的硬件平臺(tái)相結(jié)合。因此,除了邏輯安全的操作系統(tǒng)內(nèi)核之外,Sparrow還包括一個(gè)邏輯安全的信任根,該信任根是使用OpenTitan在 RISC-V 架構(gòu)上構(gòu)建的。但是,對(duì)于我們的初始版本,我們的目標(biāo)是使用QEMU 在模擬中運(yùn)行更標(biāo)準(zhǔn)的64 位ARM 平臺(tái)。

我們的目標(biāo)是開源所有Sparrow,包括所有硬件和軟件設(shè)計(jì)。目前,我們剛剛開始在 GitHub 上發(fā)布 KataOS的早期版本。所以這只是一個(gè)開始,我們希望您能與我們一起建立一個(gè)智能環(huán)境ML 系統(tǒng)始終值得信賴的未來(lái)。

camkes-tool : seL4 的 camkes-tool 存儲(chǔ)庫(kù),增加了支持 KataOS 服務(wù)的功能
capdl : seL4 的 capdl 存儲(chǔ)庫(kù),添加了 KataOS 服務(wù)和 KataOS 根服務(wù)器(替代 capdl-loader-app,用 Rust 編寫并支持將系統(tǒng)資源移交給 KataOS MemoryManager 服務(wù))
kernel:seL4的內(nèi)核,帶有用于Sparrow的RISC-V平臺(tái)的驅(qū)動(dòng)程序,并支持回收KataOS根服務(wù)器使用的內(nèi)存用于在Rust中開發(fā)的kata框架,以及(最終)KataOS系統(tǒng)服務(wù)
腳本:支持腳本,包括 build-sparrow.sh
大多數(shù) KataOS Rust crates 位于kata/apps/system/components目錄中。通用/共享代碼在kata-os-common中:
allocator : 建立在鏈表分配器箱上的堆分配器
camkes:支持在 Rust 中編寫 CAmkES 組件
capdl : 支持讀取 capDL-tool 生成的 capDL 規(guī)范
copyregion : 臨時(shí)將物理頁(yè)面映射到線程的 VSpace 的助手
cspace-slot :插槽分配器的 RAII 助手
logger : seL4 與 Rust logger crate 的集成
model : 支持處理 capDL;由 kata-os-rootserver 使用
panic:一個(gè)特定于 seL4 的恐慌處理程序
sel4-config : 為 seL4 內(nèi)核配置構(gòu)建膠水
sel4-sys : seL4 系統(tǒng)接口和膠水
slot-allocator:頂級(jí) CNode 中插槽的分配器

3.搭建編譯環(huán)境

3.1 sel4環(huán)境安裝

由于其使用的sel4微內(nèi)核,可以先搭建下sel4的,參考 https://docs.sel4.systems/projects/buildsystem/host-dependencies.html seL4微內(nèi)核入門-代碼下載運(yùn)行及資料

3.2 rust環(huán)境安裝

然后是Rust安裝,執(zhí)行命令:

curl --proto '=https'--tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo --version
rustup toolchain add nightly-2021-11-05
rustup target add --toolchain
nightly-2021-11-05-x86_64-unknown-linux-gnu aarch64-unknown-none

3.3 gcc編譯器安裝


執(zhí)行:sh scripts/build-sparrow.sh aarch64 會(huì)提示編譯工具找不到,如下:

405544be-4f3d-11ed-a3b6-dac502259ad0.png

打開: https://developer.arm.com/downloads/-/gnu-a

406d4e38-4f3d-11ed-a3b6-dac502259ad0.png

下載后解壓到文件夾,然后把路徑添加到環(huán)境變量PATH: 例如:在~/.bashrc中加入:
export PATH=$PATH: /home/XXX/tools/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin

3.4 tempita安裝

pip install tempita
多次執(zhí)行sh scripts/build-sparrow.sh aarch64,修正后會(huì)出現(xiàn)如下:

40908290-4f3d-11ed-a3b6-dac502259ad0.png

表示編譯成功,下面就是運(yùn)行了。

4.運(yùn)行



cd build-aarch64
./simulate -M raspi3b

 40b09530-4f3d-11ed-a3b6-dac502259ad0.png

修改代碼:

40c6a424-4f3d-11ed-a3b6-dac502259ad0.png

重新編譯運(yùn)行,會(huì)看到打印出來(lái)。

這里的adder項(xiàng)目是camkes的,不是Sparrow框架的,上面說(shuō)過Sparrow還沒開源,可能是其基于RISC-V硬件實(shí)現(xiàn)的,還沒有用qemu搞。

后記:

本文算是對(duì)最新的OS技術(shù)進(jìn)行一些探究,這個(gè)KataOS跟SeL4很有淵源,后續(xù)會(huì)繼續(xù)研究下。






審核編輯:劉清

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

    關(guān)注

    5087

    文章

    19150

    瀏覽量

    306374
  • LINUX內(nèi)核
    +關(guān)注

    關(guān)注

    1

    文章

    316

    瀏覽量

    21686
  • rust語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    3016

原文標(biāo)題:KataOS入門-簡(jiǎn)介和代碼編譯

文章出處:【微信號(hào):OS與AUTOSAR研究,微信公眾號(hào):OS與AUTOSAR研究】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    labview基礎(chǔ)知識(shí)

    labview基礎(chǔ)知識(shí)labview基礎(chǔ)知識(shí)labview基礎(chǔ)知識(shí)labview基礎(chǔ)知識(shí)
    發(fā)表于 03-08 17:56

    WiFi基礎(chǔ)知識(shí)解析

    、wifi基礎(chǔ)1、詳細(xì)見如下鏈接(1)WiFi基礎(chǔ)知識(shí)解析(2)WiFi基本知識(shí)(3)11種物聯(lián)網(wǎng)協(xié)議簡(jiǎn)介,如WiFi、藍(lán)牙、ZigBee、蜂窩等 二、wifi模塊淺析1、WiFi模
    發(fā)表于 08-05 08:10

    詳解arduino基礎(chǔ)知識(shí)

    基礎(chǔ)知識(shí)引腳相關(guān)pinMode(pin, mode)引腳定義,例如pinMode(7, INPUT) 將引腳7定義為輸入模式digitalWrite(pin, value)數(shù)字IO口輸出電平定義函數(shù)
    發(fā)表于 01-19 08:14

    了解透?jìng)髟?b class='flag-5'>基礎(chǔ)知識(shí)

    了解透?jìng)髟?b class='flag-5'>基礎(chǔ)知識(shí)講透?jìng)髟?,我們先了解它的定義,首先了解下****透?jìng)魍競(jìng)鳎?透明傳輸。即在傳輸過程中,不管所傳輸?shù)膬?nèi)容、數(shù)據(jù)協(xié)議形式,不對(duì)數(shù)據(jù)做任何處理,只是把需要傳輸?shù)膬?nèi)容數(shù)據(jù)傳輸?shù)侥康?。?/div>
    發(fā)表于 02-25 10:32

    通信基礎(chǔ)知識(shí)教程

    通信基礎(chǔ)知識(shí) 1、電信基礎(chǔ)知識(shí)2、通信電源技術(shù)3、配線設(shè)備結(jié)構(gòu)、原理與防護(hù)4、防雷基礎(chǔ)知識(shí)5、EMC基礎(chǔ)知識(shí)6、防腐蝕原理與技術(shù)7、產(chǎn)品安
    發(fā)表于 03-04 16:48 ?33次下載

    電子電路基礎(chǔ)知識(shí)

    電子電路基礎(chǔ)知識(shí) 電路基礎(chǔ)知識(shí)()電路基礎(chǔ)知識(shí)(1
    發(fā)表于 01-15 09:47 ?23.2w次閱讀

    電池基礎(chǔ)知識(shí)(集全版)

    電池基礎(chǔ)知識(shí)(集全版)  電池基礎(chǔ)知識(shí)
    發(fā)表于 11-10 14:19 ?2521次閱讀

    使用Eclipse基礎(chǔ)知識(shí)

    使用Eclipse 基礎(chǔ)知識(shí) 使用Eclipse 基礎(chǔ)知識(shí) 適合初學(xué)者學(xué)習(xí)使用
    發(fā)表于 02-26 10:30 ?0次下載

    電源管理基礎(chǔ)知識(shí)電源管理基礎(chǔ)知識(shí)電源管理基礎(chǔ)知識(shí)

    電源管理基礎(chǔ)知識(shí)電源管理基礎(chǔ)知識(shí)電源管理基礎(chǔ)知識(shí)
    發(fā)表于 09-15 14:36 ?76次下載
    電源管理<b class='flag-5'>基礎(chǔ)知識(shí)</b>電源管理<b class='flag-5'>基礎(chǔ)知識(shí)</b>電源管理<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    解讀大機(jī)組繼電保護(hù)基礎(chǔ)知識(shí)

    本文主要介紹了大機(jī)組繼電保護(hù)基礎(chǔ)知識(shí)。
    發(fā)表于 06-21 08:00 ?4次下載
    <b class='flag-5'>一</b><b class='flag-5'>文</b>解讀大機(jī)組繼電保護(hù)<b class='flag-5'>基礎(chǔ)知識(shí)</b>

    了解IGBT基礎(chǔ)知識(shí)資料下載

    電子發(fā)燒友網(wǎng)為你提供了解IGBT基礎(chǔ)知識(shí)資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-22 08:52 ?31次下載
    <b class='flag-5'>一</b><b class='flag-5'>文</b>了解IGBT<b class='flag-5'>基礎(chǔ)知識(shí)</b>資料下載

    FAT32件系統(tǒng)基礎(chǔ)知識(shí)

    FAT32件系統(tǒng)基礎(chǔ)知識(shí)免費(fèi)下載。
    發(fā)表于 06-11 09:16 ?31次下載

    關(guān)于LFP材料的基礎(chǔ)知識(shí)介紹

    讀懂LFP材料基礎(chǔ)知識(shí)。
    的頭像 發(fā)表于 06-11 12:22 ?4523次閱讀
    關(guān)于LFP材料的<b class='flag-5'>基礎(chǔ)知識(shí)</b>介紹

    詳解差分線的基礎(chǔ)知識(shí)

    整個(gè)基礎(chǔ)知識(shí)體系中,差分線(對(duì))是很難搞的部分,卻是最常用的部分。說(shuō)到差分線基礎(chǔ)知識(shí),里面的概念很多,記得剛接觸的時(shí)候,奇模&共模有時(shí)候會(huì)搞不清楚。
    的頭像 發(fā)表于 03-22 09:17 ?5815次閱讀

    優(yōu)質(zhì)LDO基礎(chǔ)知識(shí)分享

    本節(jié)分享下LDO的基礎(chǔ)知識(shí),主要來(lái)源于Ti的文檔《LDO基礎(chǔ)知識(shí)》。
    的頭像 發(fā)表于 03-26 11:03 ?1389次閱讀