我在Linux内核上看到了一个问题。阅读时我有this doubt。
答案 0 :(得分:5)
根据Wikipedia,它是Hybrid kernel。营销可能会或可能不会仅仅与单一营销相提并论。然而,后一页上的图形确实使一些事情变得更加清晰。
最重要的是,Windows上几乎没有程序直接使用内核API。完整的Windows API子系统驻留在用户空间中,这是我们看到的操作系统中相当大的一部分。在最近的版本中,微软开始将越来越多的设备驱动程序从内核空间引入用户空间(对于某些驱动程序尤其是一个好主意,例如对于可能与操作系统本身一样复杂的视频卡)。
答案 1 :(得分:5)
Windows的Windows NT分支具有混合内核。它既不是所有服务在内核模式下运行的单片内核,也不是一个在用户空间中运行的Micro内核。这提供了从微内核获得的保护与单片内核中可以看到的性能之间的平衡(因为用户/内核模式上下文切换较少)。
例如,设备驱动程序和硬件抽象层在内核节点中运行,但Workstation服务在用户模式下运行。关于Hybrid Kernels的维基百科文章有一个很好的概述。
Windows Internals书给出了混合方法的解释
......卡内基梅隆大学马赫分校 操作系统,现代 微内核架构的例子, 实现了一个最小的内核 包括线程调度,消息 传递,虚拟内存和设备 驱动程序。其他一切,包括 各种API,文件系统和 网络,在用户模式下运行。 但是,商业实施 Mach微内核操作系统 通常运行至少所有文件系统, 网络和内存管理 内核模式下的代码。原因是 简单:纯微内核设计是 商业上不切实际,因为它是 太低效了。
答案 2 :(得分:4)