精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

TWINE支持編譯為wasm應(yīng)用運(yùn)行設(shè)計(jì)

Linux閱碼場(chǎng) ? 來(lái)源:Linux閱碼場(chǎng) ? 作者:Linux閱碼場(chǎng) ? 2022-07-07 10:06 ? 次閱讀

提要

本期推送是對(duì)ICDE 2021 中發(fā)表的論文《TWINE:An Embedded Trusted Runtime for WebAssembly》的解讀。WebAssembly是一種越來(lái)越流行的輕量級(jí)二進(jìn)制指令格式。這篇論文描述了TWINE,這是一個(gè)WebAssembly trusted runtime,它能夠支持編譯為wasm的應(yīng)用運(yùn)行。TWINE提供了一個(gè)安全的軟件runtime(沙箱),它嵌入在TEE中;并且提供WASI interface,通過(guò)WASI來(lái)抽象底層環(huán)境。TWINE會(huì)動(dòng)態(tài)地將WASI操作翻譯為等價(jià)的OS calls和SGX中的安全的庫(kù)。特別地,作者使用TWINE實(shí)現(xiàn)了一個(gè)安全、可信的SQLite版本,這是一個(gè)眾所周知的成熟的可嵌入數(shù)據(jù)庫(kù)。作者認(rèn)為這樣一個(gè)受信任的數(shù)據(jù)庫(kù)將是構(gòu)建許多大型應(yīng)用程序服務(wù)的合理組件。評(píng)估表明,SQLite可以通過(guò)WebAssembly和現(xiàn)有的系統(tǒng)接口在SGX enclave內(nèi)完全執(zhí)行,平均性能開銷類似。額外的安全保證及其與標(biāo)準(zhǔn)WebAssembly的完全兼容性在很大程度上彌補(bǔ)了性能上的損失。

研究背景

可信代碼執(zhí)行目前是分布式系統(tǒng)的主要挑戰(zhàn)之一。無(wú)論是云中的大型數(shù)據(jù)中心,還是瘦客戶機(jī)和物聯(lián)網(wǎng)設(shè)備上的網(wǎng)絡(luò)邊緣,其中存儲(chǔ)了許多的數(shù)據(jù)資產(chǎn)。這些數(shù)據(jù)是許多公司的關(guān)鍵資產(chǎn)。例如像Intel SGX、ARM TrustZone等等這些TEE環(huán)境(Trusted execution environment,可信執(zhí)行環(huán)境)就可以通過(guò)特殊的硬件結(jié)構(gòu)為代碼安全執(zhí)行提供硬件支持,從而可以從外界環(huán)境中被保護(hù)出來(lái),或者說(shuō)隔離出來(lái),這些外界環(huán)境包括操作系統(tǒng)和特權(quán)用戶。

然而,盡管涌現(xiàn)出了許多framework和runtime environment,為TEE編寫應(yīng)用程序仍然是一項(xiàng)復(fù)雜的任務(wù)。開發(fā)人員通常必須使用定制的工具和api,而且僅支持少數(shù)的編程語(yǔ)言。所以,作者提出了支持對(duì)unmodified applications執(zhí)行的trusted runtime,這個(gè)runtime作為一個(gè)virtual machine運(yùn)行在TEE中,只需將application編譯為WebAssembly,因?yàn)閃asm是不限制語(yǔ)言的。因?yàn)閃asm自身的一些優(yōu)點(diǎn),這個(gè)trusted runtime具有執(zhí)行速度快、通用性好(支持多種語(yǔ)言開發(fā)的application)、安全(沙箱環(huán)境)等優(yōu)勢(shì)。

e6416576-fd88-11ec-ba43-dac502259ad0.png

圖1:研究背景示意圖

系統(tǒng)設(shè)計(jì)

作者設(shè)計(jì)的Trusted runtime是運(yùn)行在TEE中的。Intel SGX 是在現(xiàn)代英特爾處理器中的一組處理器指令,程序員可以通過(guò)使用 SGX 創(chuàng)建內(nèi)存的加密區(qū)域,稱為enclaves。通過(guò)enclave內(nèi)部的指令對(duì)其中內(nèi)存內(nèi)容進(jìn)行讀寫操作時(shí)會(huì)自動(dòng)加密和解密。Enclave加密密鑰保存在處理器內(nèi)部,沒(méi)有任何指令可以訪問(wèn)這些密鑰,即使當(dāng)運(yùn)行高級(jí)硬件特權(quán)級(jí)別時(shí),操作系統(tǒng)、虛擬機(jī)管理員也無(wú)法獲取。Enclave內(nèi)的內(nèi)存受到保護(hù),不接受任何未經(jīng)授權(quán)的訪問(wèn),甚至不接受具有物理訪問(wèn)權(quán)限的機(jī)器管理員的訪問(wèn)。

