0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RISC-V SIG 在欧拉嵌入式操作系统上成功实现musl libc 的适配

openEuler 来源:openEuler 2023-05-29 15:23 次阅读

近期,RISC-V SIG 在欧拉嵌入式操作系统上成功实现了 musl libc 的适配,完成了使用 musl libc 库替换 glibc 库构建镜像的工作。目前,以 musl libc 为基础库编译的镜像已在 Raspberry Pi4 开发板上可用,这一成果推动了 openEuler Embedded 的多态发展。

编译镜像步骤说明:

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

Musl libc 库对比 glibc 库的部分优点

它是一个专门为嵌入式系统开发的轻量级 libc 库,以简单、轻量和高效为特色;

musl libc 要小得多,因为 musl libc 专注于尽可能减少代码大小和函数调用开销,以提高性能;

musl libc 库的源码相对简单,封装性不强,不像 glibc 的代码一样臃肿,复杂;

musl libc 是 C 语言的一种标准函数库,代码干净且高效,针对静态连接(static linking)设计,适合被用来制作可携的程序,且也很容易进行交叉编译(cross compile),编译出运行在不同系统环境的程序。

Musl libc 库对比 glibc 库的部分缺点

POSIX 标准:musl libc 更加严格地遵循 POSIX 标准,而 glibc 则添加了一些扩展,以提供更多的功能和兼容性。

错误处理:musl libc 实现的错误处理更严格和更规范,而 glibc 则有更多的错误处理选项,并且支持不同的语言环境。

综上所述,如果你需要一个小巧且速度较快的 C 标准库在 Linux 系统上使用,则可以考虑使用 musl libc;如果你要开发的某个功能的可执行程序需要在不同系统环境下运行,则 musl libc 可满足你的需求;如果你想一次编译出可以在相同 CPU 架构的 Linux 发行版上都运行的程序,musl libc 库将是最优的选择,因为基于 glibc 库已编译好的函数库和运行档在不同的 Linux 上可能会出现无法共用的情况,。

Raspberry Pi 4:musl libc 与 glibc 性能等方面对比

Libc-bench 是 musl 官方提供的测试集,用于时间和内存效率的测试,该测试集中比较了各种 C/POSIX 标准库函数的实现。

UnixBench 是一款开源的测试 unix 系统基本性能的工具,测试系统各个方面的性能,然后将各测试结果和一个基准值进行比较,得到一个索引值,所有测试项目的索引值结合在一起形成一个测试分数值。这个测试分数越高代表此系统性能越好。

为了对比以 musl libc 与 glibc 为标准库的镜像在性能等方面差异,本次测试我们使用 libc-bench、Unixbench 工具对基于 musl libc 和 glibc 编译的树莓派镜像进行了测试,测试结果如下:

Libc-bench 进行内存占用率测试结果如下:

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

从上述测试输出结果可以得出以下结论:以 musl libc 为标准库编译的镜像在虚拟内存占用、物理内存占用、系统可回收内存方面都是远优于 glibc;

基于 musl libc 库的树莓派系统性能测试数据如下:

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

基 glibc 库的树莓派系统性能测试数据如下:

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

综上,基于 glibc 的树莓派系统跑分结果为 146.5 ,基于 musl libc 的树莓派系统跑分结果为 161.6 ;所以基于 musl libc 编译的树莓派镜像在性能上有大于 10%的提升;

进一步挖掘 musl libc 与 openEler Embedded 系统结合在性能和功能方面的潜力

当然,目前基于 musl libc 库编译的镜像在性能和功能方面还是有很大的提升空间。在性能方面,musl 库中 malloc 系列函数和 memcpy 系列函数实现较慢。尤其是 malloc 的性能,在多线程环境下会显著造成瓶颈,原因在于 musl libc 的 malloc 实现在每次 malloc 时都需要对全局变量加锁解锁, 导致严重的竞争现象,后续也需要在类似这方面上进行优化以便提高性能等;

在功能方面,musl libc 在字符集/编码方面的支持没有 glibc 全面;在错误处理方面,glibc 有更多的错误处理选项,并且支持不同的语言环境;POSIX 标准方面,glibc 添加了一些扩展,以提供更多的功能和兼容性等等,musl libc 库在不影响性能等前提下,在这上述能方面进行功能上的填充还是有很大的发掘空间的。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5086

    文章

    19141

    浏览量

    305971
  • 操作系统
    +关注

    关注

    37

    文章

    6840

    浏览量

    123409
  • 编码
    +关注

    关注

    6

    文章

    945

    浏览量

    54860
  • RISC-V
    +关注

    关注

    45

    文章

    2292

    浏览量

    46221

原文标题:Musl libc 库成功适配到 openEuler Embedded,推动欧拉嵌入式生态发展

