牛逼的鸿蒙OS,吹水的华为发布会!(图)
来自 芯智讯
发表于: 2019-8-12
近日,华为在东莞举行了一场盛大的发布会,会议开头介绍了华为在消费者市场所取得的成绩,说实话,看了还挺震撼的,华为确实是一家很厉害的商业公司。
后面就开始介绍鸿蒙 OS 了。
我研究过几年的 Linux 内核,对操作系统的了解可能比一般人多些吧,这里,我就根据我的所学来看看鸿蒙OS。
我整体的看法是:
华为是一家好公司,商业上确实也取得了很大的成绩,技术能力数一数二,敢做操作系统,挑战全新的操作系统生态,有野心,敢挑战。
但这个发布会,感觉更像个吹水会。
让我一个一个来说说吧。
一、宏内核和微内核
看过发布会的同学,对上面这个概念应该很熟悉了,会议上多次提到微内核,余总称其为面向未来的内核。
其实宏内核、微内核都不是什么新鲜的概念,在 Linux 还没有问世之前,就已经存在这个概念了,最流行的PC操作系统 Windows 就是微内核的。
经典操作系统教材 《操作系统设计与实现》里面的教学操作系统 Minix ,也是微内核。
宏内核和微内核之间各有优劣。
下面我们先来看看宏内核与微内核的定义以及各自的优缺点:
芯智讯补充1:宏内核与微内核定义
微内核定义:内核管理着所有的系统资源,在微内核中用户服务和内核服务在不同的地址空间中实现。在应用程序和硬件的通信中,内核进程和内存管理的极小的服务,而客户端程序和运行在用户空间的服务通过消息的传递来建立通信,它们之间不会有直接的交互,这样一来,微内核中的执行速度相对就比较慢了,这是微内核架构的一个缺点。
在内核架构中,用户服务是独立于内核服务的,因此任何用户服务崩溃都不会影响到内核服务,这就加强了操作系统的健壮性,这是微内核的优势所在。另一点,微内核的扩展性强,添加一个功能,只需要建立一个新的服务到用户空间当中,而内核空间不需要任何的修改。因此,微内核可移植性强、安全并且易于扩展。
宏内核定义:宏内核同样管理着用户程序和硬件之间的系统资源,但是和微内核不一样的是,在宏内核架构中,用户服务和内核服务在同一空间中实现。具体一点,就是内核可以代表内核进程运行代码,就是通常的内核进程;当用户进程经过系统调用或者中断进入到内核态时,内核也可以代表它运行代码。这样一来,宏内核需要管理的资源多于微内核,其大小就相对大一些了。
在宏内核架构当中,内核管理着CPU调度,内存管理,文件管理和系统调用等各模块的的工作,由于用户服务和内核服务被实现在同一空间中,这样在执行速度上要比微内核快。然而,宏内核的劣势也是显而易见的,那就是当内核中的某个服务崩溃了,整个内核也会崩溃。另一点,想要在内核中添加新的功能就意味着内核中的各个模块需要做相应的修改,因此其扩展性很弱。
来源:知乎@Vizxu
https://zhuanlan.zhihu.com/p/53612117
芯智讯补充2:微内核与宏内核的优缺点
图片来源:云时之间
从理论上来看,微内核的设计思想更好一些,它将系统分为各个小的功能模块,只把最基本的功能保留在内核,使得设计难度大大降低,系统的维护与修改也方便进行。但是微内核需要频繁的在核心态和用户态之间切换,性能较低。
而宏内核就是把很多东西都集成进了内核,例如linux内核,除了最基本的进程、线程管理、内存管理外,文件系统,驱动,网络协议等等都在内核里面。这样很多资源都可以直接调用,所以效率比较高。但是这也使得其设计难度大大提升,并且修改与维护的代价也很高。
总结来说,宏内核的优势是性能,劣势是开发效率和开发难度。
微内核的优势是开发效率和开发难度,劣势是性能。
但发布会上似乎把优劣势给搞反了。
宏内核最知名的代表是 Linux 内核,目前 Android 使用就是 Linux 内核。
微内核最知名的代表是 Windows , 虽然大家经常吐槽 Windows , 但微软确实是很厉害的。
以我的理解,宏内核的开发成本和开发难度要大于微内核,一般的商业公司选择微内核架构是可以理解的,Linux 之所以采用宏内核,是因为人家是纯开源系统。
来一个直观的对比,Linux 内核的开源开发者有上百万,对比 Windows 内核的开发者,估计不到几万人。
就人力来说,商业公司采用宏内核的架构,有可能使整个项目陷入泥潭。
会议上一直在强调微内核,而且还搞反了两者的优势和劣势,这个就有点不妥了。
二、鸿蒙的性能
基于上面的分析,如果鸿蒙最终是采用微内核架构,性能上要做到比宏内核更好是非常困难的。
宏内核,因为内核是一体的,一次文件读取操作,基本就是函数的调用过程,速度是极快的。
微内核是模块化的,内核,文件系统,磁盘驱动都隶属不同的系统进程,要完成一次文件读取,需要在各系统进程之间进行多次通信,开销要远大过直接的函数调用。
总的来说,一旦采用了微内核架构,就是选择开发的便利性,而放弃性能,所以会议还不断提性能好,也是比较忽悠了。
不过,从技术的角度看,商业公司选择微内核是正确的,微软就是最好的证明。
硬件发展速度很快,软件性能问题,最终都会被硬件速度的提升给弱化,提升开发效率,降低软件复杂度才是关键,微内核的优势也在于此。
芯智讯补充3:在鸿蒙OS之前,市场上其实已经有一款几乎符合鸿蒙所有特性,并且比鸿蒙做的更好的手机系统,那就是基于QNX的黑莓OS。QNX系统的核心特性包括:分布式架构、微内核、极高的安全与可靠性、硬实时系统、轻量级。
QNX系统在八十年代设计之初就是分布式架构,完全基于分布式消息传递机制,可以无缝的进行大规模多机运行。此外,由于其内核仅提供最基本的进程通信等服务,因此体积可以剪裁得非常小。经过几十年的开发与验证,其本身也拥有几乎是最高级别的安全性与可靠性。
正因为如此,QNX系统不仅此前被应用在黑莓手机上,更被广泛的应用在包括核电厂,航天飞机,医疗机器人,激光眼科手术器械,汽车ADAS等对操作系统可靠性与实时性要求极高的领域。目前在汽车领域,QNX依然是霸主级的存在。
(该部分资料来源:知乎@天明
https://www.zhihu.com/question/339567108/answer/781775403)
补充一下,黑莓OS的失败并不是其系统的失败,而是其过于封闭的生态策略上的失败,虽然后期开始对于安卓应用进行兼容,但是为时已晚。
三、离开用户体验讨论安全性,有吹水之嫌
技术上,要把一个系统的安全性做到极致,是可以的,但跟安全性相对的是用户体验。
余总在会议上用了房间和钥匙来比喻。
安卓系统是一个大房间,一个大钥匙,坏人拿到了大钥匙,就是可以拿走房间内所有的东西。
鸿蒙内核因为采用了微内核架构,所以相当于每个模块都是一个房间,有多个房间就可以有多个钥匙,所以安全性更高。
从安全性角度看,确实如此。
但用户原来只要保存一个钥匙(相当于密码),现在却要保存多个钥匙(相当于多个密码),安全性是增加了,但用户体验真的能够保证吗?
可能上面的举例不是特别恰当,但离开用户体验,只是一味强调安全性,也是有吹水之嫌了。
四、目前的鸿蒙OS还不是微内核,而是多内核架构
会议花了很长时间,从性能,安全性等方面来说明了微内核的好,然而最后却只给出了这么一个结果:目前鸿蒙OS采用的内核还是:Linux 内核、鸿蒙微内核 、LiteOS内核并列的多内核架构,纯微内核是未来的规划。
那是什么意思?意思就是这个东西只是一个规划,一个设想。
一般民众听完会觉得,可能过几年,华为的纯微内核的鸿蒙OS就问世了。
作为对操作系统内核有点理解的人,我持相当保留的态度。
Linux 内核从第一个版本到现在经历了30年的时间,微软也创立了 40 年。
从零开始做一个完全基于自主设计的内核的商用化系统的难度,不亚于最复杂芯片的研制,没有十年以上的研发过程,估计难以问世。
假设十年后,华为能够研发出来,但现在就拿一个十年后的东西来说,也是有点忽悠了。
芯智讯补充4:在发布会后,网上有网友爆料,智慧屏的鸿蒙OS中出现了ABD调试授权模式。ADB工具即Android Debug Bridge tools。它就是一个命令行窗口,用于通过电脑端与模拟器或者真实设备交互。因此,外界也出现了很多声音质疑称,目前在荣耀智慧屏上商用的鸿蒙OS依然还是基于安卓的深度定制。不过也有网友表示,目前鸿蒙OS本身就有Linux内核,而安卓底层也是基于Linux内核,因此出现ADB工具也并不意外,这么做应该是为了兼容安卓应用。
芯智讯补充5:众所周知目前的谷歌安卓系统仅仅是基于一个Linux内核,很多其他的系统也是有一个内核,但是根据华为展示的鸿蒙OS的PTT来看,目前的鸿蒙OS似乎是基于Linux 内核、鸿蒙微内核 、LiteOS内核并列的多内核架构,这是如何实现的?
知乎上有业内人士认为,一个操作系统,三个内核?Android的应用、虚拟机,跑在linux内核上,某些IoT的应用跑在Lite-OS内核下,已迁移到鸿蒙内核的应用,跑在鸿蒙内核、外核(一个内核外的基础服务应用群)下,如果这一过程是在一部设备上实时动态变化的,这似乎不太可能。因为,一个终端同一时间,只能跑一个OS内核!
那么可能的形式是:在不同的平台,运行不同内核。各平台间通过统一的,华为所谓的软总线实现分布式计算体验。当足够多App迁移到鸿蒙内核架构下运行时,Linux内核和Lite-OS内核就会完成它们的使命,从鸿蒙OS的体系中退出。
另一种可能是:鸿蒙的微内核作为基础内核,运行在最底层,把Linux和Lite-os稍作修改,作为一个服务运行在鸿蒙微内核之上。但是,这种设计,linux和Lite-os基本上就是虚拟机了,运行效率相比于原生的Linux和Lite-os,会大打折扣,能接近原生就不错了,性能超越Android 60%云云,那是根本不可能的,这种结构的实际运行效率,跟余承东发布会描绘的严重不符,所以基本应该不是这种形式。
(来源:知乎@小强
https://www.zhihu.com/question/339586623/answer/784001572)
个人看法
这个发布会是比较忽悠的,至少在鸿蒙OS这块,混淆了概念,画了个大饼。
不过我还是比较认可鸿蒙 OS 最后的设计,这种设计符合客观技术规律,也符合商业利益。
技术是客观的,跟爱国,跟政治都没有关系,如果非要在技术里面掺杂政治,掺杂爱国主义情怀,最后可能什么都做不成。
其实我觉得就算一直使用 Linux 内核都没有问题。
Linux 内核的创始人是芬兰人,不是美国人,Linux 也不是隶属于美国的。Linux 里面上百万的开发者是来自全球的,里面也有很多的中国人,阿里,华为,腾讯等公司在里面也贡献了不少代码,这是一个面向世界的内核,是人类团力协作的智慧产物,我觉得完全可以用。
从商业的角度讲,直接基于 Linux 内核,构建上层系统,构建商业生态也是合理且高效的。
Android 没有自己去造内核,而是基于 Linux 内核。苹果系统的内核也是基于已有的 Unix 系统,所以就算华为还是基于 Linux 内核来做,我觉得也完全合理。
不必非要给华为强加一个爱国的名义,非要自己搞一个全新的内核出来。
自己从头开始造内核,耗费人力,财力,可能也不符合商业利益,最后更可能胎死腹中。(芯智讯注:当然,如果华为能够有当初做海思芯片那样的决心和持续投入的毅力,鸿蒙内核未必不能实现发布会上的愿景。)
我觉得鸿蒙OS不一定非要如发布会所说的那么牛逼,只要最终真能够比肩Android , 甚至是替换掉Android, 从技术专业的角度看,已经很牛逼了。
这对中国企业来说,也是一个突破和飞越,是一件值得骄傲和自豪的事情。不需要一出世就领先人家十几年,那不现实,是不是?
最后还是要说一句,华为是好公司,华为的技术确实也很牛。
文章主体内容来源:微信公众号“大飞码字” 、知乎
编辑:芯智讯-林子