华为鸿蒙刷屏,到底什么是微内核操作系统呢?

职场故事 阅读(1231)


内容来自“开源中国”,谢谢。

昨天华为在松山湖华为开发者大会上正式宣布了红盟操作系统。该系统的亮点之一是微内核。华为声称微内核的启用极大地提高了它的速度并彻底改变了安全性。微内核打破了基于root的内核以获得所有用户的权限,并且安全性得到了极大的提高。

什么是微内核?

微内核结构由一个非常简单的硬件抽象层和一组更关键的原语或系统调用组成;这些原语只包括构建系统的必要部分;例如线程管理,地址空间和进程间通信。等待。

微内核的目标是将系统服务的实现与系统的基本操作规则分开。例如,进程的输入/输出锁定服务可以由在微内核外部运行的服务组件提供。这些非常模块化的用户模式服务器用于在操作系统中执行更高级的操作。这种设计使得内核中最核心部分的设计更加简单。服务组件的故障不会导致整个系统崩溃。内核需要做的是重新启动组件而不影响微内核的其他部分,以将许多OS服务放入单独的进程,例如文件系统和设备驱动程序。程序,而进程通过消息传递调用OS服务。微内核结构必须是多线程的。第一代微内核在内核中提供了更多服务,因此被称为“胖微内核”。它的典型代表是MACH,它既是GNU HURD又是APPLE SERVER OS的核心,可以说是繁荣的。第二代微内核仅提供最基本的OS服务。典型的操作系统是QNX。 QNX在理论界闻名,被认为是一种先进的操作系统。

具有微内核设计的操作系统

微内核不是一个新概念。它有悠久的历史。以下操作系统基于微内核架构设计:

AIXBeOSL4 microkernel系列Mach for GNU Hurd和Mac OS XMinixMorphOSQNXRadiOSVSTaRT-Thread

知道有人对微内核做出了结论:

微内核失败了。在商业级操作系统(包括可用于关键任务的开源操作系统)中,L4仍然在努力保持一小部分,没有任何微内核市场。

第一代微内核以错误的方式解决了错误的问题。第二代微内核以正确的方式解决了错误的问题。

Linux是单核还是微内核?

Linux是一种利用微内核的单核架构:模块化设计,支持动态加载内核模块。 Linux还避免了微内核设计中的缺陷,让一切都在内核模式下运行,直接调用函数,而无需消息传递。

早在1992年,Linus与Tanenbaum就操作系统内核的选择进行了一次着名的辩论。 Tanenbaum认为,使用微内核架构设计的操作系统在理论上优于宏内核架构,并且应该使用微内核架构重新设计Linux。但是,Linus反驳了开发实践的观点,说明了Linux选择宏内核架构进行开发的原因,并比较了Minix和Linux之间的性能差异。您可以通过维基百科了解本次辩论的全部细节。

Tanenbaum着名技术作家,教育家和研究员,IEEE高级会员,ACM高级会员,皇家艺术与科学学院,皇家ACM Karl V. Karlstrom杰出教育奖,1997年ACM计算机科学教育杰出贡献奖,2002年Texty卓越教学材料奖,第10届ACM操作系统原理研讨会杰出论文奖,被列入“世界名人录”角色目录。

下图是宏内核(左)和微内核(右)的简单架构图:

当然,对于最终用户,我们并不关心什么样的解决方案。从现实的角度来看,微内核似乎还有很长的路要走。

我们非常期待早日向最终用户提供服务。

*免责声明:本文最初由作者创建。文章的内容是作者的个人观点。半导体行业观察转载只是为了传达不同的观点。这并不意味着半导体行业观察到这种观点的支持或支持。如有任何异议,请联系半导体行业进行观察。

移动百度