文章出处:【微信号:openEulercommunity,微信公众号:openEuler】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何使用 RISC-V 进行嵌入式开发

    RISC-V是一种开源的指令集架构(ISA),它允许任何人设计、制造和销售基于RISC-V的处理器,这为嵌入式开发提供了极大的灵活性和创新空间。以下是使用RISC-V进行
    的头像 发表于 12-11 17:32 567次阅读

    关于RISC-V学习路线图推荐

    向量指令集、密码指令集等)进行硬件加速和优化。 嵌入式系统开发 : 掌握RISC-V嵌入式系统
    发表于 11-30 15:21

    RK3588J成功适配系统!助力能源电力国产OS!

    的三个综合类国家技术创新中心之一,是国家粤港澳大湾区布局的战略科技力量。 为了满足用户对于系统的使用需求,创龙科技携手大湾区国创中心,成功
    发表于 11-21 15:45

    开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束

    的智能系统中正在发挥关键性的作用,嵌入式操作系统急需升级换代适配智能系统技术与应用架构的新发展。 第六届国产
    发表于 08-30 17:24

    RT-Thread Safety AUTO成功适配芯来RISC-V车规内核

    NEWSTODAY近日,睿赛德科技(RT-Thread)宣布其通过最高功能安全等级认证的嵌入式实时操作系统RT-ThreadSafetyAUTO成功适配芯来科技的
    的头像 发表于 08-30 13:12 522次阅读
    RT-Thread Safety AUTO<b class='flag-5'>成功</b><b class='flag-5'>适配</b>芯来<b class='flag-5'>RISC-V</b>车规内核

    RT-Thread出席第六届中国嵌入式技术大会,共话嵌入式操作系统与智能工业

    RISC-V与AIoT、IoT与MCU生态建设四大板块,30+技术专家8月齐聚,展开两天有关嵌入式技术专业讨论。RT-Thread作为全球生态最好的开源嵌入式操作系统之一,
    的头像 发表于 08-03 08:35 421次阅读
    RT-Thread出席第六届中国<b class='flag-5'>嵌入式</b>技术大会,共话<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系统</b>与智能工业

    RISC-V中国的发展机遇有哪些场景?

    RISC-V处理器性能和能效比方面表现出色,适用于数据中心和高性能计算领域的需求。 自主可控:RISC-V的开源特性使得中国可以在这一领域实现自主可控的技术发展,减少对外国技术的依
    发表于 07-29 17:14

    为什么要有RISC-V

    RISC-V(“RISC five”)的目标是成为一个通用的指令集架构(ISA):①、它要能适应包括从最袖珍的嵌入式控制器,到最快的高性能计算机等各种规模的处理器。②、它应该能兼容各种流行的软件栈
    发表于 07-27 15:05

    第六届国产嵌入式操作系统技术与产业发展论坛议程发布

    嵌入式系统快速发展,操作系统智能系统正在发挥越来越大的作用,嵌入式
    发表于 07-26 10:54

    【出版发行】嵌入式系统原理与开发——基于RISC-V和Linux系统

    【出版发行】嵌入式系统原理与开发——基于RISC-V和Linux系统
    的头像 发表于 07-26 08:36 341次阅读
    【出版发行】<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>原理与开发——基于<b class='flag-5'>RISC-V</b>和Linux<b class='flag-5'>系统</b>

    专家力荐|《嵌入式系统原理与开发——基于RISC-V和Linux系统》新书发售

    ——基于RISC-V和Linux系统》图书,填补了高性能RISC-V应用处理器嵌入式应用方面相关书籍的空白。《
    的头像 发表于 07-24 08:20 629次阅读
    专家力荐|《<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>原理与开发——基于<b class='flag-5'>RISC-V</b>和Linux<b class='flag-5'>系统</b>》新书发售

    OERV-RTOS: UniProton 适配 Milk-V Duo,加速 RISC-V 生态

    OERV的实时操作系统小组(OERV-RTOS)完成了RISC-V开发板Milk-VDuo小核的初步支持并与大核Linux一起进行部署通信验证。这是UniProton首次RISC-V
    的头像 发表于 07-02 08:33 773次阅读
    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> 生态

    再谈嵌入式实时操作系统

    由于嵌入式处理器早期功能单一且运算能力不高,嵌入式应用已不能满足各个领域不断增长的需求。嵌入式操作系统应运而生,嵌入式
    的头像 发表于 04-09 17:27 813次阅读
    再谈<b class='flag-5'>嵌入式</b>实时<b class='flag-5'>操作系统</b>

    经纬恒润AUTOSAR产品成功适配芯来RISC-V车规内核

    近日,经纬恒润AUTOSAR基础软件产品INTEWORK-EAS(ECUAUTOSARSoftware,以下简称EAS)芯来提供的HP060开发板上成功适配芯来科技的RISC-V处理
    的头像 发表于 03-29 08:00 465次阅读
    经纬恒润AUTOSAR产品<b class='flag-5'>成功</b><b class='flag-5'>适配</b>芯来<b class='flag-5'>RISC-V</b>车规内核

    品读《基于FPGA与RISC-V嵌入式系统设计》

    FPGA 1.3 RISC-V 1.4 小脚丫 FPGA 开发平台 1.5 C/C++,Make 与工具链 1.6 嵌入式操作系统 1.7 Arduino 集成开发环境 1.8 模块授权方式 1.9
    发表于 03-29 00:06