e65d1dac-fd88-11ec-ba43-dac502259ad0.png

圖2:SGX工作示意圖

對(duì)enclave中的內(nèi)存訪問(wèn)通過(guò)一個(gè)大塊的緩存來(lái)加速,這個(gè)cache memory被稱為enclave page cache(EPC)。EPC的大小是受限的,在最新CPU中支持最大為256MB的EPC。處理器在 EPC 中保存所有 enclave page 的未加密副本,并且當(dāng) EPC 滿的時(shí)候采用分頁(yè)。并且硬件還為EPC中的所有enclave page維護(hù)加密hash表。enclave內(nèi)部的指令可以訪問(wèn)enclave外部的數(shù)據(jù),但是調(diào)用enclave外部的指令需要一個(gè)特殊的out call指令(OCALL)。當(dāng)調(diào)用OCALL時(shí),CPU退出受保護(hù)的enclave,在外部執(zhí)行代碼。相反,有一個(gè)enclave call(ECALL)指令來(lái)調(diào)用enclave內(nèi)的代碼。OCALL和ECALL指令會(huì)比較慢,因?yàn)樵趀nclave內(nèi)部和外部之間切換上下文的代價(jià)很高(在最新的服務(wù)器級(jí)處理器中,高達(dá)13’100個(gè)CPU周期)。已有的工作已經(jīng)證明,在enclave中的應(yīng)用程序應(yīng)該盡量避免這樣的調(diào)用,以減少性能損失。

作者提出了TWINE (Trusted Wasm in enclave),這是一個(gè)運(yùn)行在TEE中的輕量級(jí)可嵌入Wasm虛擬機(jī)。圖3中描述了TWINE的workflow。它充當(dāng)應(yīng)用程序與底層TEE、OS和硬件之間的適配層。TWINE提供了嵌套在TEE中的安全軟件運(yùn)行時(shí)(沙箱),支持WASI接口,并從應(yīng)用程序中抽象出底層環(huán)境。

e66bf1c4-fd88-11ec-ba43-dac502259ad0.png

圖3:TWINE workflow

TWINE是一個(gè)適用于在TEE中運(yùn)行Wasm應(yīng)用程序的執(zhí)行環(huán)境。它主要由兩個(gè)主要模塊構(gòu)成: Wasm runtime 和 WASI接口。Wasm runtime 完全運(yùn)行在TEE內(nèi)部,作者使用的TEE是Intel SGX。作者通過(guò)利用TEE的保護(hù)來(lái)為運(yùn)行Wasm application提供一個(gè)可信環(huán)境。WASI充當(dāng)受信任和不受信任環(huán)境之間的橋梁,抽象出專用于與底層操作系統(tǒng)通信的機(jī)制。因此,WASI相當(dāng)于由OCALLs組成的傳統(tǒng)SGX適配層。WASI能夠通過(guò)沙箱實(shí)現(xiàn)安全性。常規(guī)應(yīng)用程序通常通過(guò)標(biāo)準(zhǔn)接口(例如POSIX)調(diào)用操作系統(tǒng)。WASI在Wasm操作系統(tǒng)調(diào)用和實(shí)際的操作系統(tǒng)接口之間增加了一層(薄薄的)控制層。因此,runtime環(huán)境可以自己限制各個(gè)Wasm程序所能做的事情,從而阻止Wasm代碼使用運(yùn)行進(jìn)程的用戶的全部權(quán)限。(例如,WASI實(shí)現(xiàn)可以將應(yīng)用程序限制在文件系統(tǒng)的子樹中,這與chroot提供的功能類似。)在enclave中的代碼和數(shù)據(jù)被認(rèn)為是可信的,在此之外的進(jìn)程部分、操作系統(tǒng)和(任何hypervisor)都可能是敵對(duì)的、惡意的。enclave內(nèi)部的內(nèi)存只能從外部以加密的形式讀取。從外部寫入enclave會(huì)導(dǎo)致enclave終止。

