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

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

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

RISC-V SIG 在歐拉嵌入式操作系統(tǒng)上成功實(shí)現(xiàn)musl libc 的適配

openEuler ? 來源:openEuler ? 2023-05-29 15:23 ? 次閱讀

近期,RISC-V SIG 在歐拉嵌入式操作系統(tǒng)上成功實(shí)現(xiàn)了 musl libc 的適配,完成了使用 musl libc 庫替換 glibc 庫構(gòu)建鏡像的工作。目前,以 musl libc 為基礎(chǔ)庫編譯的鏡像已在 Raspberry Pi4 開發(fā)板上可用,這一成果推動(dòng)了 openEuler Embedded 的多態(tài)發(fā)展。

編譯鏡像步驟說明:

https://openeuler.gitee.io/yocto-meta-openeuler/master/features/muslc.html

Musl libc 庫對(duì)比 glibc 庫的部分優(yōu)點(diǎn)

它是一個(gè)專門為嵌入式系統(tǒng)開發(fā)的輕量級(jí) libc 庫,以簡單、輕量和高效為特色;

musl libc 要小得多,因?yàn)?musl libc 專注于盡可能減少代碼大小和函數(shù)調(diào)用開銷,以提高性能;

musl libc 庫的源碼相對(duì)簡單,封裝性不強(qiáng),不像 glibc 的代碼一樣臃腫,復(fù)雜;

musl libc 是 C 語言的一種標(biāo)準(zhǔn)函數(shù)庫,代碼干凈且高效,針對(duì)靜態(tài)連接(static linking)設(shè)計(jì),適合被用來制作可攜的程序,且也很容易進(jìn)行交叉編譯(cross compile),編譯出運(yùn)行在不同系統(tǒng)環(huán)境的程序。

Musl libc 庫對(duì)比 glibc 庫的部分缺點(diǎn)

POSIX 標(biāo)準(zhǔn):musl libc 更加嚴(yán)格地遵循 POSIX 標(biāo)準(zhǔn),而 glibc 則添加了一些擴(kuò)展,以提供更多的功能和兼容性。

錯(cuò)誤處理:musl libc 實(shí)現(xiàn)的錯(cuò)誤處理更嚴(yán)格和更規(guī)范,而 glibc 則有更多的錯(cuò)誤處理選項(xiàng),并且支持不同的語言環(huán)境。

綜上所述,如果你需要一個(gè)小巧且速度較快的 C 標(biāo)準(zhǔn)庫在 Linux 系統(tǒng)上使用,則可以考慮使用 musl libc;如果你要開發(fā)的某個(gè)功能的可執(zhí)行程序需要在不同系統(tǒng)環(huán)境下運(yùn)行,則 musl libc 可滿足你的需求;如果你想一次編譯出可以在相同 CPU 架構(gòu)的 Linux 發(fā)行版上都運(yùn)行的程序,musl libc 庫將是最優(yōu)的選擇,因?yàn)榛?glibc 庫已編譯好的函數(shù)庫和運(yùn)行檔在不同的 Linux 上可能會(huì)出現(xiàn)無法共用的情況,。

Raspberry Pi 4:musl libc 與 glibc 性能等方面對(duì)比

Libc-bench 是 musl 官方提供的測試集,用于時(shí)間和內(nèi)存效率的測試,該測試集中比較了各種 C/POSIX 標(biāo)準(zhǔn)庫函數(shù)的實(shí)現(xiàn)。

UnixBench 是一款開源的測試 unix 系統(tǒng)基本性能的工具,測試系統(tǒng)各個(gè)方面的性能,然后將各測試結(jié)果和一個(gè)基準(zhǔn)值進(jìn)行比較,得到一個(gè)索引值,所有測試項(xiàng)目的索引值結(jié)合在一起形成一個(gè)測試分?jǐn)?shù)值。這個(gè)測試分?jǐn)?shù)越高代表此系統(tǒng)性能越好。

