微内核操作体系的优点:
1)提高了体系的可扩展性由于微内核 OS 的很多功能是由相对独立的服务器软件来实现的,当开发了新的硬件和软件时,微内核 OS 只需在相应的服务器中增加新的功能,或再增加一个专门的服务器。
2)加强了体系的可靠性由于微内核是出于精心计划和严格测试的,容易保证其正确性;另一方面是它提供了规范而精简的应用程序接口(API),为微内核外部的程序编制高质量的代码创造了条件。此外,由于全部服务器都是运行在用户态,服务器与服务器之间采用的是消息通报通信机制,因此,当某个服务器出现错误时,不会影响内核,也不会影响其他服务器。
3)可移植性在微内核结构的操作体系中,全部与特定 CPU 和 I/O 设备硬件有关的代码,均放在内核和内核下面的硬件隐藏层中,而操作体系别的绝大部分(即各种服务器)均与硬件平台无关,因而,把操作体系移植到另一个盘算机硬件平台上所需的修改是比力小的。
4)提供了对分布式体系的支持由于在微内核 OS 中,客户和服务器之间以及服务器和服务器之间的通信,是采用消息通报通信机制进行的,致使微内核 OS 能很好地支持分布式体系和网络体系。事实上,只要在分布式体系中赋予全部历程和服务器唯一的标识符,在微内核中再设置一张体系映射表(即历程和服务器的标识符与它们所驻留的呆板之间的对应表),在进行客户和服务器通信时,只需在所发送的消息中表上所发送历程和接收历程的标识符,微内核便可使用体系映射表,将消息发往目标,而无论目标是驻留在哪台呆板上。
5)融入了面向对象技术在计划微内核 OS 时,采用了面向对象的技术,其中的"封装"、“继承”、“对象类"和"多态性”,以及在对象之间采用消息通报机制等,都非常有利于提高体系的的"正确性"、“可靠性”、“易修改性”、"易扩展性"等,而且还能明显地减少开发体系所付出的开销。
微内核体系存在的问题:在微内核 OS 中,由于客户和服务器及服务器和服务器之间的通信,都需通过微内核,只是同样的服务哀求至少必要四次上下文切换。第一次是发生在客户发送哀求消息给内核,以哀求取得某服务器特定的服务时;第二次是发生在由内核把客户的哀求消息发往服务器时,第三次是当服务器完成客户的哀求后,把响应消息发送到内核时;第四次是在内核将响应消息发送给客户时。实际情况是,当某个服务器自身尚无能力完成客户哀求,而必要其他服务器资助时,如下图所示,其中的文件服务器还必要磁盘服务器的资助,这时就必要进行上下文的切换。