在HDC 2024和HarmonyOS NEXT即将到来之际,梳理一下HarmonyOS的发展历程,并且和Windows移动操作系统的发展做个类比。
既然要聊HarmonyOS,那么就要明确这个东西的概念。从HarmonyOS的内涵来讲,HarmonyOS是基于微内核的面向全场景的分布式操作系统[1](现在的文档里删除了微内核相关文字,定义修改为HarmonyOS是一款面向全场景智慧生活方式的分布式操作系统[2]);从HarmonyOS的外延来讲,HarmonyOS分为OpenHarmony和非OpenHarmony。OpenHarmony又可分为轻量系统、小型系统、标准系统[3],非OpenHarmony可以分为HarmonyOS(以下简称HMOS,下文出现的HarmonyOS代表其外延的全部)和HarmonyOS NEXT(以下简称HMOSN)。
2019年8月9日,华为在HDC 2019上发布了HarmonyOS,并且宣布了首款搭载HMOS的设备荣耀智慧屏X1。华为还分享了HarmonyOS的roadmap和系统架构。
但是HDC2019的roadmap并未如期实现。虽然在HDC 2020上华为发布了HMOS 2,并且超预期地将HarmonyOS扩展至智能手机上,但是在HDC 2019上宣布的通用微内核架构并未随HMOS 2到来,仍然仅用于TEE。并且,华为的HarmonyOS开源项目OpenHarmony并未含有任何微内核的代码,初期仅包括了用于嵌入式设备的、基于LiteOS内核的代码,这与2019年华为对于HarmonyOS的营销相差甚远。这个情况,导致有相当数量的人指责华为在HarmonyOS上采取虚伪的态度。他们表示,HarmonyOS是AOSP套壳,并非自研。华为对此做出了一些回应,甚至还搞出了某王姓博士“开源自研”的笑话。
不过实际上就和Windows Copilot被砍一样,实际上华为很好地掩盖了HarmonyOS微内核(鸿蒙(微)内核)跳票这件事。华为并未对微内核跳票发表任何评论,而是通过“开源自研”这个锚点吸引了绝大多数火力,避开了HarmonyOS真正的痛点——鸿蒙内核。实际上直到今天还有很多人,包括抨击与维护HarmonyOS在内的群体,认为LiteOS就是当时所指的微内核,但是其实不然。
华为在战术上做出的调整是,自HDC 2020起,华为侧重于HarmonyOS生态的构建。不过这条路并不顺利。
- 华为的愿景是,开发者可以通过DevEco和HarmonyOS SDK非常方便的地迁移Java编写的安卓应用,使其运行在HarmonyOS上。HMOS 2实现了一部分这个愿景。初期,华为通过魔改AOSP,加入了一定部分的自主API(包括重写的图形栈服务),开发出了HMOS 2。这也就是当时第一批HarmonyOS应用的来源,开发者使用Java编写应用,通过方舟编译器编译适用于HarmonyOS的apk并打包成hap[4]。但是随着美制裁收紧,方舟编译器这部分的成果无法继续被华为使用,自从HarmonyOS API 8开始,这部分成果和Windows的Objective-C一样被废除。
- 此外,就是华为推动的HarmonyOS自主生态。
- 在确定了HarmonyOS微内核受阻后,华为将HMOS的自主API部分移植到LiteOS和Linux内核上,并将这些代码捐赠给开放原子开源基金会,项目名称为OpenHarmony,以实现华为HarmonyOS的开源承诺。OpenHarmony代码编译的操作系统(以下简称OpenHMOS)和HMOS共享API。
- 华为逐步构建起基于ArkTS和ArkUI的鸿蒙原生应用。在HDC 2022上,华为分享了ArkTS和ArkUI的相关信息,并且宣布HMOS和OpenHMOS生态共享,这对于华为构建HarmonyOS自主生态有很大帮助。
不过底层的开发不可能一直受阻。HDC 2023上,华为宣布了HarmonyOS NEXT,并且暗示该操作系统将基于鸿蒙内核。不少人对HMOSN有误解,认为OpenHMOS就是HMOSN,实际上HMOSN是一个包括了华为在HDC 2019构想的HarmonyOS 2.0所有愿景的版本,包括通用微内核架构和其它技术实现。
唉,HDC 2019
华为在HDC 2023算是变相承认了前两年没顺利切到鸿蒙内核的事实,也在几年的鸿蒙生态千帆启航仪式上变相承认了鸿蒙内核跳票的事实。
可以和HDC 2019的RoadMap比较一下
虽然学术界对于分布式操作系统有一定的研究[5],但是那些仍然也只是学术研究的范畴,HarmonyOS的实践也不足以支撑这个理念,目前也并没有其它成功的实践能够证明这个理念能被广泛应用。无论如何,HarmonyOS的真正痛点是没有自主的底层。5年来,华为一直在为着HarmonyOS的自主底层而努力。HDC 2024即将召开,当初画的大饼即将落地,真的鸿蒙即将到来,我十分期待有着鸿蒙内核的HarmonyOS NEXT能够为个人计算市场带来新的空气。
最后,和我们最亲爱Windows移动操作系统的来个类比回顾。
华为在HDC 2019上宣称HarmonyOS 2.0将有通用微内核架构,但是HDC 2020却发布了一个基于AOSP魔改的操作系统,就好比微软在发布WP8以后,宣布WP8被砍,所有设备只能升级到WP7.8。但是华为没做WP7.8,做的是WM 7.8,WP8被拿去做其他事了。
HarmonyOS的API 8宣布不再支持Java作为开发语言,就好比微软又宣布我们推送了16212,砍掉了所有SL应用支持。
翻译:WP7.8是OpenHMOS、WM7.8是HMOS 2。WP8是API重置前的OpenHMOS,16212是API重置后的OpenHMOS。现在的HMOS是WM10,NEXT是WCOS/仙女座,OpenHMOS是Win10M CShell。