為了對(duì)比以 musl libc 與 glibc 為標(biāo)準(zhǔn)庫的鏡像在性能等方面差異,本次測試我們使用 libc-bench、Unixbench 工具對(duì)基于 musl libc 和 glibc 編譯的樹莓派鏡像進(jìn)行了測試,測試結(jié)果如下:

Libc-bench 進(jìn)行內(nèi)存占用率測試結(jié)果如下:

901f3ff4-fc80-11ed-90ce-dac502259ad0.png

從上述測試輸出結(jié)果可以得出以下結(jié)論:以 musl libc 為標(biāo)準(zhǔn)庫編譯的鏡像在虛擬內(nèi)存占用、物理內(nèi)存占用、系統(tǒng)可回收內(nèi)存方面都是遠(yuǎn)優(yōu)于 glibc;

基于 musl libc 庫的樹莓派系統(tǒng)性能測試數(shù)據(jù)如下:

9031104e-fc80-11ed-90ce-dac502259ad0.png

基 glibc 庫的樹莓派系統(tǒng)性能測試數(shù)據(jù)如下:

9049ef56-fc80-11ed-90ce-dac502259ad0.png

綜上,基于 glibc 的樹莓派系統(tǒng)跑分結(jié)果為 146.5 ,基于 musl libc 的樹莓派系統(tǒng)跑分結(jié)果為 161.6 ;所以基于 musl libc 編譯的樹莓派鏡像在性能上有大于 10%的提升;

進(jìn)一步挖掘 musl libc 與 openEler Embedded 系統(tǒng)結(jié)合在性能和功能方面的潛力

當(dāng)然,目前基于 musl libc 庫編譯的鏡像在性能和功能方面還是有很大的提升空間。在性能方面,musl 庫中 malloc 系列函數(shù)和 memcpy 系列函數(shù)實(shí)現(xiàn)較慢。尤其是 malloc 的性能,在多線程環(huán)境下會(huì)顯著造成瓶頸,原因在于 musl libc 的 malloc 實(shí)現(xiàn)在每次 malloc 時(shí)都需要對(duì)全局變量加鎖解鎖, 導(dǎo)致嚴(yán)重的競爭現(xiàn)象,后續(xù)也需要在類似這方面上進(jìn)行優(yōu)化以便提高性能等;

在功能方面,musl libc 在字符集/編碼方面的支持沒有 glibc 全面;在錯(cuò)誤處理方面,glibc 有更多的錯(cuò)誤處理選項(xiàng),并且支持不同的語言環(huán)境;POSIX 標(biāo)準(zhǔn)方面,glibc 添加了一些擴(kuò)展,以提供更多的功能和兼容性等等,musl libc 庫在不影響性能等前提下,在這上述能方面進(jìn)行功能上的填充還是有很大的發(fā)掘空間的。

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

    關(guān)注

    5046

    文章

    18837

    瀏覽量

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

    關(guān)注

    37

    文章

    6556

    瀏覽量

    122800
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    918

    瀏覽量

    54658
  • RISC-V
    +關(guān)注

    關(guān)注

    44

    文章

    2147

    瀏覽量

    45731

