论文地址: https://www.usenix.org/system/files/osdi24-chen-haibo.pdf
对这篇论文我的一些浅见:
鸿蒙内核总体来说是微内核架构,更偏向混合内核
为了解决微内核的性能问题,做了很多优化,比如隔离层拆的更细,优化了分页机制等等,这块还没仔细研究
我最关注的是鸿蒙如何兼容 Linux 生态:
用户态程序:鸿蒙内核提供了一个 Linux ABI shim ,用户态照常使用 Linux 的 syscall ,会被 Linux ABI shim 转发为鸿蒙内核处理,这个跟微软的 WSL1 是很类似的,鸿蒙是微内核,处理这个很方便
硬件驱动程序:提供了 Linux driver container 机制,我理解跟 linux 内核的 UML 机制差不多,在用户态运行 linux 内核 Runtime ,驱动运行在用户态 linux 内核 runtime 上,这样可以直接使用 Linux 生态的硬件驱动程序。当然相比于 Linux 硬件驱动直接运行在内核态,性能会比较差。鸿蒙提供的解决方案是:对于性能要求高的程序,在内核态重写一个 twin driver 用于处理中断等数据面,将控制面数据面分离。但这个就要求厂家针对鸿蒙适配驱动了,而且鸿蒙内核也没开源,所以只能说能发论文,用在华为自己的路由器手机或者车机上没问题,其他生态还是不好说
总得来说,这篇论文还是有挺多干货的。能把鸿蒙这套内核架构商业化落地,华为在操作系统方向的技术还是很牛的,也有魄力投入👍,要是 PR 的时候少吹点牛逼就好了。
1
murmur 2024 年 7 月 14 日
鸿蒙为啥兼容 linux 生态,他所有的应用都是定制化重写的,这就是行政的力量
而且鸿蒙有 2 个版本,一个是基于 linux 内核的开放鸿蒙,上平板和电脑无条件支持 linux 一个是封闭鸿蒙,所有的应用都是重新开发 |
3
yanghanlin 2024 年 7 月 14 日 via Android
好奇鸿蒙内核对 Linux 系统调用兼容到什么程度,比如支持 eBPF 吗?原来 eBPF 做 tracing 的一些工具估计不太适用了
|
4
yanghanlin 2024 年 7 月 14 日 via Android
@murmur 我理解目标不局限于国内的话,兼容性还是挺重要的,毕竟
|
5
yanghanlin 2024 年 7 月 14 日 via Android
@murmur (抱歉点错发出去了)我理解目标不局限于国内的话,兼容性还是挺重要的,毕竟在国外华为也没什么特殊地位
|
6
murmur 2024 年 7 月 14 日
@yanghanlin 兼容是苹果 m4 要考虑的事情,现在我们的信创台式机都是麒麟 990 ,开先系列据说因为 x86 很多地方都不能采购,那玩意可是 i3 10 代的水平啊
麒麟 990 兼容 linux 生态有什么意义么,不会你以为这玩意就算兼容 linux ,你可以开 idea 流畅写码,用达芬奇剪辑 如果给我强力 cpu ,然后给腾讯敲打一顿让他别作恶,那我就用 uos 就可以了啊 |
7
murmur 2024 年 7 月 14 日 @yanghanlin 很多人对鸿蒙 pc 的期待错了,首先是因为采购吃回扣,你花几倍的价钱买了奔腾 D 赛扬的处理器,你才觉得电脑垃圾
以为换了鸿蒙 PC 就能流畅,的确 990 的性能跑 linux 吃力点,跑个平板系统基本的流畅性没问题,肯定爆杀 linux 那套桌面 但是流畅度不等于绝对性能啊,我们是在信创的前提下讨论鸿蒙才有意义 没有信创同样的价格买苹果他不香码 |
8
ranaanna 2024 年 7 月 14 日
这种吹牛的论文会有人认真看?通篇看下来,就是再造(照抄?)的一个 linux 精简内核,然后号称可兼容、性能提升、商业化成功、经验教训总结等等。干货在哪里?看 section 2 简直全程直摇头,基本上每句话都有槽点,特别是 2.3 issues with linux 简直毫无逻辑可言。section 7 倒是值得一读,是一个内部开发总结,充分显示(暴露)其开发水平。不过这些倒是符合华为一贯的调性。
|
9
zizon 2024 年 7 月 14 日
看起来还不完全是一个传统意义的微内核.解决 IPC 性能那个看着还是属于折衷的.
|