赞
踩
单内核:设计简单,把内核从整体上作为一个单独的大的过程来实现,内核所有服务都运行在同一地址空间,内核可以直接调用函数,就好像用户空间的应用程序一样。
微内核:依据功能划分为多个独立的过程,每个过程叫做一个服务器。理想情况下,只有强烈请求特权的服务器才能运行在特权模式下,其它服务器都运行在用户空间。因为所有服务器都保持独立的地址运行空间,因此不能像单内核那样直接调用函数,而是通过消息传递处理微内核之间的通信:IPC机制。
因为IPC机制的开销多于函数调用,又因为会涉及内核空间与用户空间的上下文切换,因此,消息传递需要一定的周期,而单内核的函数调用却没有这些开销。结果,所有实际应用的基于微内核的系统都让大部分或全部服务器都位于内核,这样就可以直接调用函数,消除频繁的上下文切换。Windows NT内核(Windows XP、Windows 7等)和Mach(Mac OS X的组成部分)都是微内核的典型实例。不管是Windows NT还是Mac OS X,都在其新版本中不让微内核服务器运行在用户空间,很显然,这违背了微内核的设计初衷。
Linux则采用了单内核的方式。
--出自《Linux Kernel Development》
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。