用户模式和内核模式

运行 Windows 的计算机中的处理器在两种不同的模式下运行: 用户模式内核模式。 处理器根据它正在执行的代码类型在这些模式之间切换。 应用程序在用户模式下运行,而核心操作系统组件在内核模式下运行。 尽管许多驱动程序在内核模式下运行,但有些驱动程序可以在用户模式下运行。

用户模式

在用户模式下启动应用程序时,Windows 会为其创建一个 进程 。 此过程为应用程序提供专用 虚拟地址空间 和专用 句柄表。 由于每个应用程序的虚拟地址空间都是专用的,因此一个应用程序无法修改另一个应用程序的数据。 每个应用程序单独运行,确保如果一个应用程序崩溃,不会影响其他应用程序或操作系统。

用户模式应用程序的虚拟地址空间也受到限制。 在用户模式下运行的进程无法访问为操作系统保留的虚拟地址。 限制用户模式应用程序的虚拟地址空间可防止应用程序修改或损坏关键操作系统数据。

内核模式

在内核模式下运行的所有代码共享单个 虚拟地址空间。 因此,内核模式驱动程序不会与其他驱动程序或操作系统隔离。 如果内核模式驱动程序错误地写入错误的虚拟地址,则可能会泄露属于操作系统或其他驱动程序的数据。 如果内核模式驱动程序崩溃,则会导致整个操作系统崩溃。

下图演示了用户模式和内核模式组件之间的通信。

显示计算机系统中用户模式和内核模式组件之间的通信的关系图。

虚拟地址空间