前天,华为举行了一场盛大的发布会,会议开头介绍了华为在消费者市场所取得的成绩,说实话,看了还挺震撼的,华为确实是一家很厉害的商业公司。
后面就开始介绍鸿蒙 OS 了。
我研究过几年的 Linux 内核,对操作系统的了解可能比一般人多些吧,这里,我就根据我的所学来看看鸿蒙OS。
我整体的看法是:
华为是一家好公司,商业上确实也取得了很大的成绩,技术能力数一数二,敢做操作系统,挑战全新的操作系统生态,有野心,敢挑战。
但这个发布会,感觉更像个吹水会。
让我一个一个来说说吧。
宏内核和微内核
看过发布会的同学,对上面这个概念应该很熟悉了,会议上多次提到微内核,余总称其为面向未来的内核。
其实宏内核,微内核不是什么新鲜的概念,在 Linux 还没有问世之前,就已经存在这个概念了,最流行的PC操作系统 Windows 就是微内核的。
经典操作系统教材 《操作系统设计与实现》里面的教学操作系统 Minix ,也是微内核。
宏内核和微内核之间各有优劣。
宏内核的优势是性能,劣势是开发效率和开发难度。
微内核的优势是开发效率和开发难度,劣势是性能。
但发布会上似乎把优劣势给搞反了。
宏内核最知名的代表是 Linux 内核,目前 Android 使用就是 Linux 内核。
微内核最知名的代表是 Windows , 虽然大家经常吐槽 Windows , 但微软确实是很厉害的。
以我的理解,宏内核的开发成本和开发难度要大于微内核,一般的商业公司选择微内核架构是可以理解的,Linux 之所以采用宏内核,是因为人家是纯开源系统。
来一个直观的对比,Linux 内核的开源开发者有上百万,对比 Windows 内核的开发者,估计不到几万人。
就人力来说,商业公司采用宏内核的架构,有可能使整个项目陷入泥潭。
会议上一直在强调微内核,而且还搞反了两者的优势和劣势,这个就有点不妥了。
鸿蒙的性能
基于上面的分析,如果鸿蒙最终是采用微内核架构,性能上是不会好过宏内核的。
两个架构的差异,要是展开讲的话,会比较复杂,估计很多同学也没兴趣看。来简单对比下,一个文件读取的场景。
宏内核,因为内核是一体的,一次文件读取操作,基本就是函数的调用过程,速度是极快的。
微内核是模块化的,内核,文件系统,磁盘驱动都隶属不同的系统进程,要完成一次文件读取,需要在各系统进程之间进行多次通信,开销要远大过直接的函数调用。
上面一段,没有编程背景的同学可能难以理解,程序员应该可以理解其中的差异。
总的来说,一旦采用了微内核架构,就是选择开发的便利性,而放弃性能,所以会议还不断提性能好,也是比较忽悠了。
不过,从技术的角度看,商业公司选择微内核是正确的,微软就是最好的证明。
硬件发展速度很快,软件性能问题,最终都会被硬件速度的提升给弱化,提升开发效率,降低软件复杂度才是关键,微内核的优势也在于此。
离开用户体验讨论安全性,有吹水之嫌
技术上,要把一个系统的安全性做到极致,是可以的,但跟安全性相对的是用户体验。
余总在会议上用了房间和钥匙来比喻。
安卓系统是一个大房间,一个大钥匙,坏人拿到了大钥匙,就是可以拿走房间内所有的东西。
鸿蒙内核因为采用了微内核架构,所以相当于每个模块都是一个房间,有多个房间就可以有多个钥匙,所以安全性更高。
从安全性角度看,确实如此。
但用户原来只要保存一个钥匙(相当于密码),现在却要保存多个钥匙(相当于多个密码),安全性是增加了,但用户体验真的能够保证吗?
可能上面的举例不是特别恰当,但离开用户体验,只是一味强调安全性,也是有吹水之嫌了。
说了一堆,然并卵
会议花了很长时间,从性能,安全性等方面来说明了微内核的好,然而最后却只给出了这么一个结果:目前采用的还是 Linux 内核 ,微内核是未来的规划。
那是什么意思?意思就是这个东西只是一个规划,一个设想。
一般民众听完会觉得,可能过几年,他们的微内核就问世了。
作为对操作系统内核有点理解的人,我持相当保留的态度。
Linux 内核从第一个版本到现在经历了30年的时间,微软也创立了 40 年。
从零开始做内核的难度,不亚于最复杂芯片的研制,没有十年以上的研发过程,估计难以问世。
假设十年后,华为能够研发出来,但现在就拿一个十年后的东西来说,也是有点忽悠了。
个人看法
这个发布会是比较忽悠的,至少在鸿蒙OS这块,混淆了概念,画了个大饼。
不过我还是比较认可鸿蒙 OS 最后的设计,这种设计符合客观技术规律,也符合商业利益。
技术是客观的,跟爱国,跟政治都没有关系,如果非要在技术里面掺杂政治,掺杂爱国主义情怀,最后可能什么都做不成。
其实我觉得就算一直使用 Linux 内核都没有问题。
Linux 内核的创始人是芬兰人,不是美国人,Linux 也不是隶属于美国的。Linux 里面上百万的开发者是来自全球的,里面也有很多的中国人,阿里,华为,腾讯等公司在里面也贡献了不少代码,这是一个面向世界的内核,是人类团力协作的智慧产物,我觉得完全可以用。
从商业的角度讲,直接基于 Linux 内核,构建上层系统,构建商业生态也是合理且高效的。
Android 没有自己去造内核,而是基于 Linux 内核。苹果系统的内核也是基于已有的 Unix 系统,所以就算华为还是基于 Linux 内核来做,我觉得也完全合理。
不必非要给华为强加一个爱国的名义,非要自己搞一个全新的内核出来。
自己从头开始造内核,耗费人力,财力,也不符合商业利益,最后更可能胎死腹中,反而不是好选择的。
我觉得鸿蒙OS不一定要如发布会所说的那么牛逼,只要最终真能够比肩Android , 甚至是替换掉Android, 从技术专业的角度看,已经很牛逼了。
对中国企业来说,也是一个突破和飞越,是一件值得骄傲和自豪的事情。不需要一出世就领先人家十几年,那不现实,不是?
华为是好公司,华为的技术确实也很牛。
最后希望能够拥抱开源,技术无国界!