本文为你介绍微内核操作系统的定义,及其采用微内核设计的操作系统都有哪些?同时附有 Linux 是一个单内核结构的介绍,不过 Linux 还吸收了微内核的优点,所以系统表现相当的出色。微内核如今非常受关注,起因是华为鸿蒙操作系统有一个主要亮点:微内核,华为声称,微内核的启用,使其速度大大提升,并且在安全性上产生变革性突破,微内核打破了宏内核下 root 即可获取用户所有权限的做法,在安全性上大大提升,以下将为你介绍相关详情。
微内核的定义 微内核结构由一个非常简单的硬件抽象层和一组比较关键的原语或系统调用组成,这些原语,仅仅包括了建立一个系统必需的几个部分,如线程管理,地址空间和进程间通信等。 微核的目标是将系统服务的实现和系统的基本操作规则分离开来。例如,进程的输入/输出锁定服务可以由运行在微核之外的一个服务组件来提供。这些非常模块化的用户态服务器用于完成操作系统中比较高级的操作,这样的设计使内核中最内核的部分的设计更简单。一个服务组件的失效并不会导致整个系统的崩溃,内核需要做的,仅仅是重新启动这个组件,而不必影响其它的部分。 微内核将许多OS服务放入分离的进程,如文件系统,设备驱动程序,而进程通过消息传递调用OS服务.微内核结构必然是多线程的,第一代微内核,在内核提供了较多的服务,因此被称为'胖微内核',它的典型代表是MACH,它既是GNU HURD也是APPLE SERVER OS 的内核,可以说,蒸蒸日上,第二代微内核只提供最基本的OS服务,典型的OS是QNX,QNX在理论界很有名,被认为是一种先进的OS。
采用微内核设计的操作系统 微内核并非一个新的概念,它已经存在很长的历史,下列的操作系统都是基于微内核结构设计的: AIX BeOS L4微内核系列 Mach,用于GNU Hurd和Mac OS X Minix(参考:世界上最流行的操作系统不是Linux也不是Windows,而是MINIX) MorphOS QNX RadiOS VSTa RT-Thread 附:网友对微内核下了一个结论 Micro-kernel 已经失败,在商业级操作系统中(包括可以用于 mission critical 的 open source 操作系统),除了 L4 还在苦苦留有少量份额,没有任何 micro-kernel 的市场。第一代 micro-kernel 是以一个错误的方式解决了一个错误的问题。而第二代 micro-kernel 不过是以正确的方式解决了错误的问题。
为你解释 Linux 究竟是单内核的还是微内核的 Linux 是一个单内核结构,同时又吸收了微内核的优点:模块化设计,支持动态装载内核模块,Linux 还避免了微内核设计上的缺陷,让一切都运行在内核态,直接调用函数,无需消息传递。 早在 1992 年,Linus 曾经与 Tanenbaum 进行一场关于操作系统内核选择的著名争论。Tanenbaum 认为,以微内核架构设计的操作系统,在理论上,比宏内核架构更加优越,主张Linux应该以微内核架构来进行重新设计。但是 Linux 创始人 Linus 以开发实务上的观点展开反击,陈述 Linux 选择宏内核架构进行开发的理由,并比较Minix与Linux的性能差异。 Tanenbaum,著名的技术作家、教育家和研究者,IEEE高级会员、ACM高级会员、荷兰皇家艺术和科学院院士、1994年ACM Karl V. Karlstrom杰出教育奖、1997年ACM计算机科学教育杰出贡献奖、2002年Texty卓越教材奖、第10届ACM操作系统原理研讨会杰出论文奖、被列入“Who's Who in the World”人物目录。 下图是宏内核(左)和微内核(右)两种结构的简单架构图:
当然对最终用户而言,我们并不在意采用何种方案,从现实情况来看,微内核似乎还有很长的路要走。但是华为鸿蒙操作系统的出现,将把微内核操作系统推向前所未有的高度。
相关主题 |