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 库在不影响性能等前提下,在这上述能方面进行功能上的填充还是有很大的发掘空间的。

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

    关注

    5210

    文章

    20680

    浏览量

    337363
  • 操作系统
    +关注

    关注

    37

    文章

    7443

    浏览量

    129643
  • 编码
    +关注

    关注

    6

    文章

    1041

    浏览量

    57155
  • RISC-V
    +关注

    关注

    49

    文章

    2954

    浏览量

    53599

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    全球首款!进迭时空 RISC-V AI CPU K3 成功适配 OpenHarmony 6.1

    芯片,标志着RISC-V芯片与开源鸿蒙操作系统适配,正式步入“芯片+系统”全自主、双开源的全新阶段。在此次适配过程中,双方发挥各自技术优势
    的头像 发表于 04-16 18:02 406次阅读
    全球首款!进迭时空 <b class='flag-5'>RISC-V</b> AI CPU K3 <b class='flag-5'>成功</b><b class='flag-5'>适配</b> OpenHarmony 6.1

    重磅合作!Quintauris 联手 SiFive,加速 RISC-V 嵌入式与 AI 领域落地

    据科技区角报道半导体解决方案提供商 Quintauris 最近宣布和 RISC-V 处理器 IP 领域的头部厂商 SiFive 达成战略合作,目标直接瞄准加速 RISC-V 嵌入式
    发表于 12-18 12:01

    RISC-V如何变革嵌入式系统设计

    本文编译自SemiconductorDigest开放硬件架构、半导体技术的飞速发展,以及市场对可扩展定制计算平台需求持续增长的推动下,嵌入式系统设计正经历数十年来最为重大的变革之一
    的头像 发表于 12-12 11:27 829次阅读
    <b class='flag-5'>RISC-V</b>如何变革<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>设计

    什么是嵌入式操作系统

    要理解嵌入式操作系统(Embedded Operating System,简称 RTOS/EOS),我们可以从本质定义→核心区别→实际作用→典型特征→嵌入式开发场景适配,五个维度来拆解
    发表于 12-09 10:33

    探索RISC-V机器人领域的潜力

    运行ROS 2,充分证明了RISC-V架构完全有能力承载机器人操作系统这样的复杂软件栈。它不仅是学习RISC-V的绝佳工具,更是探索未来边缘计算和智能机器人的一个强大起点。 致谢: 感谢进迭时空、发烧友提供开发板,以及论坛中各
    发表于 12-03 14:40

    开放原子开源社区亮相2025操作系统大会

    11月14日,以“智跃无界,开源致远”为主题的操作系统大会2025(简称“大会”)北京中关村国际创新中心成功举办。大会由开放原子开源
    的头像 发表于 11-17 16:37 1052次阅读

    嵌入式实时操作系统的特点

    任务的系统。 实时嵌入式操作系统与传统的桌面操作系统相比,更注重对实时任务的响应和精确控制。它们资源利用、可靠性、可预测性、任务调度和中断
    发表于 11-13 06:30

    CIE全国RISC-V创新应用大赛 人脸识别系统介绍与移植

    大模型推理的嵌入式系统上。 项目代码采用的是python,因为MUSE Pi Pro操作系统Bianbu原生自带了python减轻了移植的难度,但系统采用的人脸识别模块insig
    发表于 11-08 11:19

    为什么RISC-V嵌入式应用的最佳选择

    最近RISC-V基金会在社交媒体上发文,文章说物联网和嵌入式系统正在迅速发展,需要更高的计算性能、更低的功耗和人工智能。RISC-V是为未来而建的,包括超高效的MCU到高性能应用处理器
    的头像 发表于 11-07 10:09 1864次阅读

    PIC64GX1000 RISC-V MPU:一款面向嵌入式计算的高性能64位多核处理器

    Microchip Technology PIC64GX1000 64位RISC-V四核微处理器 (MPU) 支持Linux^®^ 操作系统,基于RISC-V指令集架构,提供高效节能的嵌入式
    的头像 发表于 09-30 14:47 1246次阅读
    PIC64GX1000 <b class='flag-5'>RISC-V</b> MPU:一款面向<b class='flag-5'>嵌入式</b>计算的高性能64位多核处理器

    嵌入式系统迎来RISC-V时代:芯片、OS、工具链协同推动应用落地

    的捷报,到 RT-Thread 操作系统与众多芯片的深度适配,再到工业 PLC 领域的规模化落地,种种信号表明:经过 2024-2025 年的技术攻坚,RISC-V
    的头像 发表于 09-08 16:05 1627次阅读

    【Milk-V Duo S 开发板免费体验】RISC-V核心NCNN基准测试

    ncnn是腾讯优图实验室推出的一个为移动端极致优化的高性能神经网络前向计算框架,是目前同样也比较罕见的为 RISC-V 架构做过适配和优化的神经网络框架。 本文是一份教程,步骤 (step
    发表于 08-24 23:46

    深度操作系统deepin 25登陆超睿科技RISC-V桌面主机DP1000

    近日, deepin-ports SIG 与超睿科技的合作努力下,深度操作系统 deepin 25 现已能通过搭载主线内核的通用 ISO 镜像,超睿科技的
    的头像 发表于 08-05 11:27 1589次阅读

    RISC-V 虚拟化堆栈和硬件的最新进展

    RISC-V 虚拟化是其突破现有应用边界、进入更广泛场景(尤其是高性能计算、云计算、服务器及复杂嵌入式领域)的关键能力。比如,嵌入式与实时系统
    发表于 07-18 16:00 4056次阅读

    【好书推荐】RT-Thread第18本相关书籍!RISC-V嵌入式系统设计 | 技术集结

    内容简介《RISC-V嵌入式系统设计》是一本专为嵌入式系统初学者编写的实用入门教材,围绕当前热门的国产R
    的头像 发表于 07-11 17:05 1150次阅读
    【好书推荐】RT-Thread第18本相关书籍!<b class='flag-5'>RISC-V</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>设计  | 技术集结