linux 微内核 宏内核,说说微内核与宏内核

微内核的概念与宏内核的概念是相互对立的。宏内核,一般是将系统的主要核心组件全部在内核实现。例如,内存管理器、进程管理器和I/O管理器等。可以想象,这样设计的内核各组件之间的关联很大,也就是常说的耦合性很大,不利于模块化设计。但优点也显而易见,就是速度快。各组件之间的通信全部在内核模式下完成,没有进程间的切换,也没有从用户模式到内核模式的切换。典型的宏内核的操作系统就是Linux操作系统和Android系统。

和宏内核相反,微内核定义,操作系统的主要组件(例如,内存管理器、进程管理器和I/O管理器)运行在独立的进程中,它们有自己私有的地址空间,在组件之上是微内核提供的一组服务原语。原语是通过进程间通信组成的,频繁的进程间通讯需要以消耗昂贵的CPU时间为代价。而这种代价,换来的是操作系统核心模块的耦合性降低。例如,如果想改变进程模块中进程调度的算法,只需更换进程调度模块,保持原有的原语接口。而在宏内核的操作系统中,各个模块的数据结构紧密结合,牵一发而动全身,即有一个地方稍有改动,则需要进行较大的改动。

Windows NT在设计之初,曾考虑设计成为一个纯粹的微内核操作系统。Windows的所有程序,全部依赖于Win32核心子系统的3大模块,即Kernel32.dll、User32.dll、Gdi32.dll。其中,User32.dll负责对窗口消息的分发处理等,GDI32.dll负责对窗口的图形操作。以前这部分的实现完全是在用户模式下实现的,而在Windows NT 4.0之后,这两个dll的核心代码被放进内核模式下的Win32k.sys,同时也保留了用户模式下的原有的dll。这使得User32.dll和Gdi32.dll变得很小,它们只是负责调用内核模式下的Win32k.sys。这样提高了Windows的绘制图形的效率。因此,Windows能在众多操作系统中,图形能力表现得非常出色。

由此可以看出,Windows不是纯粹的微内核系统,但它在内核的各个组件,达到了相对小的耦合性,同时在效率上克服了微内核效率低的特点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值