码迷,mamicode.com
首页 > Windows程序 > 详细

windows与内核

时间:2015-03-13 12:21:32      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

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

    和单一内核相反,微内核定义,操作系统的主要组件(例如,内存管理器、进程管理器和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不是纯粹的微内核系统,但它在内核的各个组件,达到了相对小的耦合性,同时在效率上克服了微内核效率低的特点。

windows与内核

标签:

原文地址:http://www.cnblogs.com/zhanzhao/p/4334646.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!