e6887f56-fd88-11ec-ba43-dac502259ad0.png

圖4:TWINE 架構(gòu)

通過(guò)WASI,能夠?qū)崿F(xiàn)三重抽象:

(1)開發(fā)人員可以自由選擇編程語(yǔ)言,并通過(guò)compiler將它編譯為Wasm binaries。

這解除了SGX強(qiáng)加的限制,之前通常因?yàn)檫@個(gè)限制強(qiáng)制應(yīng)用程序必須用C/C++編寫。

(2)將TEE從應(yīng)用程序中抽象出來(lái),只要TEE能夠解釋或執(zhí)行Wasm (帶有WASI支持),應(yīng)用程序就可以安全執(zhí)行。

這為其他TEE技術(shù)打開了大門。

(3)WASI是與系統(tǒng)無(wú)關(guān)的,只要操作系統(tǒng)能夠提供WASI所需的等效API。

由于WASI模擬POSIX系統(tǒng)的系統(tǒng)調(diào)用,許多Unix變體都可以實(shí)現(xiàn)它。

e69b041e-fd88-11ec-ba43-dac502259ad0.png

圖5:WASI的三層抽象

作者選擇了一個(gè)已有的Wasm runtime project-WAMR來(lái)作為runtime,并修改了它的WASI接口。WAMR支持解釋器、JIT、AoT三種方式的Wasm binaries執(zhí)行。但是考慮到速度的問(wèn)題,native code執(zhí)行起來(lái)比解釋器快。并且,解釋器環(huán)境相對(duì)runtime而言,占用內(nèi)存更大,這對(duì)于邊緣計(jì)算又是很重要的。因此,作者放棄了WAMR中interpreter的方式。又因?yàn)镴IT方式是運(yùn)行時(shí)即時(shí)編譯,需要在一個(gè)enclave中嵌進(jìn)來(lái)一個(gè)JIT compiler。所以就要在enclave中引入LLVM machinery,這需要移植代碼庫(kù)來(lái)編譯SGX的限制。所以最終作者采用了AOT的方式。

WAMR中原生的對(duì)WASI的實(shí)現(xiàn),嚴(yán)重依賴于POSIX調(diào)用。POSIX在SGX enclave中不可用,因此WAMR作者編寫的WASI實(shí)現(xiàn)需要頻繁地跨越enclave的可信邊界,并使用OCALLs直接將大多數(shù)WASI函數(shù)路由到它們的POSIX等效函數(shù)。出于性能原因:大多數(shù)WASI調(diào)用將被簡(jiǎn)單地轉(zhuǎn)換為OCALLs。其次,作者希望能夠利用其可信實(shí)現(xiàn),例如英特爾保護(hù)的文件系統(tǒng)(IPFS)。因此,作者重構(gòu)了WAMR的WASI實(shí)現(xiàn),以保持其沙箱實(shí)施。

實(shí)驗(yàn)評(píng)估

如圖6所示,作者使用 PolyBench/C benchmarks 來(lái)作為實(shí)驗(yàn)的benchmark,展示了30個(gè)PolyBench/C (v4.2.1-beta)測(cè)試的結(jié)果。通過(guò)native執(zhí)行時(shí)間來(lái)進(jìn)行標(biāo)準(zhǔn)化,比較了WAMR for wasm和TWINE for wasm in TEE的執(zhí)行時(shí)間,結(jié)果如圖所示。Wasm應(yīng)用程序通常比本機(jī)應(yīng)用程序慢,由于

(1)寄存器壓力增加

(2)更多的分支語(yǔ)句

(3)代碼大小增加等等

但是WAMR和TWINE之間的差距較小。

e6bcaac4-fd88-11ec-ba43-dac502259ad0.png

圖6:PolyBench/C benchmark的性能測(cè)試,標(biāo)準(zhǔn)化到native speed

