zoukankan      html  css  js  c++  java
  • windows与内核

     微内核的概念与单一内核的概念是相互对立的。单一内核,一般是将系统的主要核心组件全部在内核实现。例如,内存管理器、进程管理器和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不是纯粹的微内核系统,但它在内核的各个组件,达到了相对小的耦合性,同时在效率上克服了微内核效率低的特点。

  • 相关阅读:
    delegate
    Event
    SQL:删除重复数据,只保留一条
    c#符号
    linux下vim命令详解【转】
    Probabilistic latent semantic analysis【转】
    Ubuntu下如何使用虚拟机安装WindowsXP?(2)【转】
    C文件操作fopen打开标记设置问题【学习笔记】
    Plate notation【转】
    最大似然估计(Maximum likelihood estimation) 【转】
  • 原文地址:https://www.cnblogs.com/zhanzhao/p/4334646.html
Copyright © 2011-2022 走看看