宏内核和微内核
看过发布会的同学,对上面这个概念应该很熟悉了,会议上多次提到微内核,余大嘴称其为面向未来的内核。
其实宏内核,微内核不是什么新鲜的概念,在 Linux 还没有问世之前,就已经存在这个概念了,最流行的PC操作系统 Windows 就是微内核的。
经典操作系统教材 《操作系统设计与实现》里面的教学操作系统 Minix ,也是微内核。
宏内核和微内核之间各有优劣。
宏内核的优势是性能,劣势是开发效率和开发难度。
微内核的优势是开发效率和开发难度,劣势是性能。
但发布会上似乎把优劣势给搞反了。
宏内核最知名的代表是 Linux 内核,目前 Android 使用就是 Linux 内核。
微内核最知名的代表是 Windows , 虽然大家经常吐槽 Windows , 但微软确实是很厉害的。
宏内核的开发成本和开发难度要大于微内核,一般的商业公司选择微内核架构是可以理解的,Linux 之所以采用宏内核,是因为人家是纯开源系统。
来一个直观的对比,Linux 内核的开源开发者有上百万,对比 Windows 内核的开发者,估计不到几万人。
就人力来说,商业公司采用宏内核的架构,有可能使整个项目陷入泥潭。
会议上一直在强调微内核,而且还搞反了两者的优势和劣势,这个就有点不妥了。
鸿蒙的性能
基于上面的分析,如果鸿蒙最终是采用微内核架构,性能上是不会好过宏内核的。
两个架构的差异,要是展开讲的话,会比较复杂,估计很多同学也没兴趣看。来简单对比下,一个文件读取的场景。
宏内核,因为内核是一体的,一次文件读取操作,基本就是函数的调用过程,速度是极快的。
微内核是模块化的,内核,文件系统,磁盘驱动都隶属不同的系统进程,要完成一次文件读取,需要在各系统进程之间进行多次通信,开销要远大过直接的函数调用。
上面一段,没有编程背景的同学可能难以理解,程序员应该可以理解其中的差异。
总的来说,一旦采用了微内核架构,就是选择开发的便利性,而放弃性能,所以会议还不断提性能好,也是比较忽悠了。
不过,从技术的角度看,商业公司选择微内核是正确的,微软就是最好的证明。
硬件发展速度很快,软件性能问题,最终都会被硬件速度的提升给弱化,提升开发效率,降低软件复杂度才是关键,微内核的优势也在于此。
离开用户体验讨论安全性,有吹水之嫌
技术上,要把一个系统的安全性做到极致,是可以的,但跟安全性相对的是用户体验。
余大嘴在会议上用了房间和钥匙来比喻。
安卓系统是一个大房间,一个大钥匙,坏人拿到了大钥匙,就是可以拿走房间内所有的东西。
鸿蒙内核因为采用了微内核架构,所以相当于每个模块都是一个房间,有多个房间就可以有多个钥匙,所以安全性更高。
从安全性角度看,确实如此。
但用户原来只要保存一个钥匙(相当于密码),现在却要保存多个钥匙(相当于多个密码),安全性是增加了,但用户体验真的能够保证吗?
可能上面的举例不是特别恰当,但离开用户体验,只是一味强调安全性,也是有吹水之嫌了。
说了一堆,然并卵
会议花了很长时间,从性能,安全性等方面来说明了微内核的好,然而最后却只给出了这么一个结果:目前采用的还是 Linux 内核 ,微内核是未来的规划。
那是什么意思?意思就是这个东西只是一个规划,一个设想。
一般民众听完会觉得,可能过几年,他们的微内核就问世了。
作为对操作系统内核有点理解的人,我持相当保留的态度。
Linux 内核从第一个版本到现在经历了30年的时间,微软也创立了 40 年。
从零开始做内核的难度,不亚于最复杂芯片的研制,没有十年以上的研发过程,估计难以问世。
假设十年后,华为能够研发出来,但现在就拿一个十年后的东西来说,也是有点忽悠了。
这个发布会是比较忽悠的,至少在鸿蒙OS这块,混淆了概念,画了个大饼。