SQLite是一個(gè)被廣泛使用的成熟的嵌入式數(shù)據(jù)庫(kù)。由于其便攜性(portability)和緊湊的尺寸(compact size),它非常適合SGX。并且SQLite能夠體現(xiàn)出性能密集型的操作和文件系統(tǒng)交互,所以作者也對(duì)它進(jìn)行了評(píng)估。作者使用了SQLite自己的性能測(cè)試程序Speedtest1,運(yùn)行了32個(gè)可用測(cè)試中的29個(gè),覆蓋了大量場(chǎng)景。每個(gè)Speedtest1實(shí)驗(yàn)都針對(duì)于數(shù)據(jù)庫(kù)的一個(gè)方面,(例如,使用多個(gè)關(guān)節(jié)進(jìn)行選擇,更新索引記錄,等等)。測(cè)試由任意數(shù)量的SQL查詢組成,根據(jù)生成的負(fù)載可能會(huì)執(zhí)行多次。圖7中顯示了測(cè)試的結(jié)果,以native execution為標(biāo)準(zhǔn)進(jìn)行了標(biāo)準(zhǔn)化。(其中包括內(nèi)存中配置的結(jié)果,以及使用WASI的持久化數(shù)據(jù)庫(kù)的結(jié)果。)作者在所有測(cè)試中觀察到,對(duì)于in-memory數(shù)據(jù)庫(kù)和in-file數(shù)據(jù)庫(kù),WAMR相對(duì)于本地?cái)?shù)據(jù)庫(kù)平均慢4.1x和3.7×。

在in-memory和in-file數(shù)據(jù)庫(kù)中,TWINE相對(duì)于WAMR的速度慢了1.7x和1.9x。

e6e97a2c-fd88-11ec-ba43-dac502259ad0.png

圖7:在SQLite Speedtest1 benchmark上的相對(duì)性能

為了更好地理解所觀察到的性能損失的來(lái)源,作者為常見(jiàn)的數(shù)據(jù)庫(kù)查詢?cè)O(shè)計(jì)了一套測(cè)試,包括插入、順序讀取和隨機(jī)讀取。根據(jù)對(duì)這三類操作的執(zhí)行時(shí)間分析,得出以下結(jié)果:

(1)圖8a顯示了關(guān)于插入記錄的結(jié)果。

由于額外的文件加密,使用TWINE的持久數(shù)據(jù)庫(kù)的操作成本線性增加。

(SGX-LKL在插入順序元素方面有更優(yōu)的方法,并遵循了TWINE的內(nèi)存性能趨勢(shì)。)

(2)圖8b顯示了順序讀取所有記錄的執(zhí)行時(shí)間。

作者在SGX內(nèi)存訪問(wèn)中發(fā)現(xiàn)了造成這種性能損失的根本原因。

(3)圖8c描述了隨機(jī)讀取的執(zhí)行時(shí)間。

隨機(jī)讀取更加經(jīng)常地觸發(fā)enclave分頁(yè)機(jī)制,文件內(nèi)隨機(jī)讀取的例子突出了TWINE的優(yōu)點(diǎn),它提供了比SGX-LKL更快的性能,EPC(enclave page cache)限制之前為1.031×,之后為1.074×。在EPC限制以上的內(nèi)存內(nèi)插入也會(huì)有類似的性能提升,增益為1.035×。

e6ff4924-fd88-11ec-ba43-dac502259ad0.png

圖8:對(duì)SQLite的插入和讀取進(jìn)行性能評(píng)估

結(jié)論

這篇論文設(shè)計(jì)并實(shí)現(xiàn)了TWINE以支持編譯為wasm的應(yīng)用運(yùn)行。TWINE提供了一個(gè)安全的軟件runtime(沙箱),它嵌入在TEE中;并且提供WASI interface,通過(guò)WASI來(lái)抽象底層環(huán)境。評(píng)估表明,SQLite可以通過(guò)WebAssembly和現(xiàn)有的系統(tǒng)接口在SGX enclave內(nèi)完全執(zhí)行,并且平均性能開銷類似。

原文標(biāo)題:思辨|WebAssembly的嵌入式可信運(yùn)行時(shí)

文章出處:【微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8516

    瀏覽量

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

    關(guān)注

    37

    文章

    6743

    瀏覽量

    123196
  • 數(shù)據(jù)中心
    +關(guān)注

    關(guān)注

    16

    文章

    4696

    瀏覽量

    71965
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    37

    文章

    3244

    瀏覽量

    57610

