微内核及其结构
扫描二维码
随时随地手机看文章
微内核(英文中常译作µ-kernel或者micro kernel)。是一种能够提供必要服务的操作系统内核;其中这些必要的服务包括任务,线程,交互进程通信(IPC,Inter-Process Communication)以及内存管理等等。所有服务(包括设备驱动)在用户模式下运行,而处理这些服务同处理其他的任何一个程序一样。因为每个服务只是在自己的地址空间运行。所以这些服务之间彼此之间都受到了保护。
微内核是内核的一种精简形式。将通常与内核集成在一起的系统服务层被分离出来,变成可以根据需求加入的选件,这样就可提供更好的可扩展性和更加有效的应用环境。使用微内核设计,对系统进行升级,只要用新模块替换旧模块,不需要改变整个操作系统。可以用商业对比来解释微内核的模块概念。考虑一个过度忙碌的商务经理。通过将工作分给其他人,这位经理可以将他的能力更有效地用于重要的商务工作中去,并集中于其他一些任务,例如开辟新的商务分支等。可以雇佣一些新人来支持增长的商务活动。经理协调这些工作,但由其他的人做好雇佣他们时说好要做的事。与此类似,微内核操作系统支持执行少量核心任务,并管理可安装模块的活动。用这种方式,微内核对于它能做的工作是非常有效的,并是可移植的,这是指它可以被设计成在不同的处理器上运行。基于微内核的操作系统具有如下特征:微内核提供一组“最基本”的服务,如进程调度、进程间通信、存储管理、处理I/O设备。其他服务,如文件管理、网络支持等通过接口连到微内核。与此相反,内核是集成的,比微内核更大。微内核具有很好的扩展性,并可简化应用程序开发。用户只运行他们需要的服务,这有利于减少磁盘空间和存储器需求。厂商可以很容易地将微内核移植到其他处理器平台,并在上面增加适合其他平台需要的模块化部件。(这指文件服务器、工程应用等等)。微内核和硬件部件有接口,并向可安装模块提供一个接口。在微内核中,进程通过传递消息或运行“线程”来发生相互作用。线程为将一个任务分解为多个子任务提供了途径,在多处理器环境下,线程可以在不同的处理器上独立运行。像Mach和Nucleus这样的微内核操作系统,使用户可以自己选择操作系统的接口和特性。它们十分适合可以选择多处理器和多操作系统的变化的计算机市场,开发商也可从中受益。它们能够很快地从一个系统向另一个系统移植他们的产品,使最终用户可以得到许多应用产品。这种模块化的设计也保证了可以得到大量的可选服务。
Nucleus Chorus系统公司(Beaverton,oregon)设计,该公司总部设在法国。WindowsNT这种操作系统是围绕着Microsoft设计的微内核而设计的,它紧跟在Mach设计之后。它提供线程调度、中断和意外事件管理、多处理器同步和系统恢复(在掉电之后)。它永远不会被存储器管理程序调出内存,而且它的执行也永远不能被其它进程中断。OSF/1MK这是开放式系统基金会的OSF/1 UNⅨ操作系统使用微内核研究的最新版本。它实现了Mach内核,并提供虚拟存储管理、进程间通信和设备驱动程序管理。UNⅨ SVR4 UNⅨ系统实验室公司推出了一个微内核的UNⅨ SVR4(系统V版本4)。它实现了Nucleus微内核。它提供前面讨论的所有微内核特征;然而,在微内核中不管理驱动程序。WorkPlace OS IBM的微内核是基于Mach微内核的。这种微内核在Motorola Power PC处理器上运行,它是Intel80486和Pentium处理器的直接竞争者。WorkPlace操作系统上的用户可以选择不同的运行于操作系统上的接口,如DOS、OS/2、Windows、U-NⅨ等。IBM微内核的体积很小(约40K),可处理基本的任务,如存储器管理、线程管理、中断管理和消息传递。鸿蒙OS的微内核是LiteOS,LiteOS是华为物联网战略的重要组成部分,具备轻量级、低功耗、互联互通、组件丰富、快速开发等关键能力,基于物联网领域业务特征打造领域性技术栈,为开发者提供 “一站式” 完整软件平台,有效降低开发门槛、缩短开发周期,可广泛应用于可穿戴设备、智能家居、车联网、LPWA等领域。