MS Windows 有啥样的内核?
Posted
技术标签:
【中文标题】MS Windows 有啥样的内核?【英文标题】:What kind of kernel does MS Windows have?MS Windows 有什么样的内核? 【发布时间】:2010-12-20 21:49:41 【问题描述】:我看到一个关于 Linux Kernel 的问题。读到我有this doubt。
【问题讨论】:
关于各种类型内核的讨论,通常是从有偏见的角度出发,想给它起个名字的。所有主要的内核实现都是模块化的,但是非常庞大。 Windows 的模块化程度不亚于 Linux、OSX、android 或任何其他非实验性或专业操作系统。 【参考方案1】:根据Wikipedia 是Hybrid kernel。这可能只是市场营销,也可能不只是与整体营销一样。不过,后一页上的图形确实使一些事情更清楚了。
最重要的是,Windows 上几乎没有程序直接使用内核 API。完整的 Windows API 子系统驻留在用户空间中,正如我们所见,用户空间是操作系统的很大一部分。在最近的版本中,Microsoft 开始将越来越多的设备驱动程序从内核空间拉入用户空间(这对于某些驱动程序来说尤其是一个好主意,例如对于可能与操作系统本身一样复杂的显卡)。
【讨论】:
谢谢.. ***说“混合”这个类别是有争议的,因为它与单片内核相似。【参考方案2】:Windows 的 Windows NT 分支有一个混合内核。它既不是所有服务都在内核模式下运行的单片内核,也不是所有东西都在用户空间中运行的微内核。这在从微内核获得的保护和在单体内核中可以看到的性能之间提供了平衡(因为用户/内核模式上下文切换较少)。
例如,设备驱动程序和硬件抽象层在内核节点中运行,而工作站服务在用户模式下运行。 Hybrid Kernels 上的***文章有一个很好的概述。
Windows Internals 这本书解释了混合方法
...卡内基梅隆大学马赫 操作系统,当代 微内核架构的示例, 实现了一个最小内核 包括线程调度、消息 传递、虚拟内存和设备 司机。其他一切,包括 各种 API、文件系统和 网络,在用户模式下运行。 然而,商业实施 Mach 微内核操作系统 通常至少运行所有文件系统, 网络和内存管理 内核模式下的代码。原因是 简单:纯微内核设计是 商业上不切实际,因为它 效率太低了。
【讨论】:
【参考方案3】:hyru 混合内核是 Windows 98 之后 Windows 系统的内核的名称,在此之前它是使用单片内核覆盖在 DOS 上的 GUI。
【讨论】:
以上是关于MS Windows 有啥样的内核?的主要内容,如果未能解决你的问题,请参考以下文章