被告知,Windows NT最初是为了实现微内核架构而设计的,但后来转向了混合内核。
是什么导致了这种变化?我在尝试查找有关此的任何信息时遇到麻烦。
Windows NT成为混合内核的主要原因是速度。基于微内核的系统只将最低限度的系统组件放在内核中,并将其余组件作为用户模式进程(称为服务器)运行。进程间通信 (IPC) 的一种形式(通常是消息传递)用于服务器和内核之间的通信。
基于微内核的系统比其他系统更稳定;如果服务器崩溃,它可以重新启动而不会影响整个系统,如果每个系统组件都是内核的一部分,则无法做到这一点。但是,由于 IPC 和上下文切换产生的开销,微内核比传统内核慢。由于微内核的性能成本,Microsoft决定保留微内核的结构,但在内核空间中运行系统组件。从 Windows Vista 开始,某些驱动程序也在用户模式下运行。