operating-system - MS Windows 有什么样的内核?

标签 operating-system kernel

我在 Linux Kernel 上看到了一个问题。在阅读时我有 this doubt .

最佳答案

Windows 的 Windows NT 分支有一个混合内核。它既不是所有服务都在内核模式下运行的单体内核,也不是所有服务都在用户空间中运行的微内核。这提供了从微内核获得的保护和在单体内核中可以看到的性能之间的平衡(因为用户/内核模式上下文切换较少)。

例如,设备驱动程序和硬件抽象层在内核节点中运行,而工作站服务在用户模式下运行。维基百科文章 Hybrid Kernels有一个很好的概述。

Windows Internals这本书解释了混合方法

... The Carnegie Mellon University Mach operating system, a contemporary example of a microkernel architecture, implements a minimal kernel that comprises thread scheduling, message passing, virtual memory, and device drivers. Everything else, including various APIs, file systems, and networking, runs in user mode. However, commercial implementations of the Mach microkernel operating system typically run at least all file system, networking, and memory management code in kernel mode. The reason is simple: the pure microkernel design is commercially impractical because it’s too inefficient.

关于operating-system - MS Windows 有什么样的内核?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1807328/

相关文章:

c - 信号处理 - 异步函数和多线程应用程序,信号堆栈

assembly - 汇编如何在操作系统上工作?

linux - 从等待队列过渡到运行队列

c - 为什么我的内核日志没有显示最新的输出?

java - 堆栈由编译器或操作系统/架构创建

multithreading - 操作系统如何确定应为每个线程分配多少堆栈空间?

linux - 在内核构建中使用交叉编译工具

operating-system - 任务调度器

c - LKM linux_dirent 实现

linux - 文件对象是每个进程的本地对象还是系统范围的?