鸿蒙为什么选择了 musl?

华为官方文档记载:“HarmonyOS 采用 musl 作为 C 标准库”。musl 以简洁、轻量和高安全性著称,完美契合鸿蒙“全场景、多形态设备”的定位。华为还在 musl 基础上进行了深度定制,包括动态库延迟加载、命名空间隔离等,使其成为鸿蒙原生开发的核心支撑。

这些定制与系统级集成,由华为底层操作系统工程师们共同完成。

可验证来源HarmonyOS 官方文档 - libc 标准库

四、共同的基石:Linux 与 musl 社区

这一“巧遇”建立在开源世界的公共基础设施之上:Linux 内核作为共同的底层依赖,由全球数千名工程师、贡献者共同维护;musl 社区 标准化的代码实现,为微软和华为提供了“共同语言”。musl 的 COPYRIGHT 文件中列有上百名贡献者,他们超过 15 年的持续工作同样值得被记住。

这种技术选型证明了:即便商业路径不同,主流技术栈正持续向高效、标准的工业规范收敛,而这一收敛过程离不开开源社区长期、沉默、持续的贡献。

五、本质:基于 ABI 标准的“无缝对接”

由于鸿蒙兼容 musl 格式的 Linux 动态库,而 .NET NativeAOT 恰好能产出该格式,开发者可利用 .NET 编译出符合 musl 标准的 .so 文件,在鸿蒙应用中通过标准的 dlopen 即可调用。

.NET x 鸿蒙 技术链路参考

.NET AOT 本身可以直接在 Linux 下编译为适合鸿蒙的 so 文件,不需要任何第三方工具。PublishAotCross 项目主要是借用 zig 的跨平台编译和配置实现在 Windows 上的编译。

华为云验证报告鸿蒙系统适配对接.NET系统【华为根技术】-云社区-华为云
.NET Runtime 工程师 michalstrehovsky https://github.com/michalstrehovsky/publishaotcross
xljiulang 从 michalstrehovsky fork: GitHub - xljiulang/PublishAotClang: 用于在 Windows 上辅助 PublishAot 交叉编译到多个 linux RID 的 Nuget 包 · GitHub
布布从 xljiulang fork: https://github.com/OpenHarmony-NET/PublishAotCross

既然核心技术点是 .NET NativeAOT ,那么理论上就可以有多种适配方案。比如 AOT + 自绘引擎 AOT + Avanolia AOT + Mono AOT + Web 等

六、延申:当前技术选型现状

在国产化趋势的背景下,不同技术栈的适配进度存在客观差异。以下成果同样依赖于各框架团队、开源社区与广大开发者的共同推动:

跨平台框架 适配状态 驱动方 备注
ArkUI-X 已发布 华为官方 华为官方跨平台框架
Flutter 已发布(3.35.x) 官方/社区 完整工具链
React Native 已适配(0.77.x) 华为/三方联合 已有大量应用
Qt 已宣布支持(2025.7) Qt Group 官方 核心模块完成迁移
uni-appx 已发布 DCloud 官方 国内轻量化主流
.NET 技术可行性验证 社区/三方贡献者 进行中

.NET 成功适配鸿蒙,对中国 .NET 社区意义深远。它不仅为 .NET 开发者在鸿蒙生态中打开了新的职业赛道,更有望在商业项目和信创工程中,提升 .NET 技术栈的正面形象,为其赢得与 Java、Python 等同等的地位。

如果后续微软官方下场适配或者华为在成功适配 Avalonia 后开源/允许商用,那更是锦上添花。

七、结语

以上基于搜集到的资料整理而成,如有错漏欢迎补充。.NET 与鸿蒙的战略交点确实存在,是无数工程师、开发者与开源社区贡献者们共同努力的结果,作为中国 .NET 开发者,我们乐见其成。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