原文標(biāo)題:Musl libc 庫成功適配到 openEuler Embedded,推動(dòng)歐拉嵌入式生態(tài)發(fā)展

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    開啟全新AI時(shí)代 智能嵌入式系統(tǒng)快速發(fā)展——“第六屆國產(chǎn)嵌入式操作系統(tǒng)技術(shù)與產(chǎn)業(yè)發(fā)展論壇”圓滿結(jié)束

    的智能系統(tǒng)中正在發(fā)揮關(guān)鍵性的作用,嵌入式操作系統(tǒng)急需升級(jí)換代適配智能系統(tǒng)技術(shù)與應(yīng)用架構(gòu)的新發(fā)展。 第六屆國產(chǎn)
    發(fā)表于 08-30 17:24

    RT-Thread Safety AUTO成功適配芯來RISC-V車規(guī)內(nèi)核

    NEWSTODAY近日,睿賽德科技(RT-Thread)宣布其通過最高功能安全等級(jí)認(rèn)證的嵌入式實(shí)時(shí)操作系統(tǒng)RT-ThreadSafetyAUTO成功適配芯來科技的
    的頭像 發(fā)表于 08-30 13:12 ?246次閱讀
    RT-Thread Safety AUTO<b class='flag-5'>成功</b><b class='flag-5'>適配</b>芯來<b class='flag-5'>RISC-V</b>車規(guī)內(nèi)核

    RT-Thread出席第六屆中國嵌入式技術(shù)大會(huì),共話嵌入式操作系統(tǒng)與智能工業(yè)

    、RISC-V與AIoT、IoT與MCU生態(tài)建設(shè)四大板塊,30+技術(shù)專家8月齊聚,展開兩天有關(guān)嵌入式技術(shù)專業(yè)討論。RT-Thread作為全球生態(tài)最好的開源嵌入式操作系統(tǒng)之一,
    的頭像 發(fā)表于 08-03 08:35 ?256次閱讀
    RT-Thread出席第六屆中國<b class='flag-5'>嵌入式</b>技術(shù)大會(huì),共話<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>與智能工業(yè)

    RISC-V中國的發(fā)展機(jī)遇有哪些場景?

    RISC-V處理器性能和能效比方面表現(xiàn)出色,適用于數(shù)據(jù)中心和高性能計(jì)算領(lǐng)域的需求。 自主可控:RISC-V的開源特性使得中國可以在這一領(lǐng)域實(shí)現(xiàn)自主可控的技術(shù)發(fā)展,減少對(duì)外國技術(shù)的依
    發(fā)表于 07-29 17:14

    為什么要有RISC-V

    RISC-V(“RISC five”)的目標(biāo)是成為一個(gè)通用的指令集架構(gòu)(ISA):①、它要能適應(yīng)包括從最袖珍的嵌入式控制器,到最快的高性能計(jì)算機(jī)等各種規(guī)模的處理器。②、它應(yīng)該能兼容各種流行的軟件棧
    發(fā)表于 07-27 15:05

    第六屆國產(chǎn)嵌入式操作系統(tǒng)技術(shù)與產(chǎn)業(yè)發(fā)展論壇議程發(fā)布

    嵌入式系統(tǒng)快速發(fā)展,操作系統(tǒng)智能系統(tǒng)正在發(fā)揮越來越大的作用,嵌入式
    發(fā)表于 07-26 10:54

    【出版發(fā)行】嵌入式系統(tǒng)原理與開發(fā)——基于RISC-V和Linux系統(tǒng)

    【出版發(fā)行】嵌入式系統(tǒng)原理與開發(fā)——基于RISC-V和Linux系統(tǒng)
    的頭像 發(fā)表于 07-26 08:36 ?181次閱讀
    【出版發(fā)行】<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>原理與開發(fā)——基于<b class='flag-5'>RISC-V</b>和Linux<b class='flag-5'>系統(tǒng)</b>

    專家力薦|《嵌入式系統(tǒng)原理與開發(fā)——基于RISC-V和Linux系統(tǒng)》新書發(fā)售

    ——基于RISC-V和Linux系統(tǒng)》圖書,填補(bǔ)了高性能RISC-V應(yīng)用處理器嵌入式應(yīng)用方面相關(guān)書籍的空白?!?/div>
    的頭像 發(fā)表于 07-24 08:20 ?299次閱讀
    專家力薦|《<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>原理與開發(fā)——基于<b class='flag-5'>RISC-V</b>和Linux<b class='flag-5'>系統(tǒng)</b>》新書發(fā)售

    OERV-RTOS: UniProton 適配 Milk-V Duo,加速 RISC-V 生態(tài)

    OERV的實(shí)時(shí)操作系統(tǒng)小組(OERV-RTOS)完成了RISC-V開發(fā)板Milk-VDuo小核的初步支持并與大核Linux一起進(jìn)行部署通信驗(yàn)證。這是UniProton首次RISC-V
    的頭像 發(fā)表于 07-02 08:33 ?372次閱讀
    OERV-RTOS: UniProton <b class='flag-5'>適配</b> Milk-<b class='flag-5'>V</b> Duo,加速<b class='flag-5'>歐</b><b class='flag-5'>拉</b> <b class='flag-5'>RISC-V</b> 生態(tài)

    再談嵌入式實(shí)時(shí)操作系統(tǒng)

    由于嵌入式處理器早期功能單一且運(yùn)算能力不高,嵌入式應(yīng)用已不能滿足各個(gè)領(lǐng)域不斷增長的需求。嵌入式操作系統(tǒng)應(yīng)運(yùn)而生,嵌入式
    的頭像 發(fā)表于 04-09 17:27 ?588次閱讀
    再談<b class='flag-5'>嵌入式</b>實(shí)時(shí)<b class='flag-5'>操作系統(tǒng)</b>

    經(jīng)緯恒潤AUTOSAR產(chǎn)品成功適配芯來RISC-V車規(guī)內(nèi)核

    近日,經(jīng)緯恒潤AUTOSAR基礎(chǔ)軟件產(chǎn)品INTEWORK-EAS(ECUAUTOSARSoftware,以下簡稱EAS)芯來提供的HP060開發(fā)板上成功適配芯來科技的RISC-V處理
    的頭像 發(fā)表于 03-29 08:00 ?333次閱讀
    經(jīng)緯恒潤AUTOSAR產(chǎn)品<b class='flag-5'>成功</b><b class='flag-5'>適配</b>芯來<b class='flag-5'>RISC-V</b>車規(guī)內(nèi)核

    品讀《基于FPGA與RISC-V嵌入式系統(tǒng)設(shè)計(jì)》

    FPGA 1.3 RISC-V 1.4 小腳丫 FPGA 開發(fā)平臺(tái) 1.5 C/C++,Make 與工具鏈 1.6 嵌入式操作系統(tǒng) 1.7 Arduino 集成開發(fā)環(huán)境 1.8 模塊授權(quán)方式 1.9
    發(fā)表于 03-29 00:06

    RISC-V 基礎(chǔ)學(xué)習(xí):RISC-V 基礎(chǔ)介紹

    所有標(biāo)準(zhǔn)RISC-V CPU 都必須實(shí)現(xiàn)的權(quán)限級(jí)。 虛擬機(jī)監(jiān)視特權(quán)級(jí)(H):為了支持虛擬機(jī)監(jiān)視器而定義的特權(quán)級(jí)。 管理員特權(quán)級(jí)(S):主要用于支持現(xiàn)代操作系統(tǒng),如Linux、FreeBSD
    發(fā)表于 03-12 10:25

    菁蓉聯(lián)創(chuàng)獲得首個(gè)openEuler嵌入式操作系統(tǒng)技術(shù)測評(píng)證書

    近日,成都菁蓉聯(lián)創(chuàng)科技有限公司(簡稱:菁蓉聯(lián)創(chuàng))攜手四川鯤鵬&生態(tài)創(chuàng)新中心完成首個(gè)openEuler嵌入式操作系統(tǒng)技術(shù)測評(píng)證書。
    的頭像 發(fā)表于 11-28 10:18 ?879次閱讀
    菁蓉聯(lián)創(chuàng)獲得首個(gè)openEuler<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>技術(shù)測評(píng)證書

    基于ARM和uc/osII嵌入式操作系統(tǒng)的USB-CAN適配器設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于ARM和uc/osII嵌入式操作系統(tǒng)的USB-CAN適配器設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-07 16:00 ?1次下載
    基于ARM和uc/osII<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統(tǒng)</b>的USB-CAN<b class='flag-5'>適配</b>器設(shè)計(jì)