粗略解读一下 OSDI24 上华为鸿蒙内核的论文,抛砖引玉 - V2EX
seasona

粗略解读一下 OSDI24 上华为鸿蒙内核的论文,抛砖引玉

  •  2
     
  •   seasona Jul 14, 2024 1101 views
    This topic created in 675 days ago, the information mentioned may be changed or developed.

    论文地址: 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 的时候少吹点牛逼就好了。

    9 replies    2024-07-14 12:30:32 +08:00
    murmur
        1
    murmur  
       Jul 14, 2024
    鸿蒙为啥兼容 linux 生态,他所有的应用都是定制化重写的,这就是行政的力量

    而且鸿蒙有 2 个版本,一个是基于 linux 内核的开放鸿蒙,上平板和电脑无条件支持 linux

    一个是封闭鸿蒙,所有的应用都是重新开发
    GrayXu
        2
    GrayXu  
       Jul 14, 2024
    @murmur #1 你看了 paper 就知道了,不需要重写。
    yanghanlin
        3
    yanghanlin  
       Jul 14, 2024 via Android
    好奇鸿蒙内核对 Linux 系统调用兼容到什么程度,比如支持 eBPF 吗?原来 eBPF 做 tracing 的一些工具估计不太适用了
    yanghanlin
        4
    yanghanlin  
       Jul 14, 2024 via Android
    @murmur 我理解目标不局限于国内的话,兼容性还是挺重要的,毕竟
    yanghanlin
        5
    yanghanlin  
       Jul 14, 2024 via Android
    @murmur (抱歉点错发出去了)我理解目标不局限于国内的话,兼容性还是挺重要的,毕竟在国外华为也没什么特殊地位
    murmur
        6
    murmur  
       Jul 14, 2024
    @yanghanlin 兼容是苹果 m4 要考虑的事情,现在我们的信创台式机都是麒麟 990 ,开先系列据说因为 x86 很多地方都不能采购,那玩意可是 i3 10 代的水平啊

    麒麟 990 兼容 linux 生态有什么意义么,不会你以为这玩意就算兼容 linux ,你可以开 idea 流畅写码,用达芬奇剪辑

    如果给我强力 cpu ,然后给腾讯敲打一顿让他别作恶,那我就用 uos 就可以了啊
    murmur
        7
    murmur  
       Jul 14, 2024   1
    @yanghanlin 很多人对鸿蒙 pc 的期待错了,首先是因为采购吃回扣,你花几倍的价钱买了奔腾 D 赛扬的处理器,你才觉得电脑垃圾

    以为换了鸿蒙 PC 就能流畅,的确 990 的性能跑 linux 吃力点,跑个平板系统基本的流畅性没问题,肯定爆杀 linux 那套桌面

    但是流畅度不等于绝对性能啊,我们是在信创的前提下讨论鸿蒙才有意义

    没有信创同样的价格买苹果他不香码
    ranaanna
        8
    ranaanna  
       Jul 14, 2024
    这种吹牛的论文会有人认真看?通篇看下来,就是再造(照抄?)的一个 linux 精简内核,然后号称可兼容、性能提升、商业化成功、经验教训总结等等。干货在哪里?看 section 2 简直全程直摇头,基本上每句话都有槽点,特别是 2.3 issues with linux 简直毫无逻辑可言。section 7 倒是值得一读,是一个内部开发总结,充分显示(暴露)其开发水平。不过这些倒是符合华为一贯的调性。
    zizon
        9
    zizon  
       Jul 14, 2024
    看起来还不完全是一个传统意义的微内核.解决 IPC 性能那个看着还是属于折衷的.
    About     Help     Advertise     Blog     API     FAQ     Solana     5202 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 07:48 PVG 15:48 LAX 00:48 JFK 03:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86