原文標(biāo)題:思辨|WebAssembly的嵌入式可信運(yùn)行時(shí)

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    java反編譯能拿到源碼嗎

    在語(yǔ)法和風(fēng)格上有所不同的代碼,因?yàn)樗鼈冎饕P(guān)注于恢復(fù)代碼的邏輯結(jié)構(gòu),而不是精確復(fù)制原始代碼的每個(gè)細(xì)節(jié)。 1. 反編譯的基本原理 Java程序在編譯時(shí),源代碼(.java文件)會(huì)被編譯成字節(jié)碼(.class文件),這些字節(jié)碼可以在
    的頭像 發(fā)表于 09-02 11:03 ?747次閱讀

    RISC-V編譯環(huán)境搭建

    以上按位數(shù)分可以編譯為32位和64位兩種,另外就是都可以編譯為elf版本和linux版本。
    的頭像 發(fā)表于 07-17 11:31 ?1270次閱讀
    RISC-V<b class='flag-5'>編譯</b>環(huán)境搭建

    SDK 0.95 IOT demo無(wú)法運(yùn)行的原因?

    IOT example可以正常編譯,但是下載后打印出MEM CHECK FAIL!!!之后沒(méi)有任何信息,AP實(shí)際上已經(jīng)運(yùn)行,能夠掃描出來(lái)。 但是 user_init 函數(shù)的打印信息沒(méi)有。 編譯環(huán)境
    發(fā)表于 07-12 15:05

    ElfBoard技術(shù)貼|如何將libwebsockets庫(kù)編譯為x86架構(gòu)

    在之前的文章中,我們已經(jīng)詳細(xì)介紹了如何交叉編譯libwebsockets并將其部署到ELF1開發(fā)板上。然而在調(diào)試階段,發(fā)現(xiàn)將libwebsockets在Ubuntu環(huán)境下編譯為x86架構(gòu)可能更為方便
    的頭像 發(fā)表于 07-10 09:38 ?1176次閱讀
    ElfBoard技術(shù)貼|如何將libwebsockets庫(kù)<b class='flag-5'>編譯為</b>x86架構(gòu)

    為什么我的項(xiàng)目Debug運(yùn)行沒(méi)問(wèn)題,編譯成Release包就報(bào)錯(cuò)?

    引言 在Android開發(fā)中,debug包和release包的行為差異可能導(dǎo)致release包在運(yùn)行時(shí)出現(xiàn)問(wèn)題,而這些問(wèn)題在debug包中不會(huì)出現(xiàn)。 本文主要介紹debug包和release包的差異
    的頭像 發(fā)表于 06-12 11:18 ?818次閱讀
    為什么我的項(xiàng)目Debug<b class='flag-5'>運(yùn)行</b>沒(méi)問(wèn)題,<b class='flag-5'>編譯</b>成Release包就報(bào)錯(cuò)?

    SEGGER編譯器優(yōu)化和安全技術(shù)介紹 支持最新C和C++語(yǔ)言

    SEGGER編譯器是專門為ARM和RISC-V微控制器設(shè)計(jì)的優(yōu)化C/C++編譯器。它建立在強(qiáng)大的Clang前端上,支持最新的C和C++語(yǔ)言功能。 除其他外,其主要功能包括: 1)?尺寸優(yōu)化:通過(guò)調(diào)整
    的頭像 發(fā)表于 06-04 15:31 ?1408次閱讀
    SEGGER<b class='flag-5'>編譯</b>器優(yōu)化和安全技術(shù)介紹 <b class='flag-5'>支持</b>最新C和C++語(yǔ)言

    ELF 1技術(shù)貼|如何在Ubuntu中編譯OpenCV庫(kù)

    在之前發(fā)布的文章中探討了交叉編譯OpenCV并部署至嵌入式系統(tǒng)的方法。然而,在調(diào)試階段,我們發(fā)現(xiàn)在Ubuntu環(huán)境下將OpenCV編譯為X86架構(gòu)可能更加方便和高效。通過(guò)在主機(jī)上編譯并使用X86架構(gòu)
    的頭像 發(fā)表于 05-31 16:41 ?1137次閱讀
    ELF 1技術(shù)貼|如何在Ubuntu中<b class='flag-5'>編譯</b>OpenCV庫(kù)

    鴻蒙開發(fā)學(xué)習(xí):初探【ArkUI-X】

    **簡(jiǎn)單來(lái)說(shuō),ArkTS + ArkUI-X 對(duì)標(biāo)的框架為 flutter,一次代碼,編譯為 native 全平臺(tái)運(yùn)行**
    的頭像 發(fā)表于 05-13 15:58 ?990次閱讀
    鴻蒙開發(fā)學(xué)習(xí):初探【ArkUI-X】

    請(qǐng)問(wèn)IAR環(huán)境下條件編譯為什么沒(méi)有變灰?

    例程中,有如下條件編譯: #if (defined(FSL_FEATURE_IGPIO_HAS_DR_TOGGLE) (FSL_FEATURE_IGPIO_HAS_DR_TOGGLE == 1
    發(fā)表于 04-22 08:29

    OpenHarmony開發(fā)學(xué)習(xí):【源碼下載和編譯

    本文介紹了如何下載鴻蒙系統(tǒng)源碼,如何一次性配置可以編譯三個(gè)目標(biāo)平臺(tái)(`Hi3516`,`Hi3518`和`Hi3861`)的編譯環(huán)境,以及如何將源碼編譯為三個(gè)目標(biāo)平臺(tái)的二進(jìn)制文件。
    的頭像 發(fā)表于 04-14 09:36 ?876次閱讀
    OpenHarmony開發(fā)學(xué)習(xí):【源碼下載和<b class='flag-5'>編譯</b>】

    【AWTK開源智能串口屏方案】MCU SDK使用與編譯運(yùn)行

    本篇文章將介紹AWTK-HMI中的MCU端開發(fā)方法,包括MCUSDK常用API的說(shuō)明、使用流程及如何編譯到Linux和STM32平臺(tái)。引言:AWTK-HMI是基于AWTK與AWTK-MVVM開發(fā)的低
    的頭像 發(fā)表于 02-19 12:11 ?1143次閱讀
    【AWTK開源智能串口屏方案】MCU SDK使用與<b class='flag-5'>編譯</b><b class='flag-5'>運(yùn)行</b>

    【AWTK開源智能串口屏方案】HMI端程序移植編譯運(yùn)行

    本篇文章介紹一下AWTK開源智能串口屏方案的串口屏端(即HMI端)的編譯運(yùn)行步驟,并介紹如何將HMI端移植到Linux或STM32平臺(tái)或RTOS平臺(tái),以及如何配置資源文件。引言:AWTK-HMI
    的頭像 發(fā)表于 01-18 08:24 ?862次閱讀
    【AWTK開源智能串口屏方案】HMI端程序移植<b class='flag-5'>編譯</b>及<b class='flag-5'>運(yùn)行</b>

    Zephyr RTOS簡(jiǎn)介及代碼下載編譯運(yùn)行

    ,例如其有線程、中斷、內(nèi)存管理、IPC、驅(qū)動(dòng)、網(wǎng)絡(luò)協(xié)議棧、shell、提供POSIX接口等,可以說(shuō)其已經(jīng)是一個(gè)縮小版的OS了,甚至在A核也可以運(yùn)行,簡(jiǎn)單修改下添加一點(diǎn)用戶空間支持等特性就可以。
    的頭像 發(fā)表于 01-10 09:12 ?5734次閱讀
    Zephyr RTOS簡(jiǎn)介及代碼下載<b class='flag-5'>編譯</b><b class='flag-5'>運(yùn)行</b>

    從WasmEdge運(yùn)行環(huán)境讀寫Rust Wasm應(yīng)用的時(shí)序數(shù)據(jù)

    WebAssembly (Wasm) 正在成為一個(gè)廣受歡迎的編譯目標(biāo),幫助開發(fā)者構(gòu)建可遷移平臺(tái)的應(yīng)用。最近 Greptime 和 WasmEdge 協(xié)作,支持了在 WasmEdge 平臺(tái)上的
    的頭像 發(fā)表于 12-22 11:03 ?955次閱讀

    OpenCV4.8+CUDA+擴(kuò)展模塊支持編譯指南

    OpenCV4.8+CUDA+擴(kuò)展模塊支持編譯指南
    的頭像 發(fā)表于 11-30 16:45 ?922次閱讀
    OpenCV4.8+CUDA+擴(kuò)展模塊<b class='flag-5'>支持</b><b class='flag-5'>編譯</b>指南