开辟鸿蒙,聊聊华为微内核

 

曾经,微内核的操作系统一直活在实验室里,从来没走出过实验室。无数教授拿着教材说“微内核的操作系统没有实现过”。

过了昨天,这句话就就成为历史了。

操作系统(Operating System)内核有几种?

操作系统内核kernel,主要控制的计算机的正常运行,包括:文件管理(文件系统)、进程管理(CPU调度)、内存管理、中断处理和应用程序的切换调度。这些功能都是独立成单独的模块,除了这些功能模块,内核kernel本身除了在“恰当的时候”负责调度、连接这些模块之外,它自己也有重要的功能,如控制计算机的启动bootLoader。

主要的操作系统内核:宏内核、微内核、VMM

 

宏内核

目前市面上、绝大多数操作系统都是宏内核。宏内核的操作系统,典型代表就是Linux。

宏内核:将内核服务作为整体,所有服务都“伸手即得”。也就是将上述控制的计算机的正常运行的各个模块,都聚合在一起。如下图所示,

所有服务都“伸手即得”:就比如,当有应用程序申请内存时,kernel直接调度相关的单元即可完成,没有额外的消耗。

画外音

这种内核有点像web开发中,之前很盛行的一体化架构—— 一个jar/war包打天下;所有服务模块都聚在一起,要死一起死,一个服务模块挂了,整个web应用服务都挂了。
当然,很久以前在使用这个架构时,我们并没有给它命名“一体化架构”一样,知道后来有人提出了SOA/微服务。相对比较之下,才流行起来比较形象的名字。

恰似web开发一体化架构的宏内核,具体有没有刚才说的“要死一起死”问题,我们不得而知。但在5G时代,微内核将成新宠。

 

微内核

做过嵌入式开发的同学应该知道,微内核,kernel非常小,只管非常少的事。内存、文件管理等都是外围服务的存在。
kernel除了必要的程序,如启动等,其他事都交给外围服务完成。

那微内核划分开来了,除了职责单一了、kernel启动快,它有什么缺点呢?
执行效率低了。宏内核所有服务都“伸手即得”;而微内核,实际做事的是指派给外围服务了,要等别的[外围]内核返回数据给我,才能返回给应用程序,他们之间多一手网络通信传输。

既然缺点这么明显,提出干啥呢?
5G能解决瓶颈。微内核就是为5G而设计的。
5G的超高速传输,让不同内核服务数据传输,变得“伸手即得”。5G+微内核的结合,将创造无限可能。

画外音
微内核,有点像是给各服务“微服务化”了。就像web开发中目前主流的微服务一样。

与内核相对的,还有外核。这也是目前研究领域的一个热门方向。

 

外核

基于内核,延伸出“服务定制化”的外核。如浏览器browser运行在操作系统中,基于操作系统内核,专门给browser量身定制一个外核,专门给browser用,以达到更棒的应用使用效果。

目前,还不存在外核的操作系统。只是活在实验室。
缺点:和软件强绑定,没有通用性。但为“服务定制化”的外核为“专供”的软件程序提供超强支持。

 

VMM

虚拟化的技术,专为解决硬件资源过剩而生。
这种内核的操作系统,解决问题的思路,有点像docker。

增加一个虚拟层,虚拟成多个操作系统,共享硬件资源。
一个硬件较好的机器上面能虚拟出多个独立的OS,互相隔离、互不影响,充分发挥硬件能力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章