单内核与微内核

单内核:设计简单,把内核从整体上作为一个单独的大的过程来实现,内核所有服务都运行在同一地址空间,内核可以直接调用函数,就好像用户空间的应用程序一样。

微内核:依据功能划分为多个独立的过程,每个过程叫做一个服务器。理想情况下,只有强烈请求特权的服务器才能运行在特权模式下,其它服务器都运行在用户空间。因为所有服务器都保持独立的地址运行空间,因此不能像单内核那样直接调用函数,而是通过消息传递处理微内核之间的通信:IPC机制。


因为IPC机制的开销多于函数调用,又因为会涉及内核空间与用户空间的上下文切换,因此,消息传递需要一定的周期,而单内核的函数调用却没有这些开销。结果,所有实际应用的基于微内核的系统都让大部分或全部服务器都位于内核,这样就可以直接调用函数,消除频繁的上下文切换。Windows NT内核(Windows XP、Windows 7等)和Mach(Mac OS X的组成部分)都是微内核的典型实例。不管是Windows NT还是Mac OS X,都在其新版本中不让微内核服务器运行在用户空间,很显然,这违背了微内核的设计初衷。

Linux则采用了单内核的方式。

--出自《Linux Kernel Development》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值