也谈华为鸿蒙系统 - Thinks About Huawei Hongmeng

linux_android_huawei.jpg

自从华为被ARM和Android"封锁令"一系列负面消息来袭之后,关于华为的鸿蒙系统新闻层出不穷。
另据国家知识产权局商标查询显示,华为今年5月份和6月份申请了商标名称为"鸿蒙"的多个类目商标。这个时间前后也有许多公司和个人开始抢注"鸿蒙"为关键字的不同类目的商标。
其实按照以往的营销策略,一开始大V如华为高管在微博散布消息,之后开始让媒体热炒,再加上用户的跟风等一系列炒作之后,基本上就可以看到具体上线时间了。不过对于研发一款多平台支持的OS来说并不是易事。

本篇想探讨下关于华为鸿蒙的几个可能:

Linux的分支和Android

如果说鸿蒙是从无到有是新开发的操作系统,很大程度上说这是不可信的,而且就从封锁到今年年底这么短时间来说,即使加上过去研发个数年半载,也很难相信国产系统能做到像华为那样说的,能够比安卓快60%以上。
所以第一个推测:鸿蒙是基于某种操作系统定制的或者说适配的。

这里有一张关于Linux发行版的分支图:https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg
看了才发现原来Linux发行版太多了,算了,还是来看看Linux的几个大的发行版分支:

Screen Shot 2019-07-06 at 13.17.35.png

可以看出,Android也是基于Linux的发行版,这点你在看手机的关于里可以查到Linux内核版本。Android最早为Android Inc所有,后被Google2005年收购,发展至今已经到Android Q版本。这里有维基百科的解释。 https://zh.wikipedia.org/wiki/Android

Android是执行于Linux
kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux里支持的功能,Android大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。Android为了达到商业应用,必须移除被GNU
GPL授权证所约束的部分,Android并没有用户层驱动(user space
driver)这种东西。所有的驱动还是在内核空间中,并以HAL隔开著作权问题。bionic/libc/kernel/
并非标准的内核头文件(kernel header
files)。Android的内核头文件是利用工具由Linux内核的头文件所产生的,这样做是为了保留常数、资料结构与宏。

Android的核心基于Linux,除了核心之外,则是中介层、数据库元和用C/C++编写的API以及应用程序框架。Android的应用程序通常以Java数据库元为基础编写,运行程序时,应用程序的代码会被即时转变为Dalvik
dex-code(Dalvik Executable),然后Android操作系统通过使用即时编译的Dalvik虚拟机来将其运行

既然Android不让你用,那就基于Linux开发?

领导一句话,工程师几行泪,哪有那么容易。好吧,我们还有Linux其它的发行版或者Ctrl+C, Ctrl+V出来一个OS。 不过出于商业版权考虑,只能考虑在其它Linux分发版上做文章。

这点有没有其它可以借鉴的呢。来看这个Ubuntu,它的桌面相信不少人用过,用户体验上算上Linux桌面中比较好的。但它还有个移动版叫Ubuntu Touch。
photo_2018-06-22_12-49-26.jpg

详细的介绍可以看这里:https://ubuntu-touch.io/zh_CN/

Ubuntu Touch 是 Ubuntu 操作系统的移动版本,它针对移动设备而设计。然而,与 Ubuntu 其他“风味”发行版,如
Mate、Mint 和 Gnome 不同,更准确地说,它是 Ubuntu
的精髓。它适合在移动触摸屏环境中自然运行,但在“桌面模式”下也可以具有台式计算机的功能。

还有完整的生态,应用商店! https://open-store.io/ , Youtube, Whats App也有。 要不就用Ubuntu吧? No, No, No, 万一哪天Ubuntu说有license,岂不前功尽弃了。

华为还有一个杀手锏

可能很多媒体基本上没报道过,那就是EulerOS。

Screen Shot 2019-07-06 at 14.28.29.png

EulerOS是具备高安全性、高可扩展性、高性能、开放的企业级Linux操作系统平台,能够满足客户从传统IT基础设施到云计算服务的各种需求。EulerOS对ARM64架构提供全栈支持,打造完善的从芯片到应用的一体化生态系统。

详细介绍可以看这里。
https://developer.huawei.com/ict/site-euleros

令人注意的是这里:

完美支持ARM64
EulerOS是目前支持ARM64架构服务器最好的操作系统之一,在性能、兼容性、功耗等方面具备较强的竞争力,持续推动ARM64的生态构建。
提升多核并发能力,增强业务性能;L2 Cache共享技术,提升不同OSD进程间访问效率;首次在ARM64实现内核热补丁。
通过和Linaro及绿色产业联盟合作,联合构建绿色计算生态联盟,促进ARM64商业和开源软件生态发展。
通过ARM64服务器芯片的关键特性使能,实现了核心业务场景性能突破,并在linux内核、虚拟化、GCC、OpenJDK及docker等开源社区持续贡献,催熟产业生态。

这不禁让人想到,不就是支持移动单板了嘛,所以在此之上android的那套应用框架模仿过来基本上都是水到渠成,再把已有的EMUI9.0 搞上去,无非就是搞下SDK,应用市场,好像很容易哈。不过对于工程师来说也要生撸不少代码的。

到底是Hongmeng OS还是Euler OS,这里可以大胆推测下,鸿蒙很可能就是EulerOS的移动版, 就好比Ubuntu Touch之于Ubuntu Desktop。

回到开始话题,对于还没有面世的OS来说,没有严格的测试和数据对比,就说比android快60%,实在有点太武断了。