华为鸿蒙系统的“微内核”是什么
最近很多人关注华为鸿蒙系统的“微内核”是什么,山东创新网小沐从网上搜集一些关于华为鸿蒙系统的“微内核”是什么内容,希望对您有用。
关于华为的话题很多,比如华为推出了鸿蒙操作系统(HarmonyOS),宣传的时候,大力强调使用的是微内核。这里就把这个事聊聊。
宏核心与微核心
*宏核(Monolithic Kernel):
是操作系统核心架构的一种,此架构的特性是整个核心程序都是以核心空间(Kernel Space)的身份及监管者模式(Supervisor Mode)来运行。
就是系统级别的功能模块,随着计算机启动,都加载,都放在统一地址空间。用户程序调用的时候,就只要跟一个宏核打交道即可,其后处理都在一个空间,好处是效率高。但问题是,如果宏核中模块有出现错误,则整个系统崩溃。比如曾经的windows95、windows98,死机是很容易发生的。Linux系统也是宏核架构。
核心功能不断扩充,虽然努力把功能进行分层抽象化,但代码量巨大,比如现在的linux核心,据说已经到了2700万代码行,维护起来也很困难。结构的复杂,也带来了稳定性的问题。
*微核(Microkernel):
为解决操作系统的内核代码难以维护的问题,于是提出了微内核的体系结构。它将内核中最基本的功能(如进程管理等)保留在内核,而将那些不需要在核心态执行的功能移到用户态执行,从而降低了内核的设计复杂性。而那些移出内核的操作系统代码根据分层的原则被划分成若干服务程序,它们的执行相互独立,交互则都经由微内核进行通信。
这样,基本是插件式应用,用到哪个功能,才通过微内核与对应服务模块通讯。微核足够小,理论上可以做到0错误。服务模块出错,只要重启模块即可。MINIX 3微内核系统仅1.2万行代码。
问题也出来了,程序运行中,不断在内核与服务,内核与调用间切换,微内核成为性能瓶颈。所以,微内核的系统,一般都是比较小的专用系统,特别是嵌入式。除了华为的鸿蒙,谷歌开发的Fuchsia系统,黑莓公司旗下的QNX系统,也是微内核架构。
*混合内核:
有了微内核,系统比较稳定,但性能成问题。宏内核,系统效率高,但容易出错。于是就出来了混合内核的折中方案。就是在微内核基础上,根据需要,将某些放到用户空间的模块,重新集成到核心空间。比如微软后来的NT架构,就是这样的系统。当然还有苹果的Mac OS。