什么是 Windows 中的用户模式与内核模式

您可能听说过以“内核”或“用户”模式运行的应用程序。这完全取决于操作系统在完成工作时的工作方式。一旦理解了这一点,就很容易掌握用户模式和内核模式之间的区别。

了解操作系统的作用(Does)

计算机由硬件、电子组件和软件(由该硬件执行的计算机代码)组成。但可能不太清楚的是它们如何协同工作。

计算机最基本的元素是位或“二进制数字”。” 计算机所做的一切都(” Everything)表示为 1 和 0。不同(Different)的计算机组件以不同的方式表示位。在CPU中,微观晶体管通过打开或关闭来表示 1 和 0。这些晶体管被排列成逻辑结构,称为逻辑门。

在电子计算机存储器中,位由具有高于或低于某个阈值的电荷的存储单元表示。在机械硬盘驱动器上,位表示为在旋转盘片上测量的磁波动。在光盘上,反射或不反射激光的凹坑和平台做同样的工作。 

无论二进制代码的物理表示是如何实现的,您最终都可以将所有消费类计算机组件简化为原始机器代码。

那么,如何从计算机的人性化界面转变为计算机本身的原始低级进程呢?这就是操作系统的用武之地。它直接控制计算机的硬件。 

该软件将应用程序(以及用户)想要的所有内容转换为CPU(CPU)和其他组件可以理解的机器代码指令。这个过程中最关键的软件是内核。

什么是内核?

内核,顾名思义,是操作系统的核心。内核是驻留在RAM中的软件,它指导计算机所做的一切。当某些东西被写入内存时,它是指导执行的内核。

内核知道如何与GPU(GPUs)和网卡等硬件接口,但它可能不知道如何充分发挥它们的潜力,依赖于计算机行业的通用标准。

硬件驱动程序在这里发挥作用。驱动程序告诉您的操作系统如何使用特定组件,这就是为什么您需要不同的驱动程序用于NvidiaAMD GPU(AMD GPUs)等。

配备了正确的驱动程序后,内核是计算机中的最终权威,包括可以灾难性地破坏数据的行为。

应用程序编程接口(Application Programming Interfaces)( API(APIs) )的作用(Role)

MS-DOS时代,软件开发人员必须专门为用户的硬件编写软件。在MS-DOS(MS-DOS)系统上最臭名昭著的例子是声卡驱动程序。

给定的视频游戏必须支持最流行的卡(Sound BlasterAd-libGravis Ultrasound等),并希望能覆盖大多数玩家。今天,由于API(APIs),事情的运作方式大不相同。

Microsoft DirectX就是一个很好的例子。如果您想深入了解,请查看什么是 DirectX 以及它为何重要?(What Is DirectX and Why Is It Important?)然而,最重要的是要知道,API为软件开发人员提供了一种从(API)GPU等组件请求硬件资源的标准方式。此外,硬件制造商必须确保他们的产品符合DirectX,以确保与任何同样兼容的软件完全兼容。

API(APIs)在软件应用程序和带有硬件驱动程序的低级内核之间提供了一层转换。是的,这会带来轻微的性能损失。尽管如此,在现代计算机上,这仍然是微不足道的,它带来了各种优势,这就是我们最终来到用户模式和内核模式的地方。

用户模式与内核模式

现代操作系统同时运行成百上千个“进程”,根据它们的优先级和计算能力要求动态地为它们提供CPU时间。(CPU)

当您启动应用程序时,它会生成进程,CPU可以在用户模式或内核模式下执行它们。

在用户模式下运行的Windows进程只能访问自己的私有虚拟内存地址空间和句柄表。该软件使用这些表将数据存储在RAM中并请求资源。无法直接访问内存或其他硬件,操作系统将这些虚拟空间映射到计算机的实际硬件。

这有很多好处,但最关键的好处是应用程序不能覆盖或更改其虚拟内存地址空间之外的数据。此外,某些功能对用户模式进程是禁止使用的,主要是那些可能导致系统崩溃或破坏数据的功能。

当一个进程启动或提升到内核模式时,它可以完全访问系统资源,甚至是为操作系统保留的资源。因此,理论上,它可以覆盖操作系统正常运行所需的关键数据。

陷阱和异常

重要的是要了解这两种模式是由CPU本身在硬件级别强制执行的。如果在用户模式下运行的应用程序尝试执行需要内核模式访问的操作,则会生成“陷阱”或“异常”。然后操作系统将处理应用程序,通常是关闭它并生成崩溃日志,以便开发人员可以看到当事情出轨时内存中发生了什么。

内核(Kernel Mode)模式(Death)危险(Dangers)蓝屏(Blue Screen)死机_

如果您曾经经历过蓝屏死机(Blue Screen)(Death)谁没有?)迫使您的计算机关闭或重新启动,那么很有可能是内核模式进程造成的。

当内核模式下的进程做了不应该做的事情时,操作系统无法从中恢复,整个计算机就会停止。当用户模式进程失控时,只有应用程序崩溃,其余软件和操作系统可以继续运行而不会出现任何问题。

这是API(APIs)发挥重要作用的一个领域,因为它是请求内核模式权限的API 。用户模式应用程序本质上将需要内核模式权限的请求委托给API

这就是为什么内核模式通常只授予需要直接访问计算机硬件的低级系统进程。通常,此权限会扩展到进程,因为它需要比用户模式所能提供的更多的性能。一些CPU指令只在内核模式下工作,所以如果一个进程需要使用这些功能,它必须被提升。

如果您遇到蓝屏(Blue Screen)死机(Death)问题,请务必阅读我们的 Windows 10 蓝屏死机故障排除指南(Blue Screen of Death Troubleshooting Guide for Windows 10)



About the author

我是一名专业的音频工程师,拥有超过 10 年的经验。我参与过各种各样的项目,从小型家庭音响系统到大型商业制作。我的技能在于创造出色的配乐和声音处理工具,让音乐听起来很棒。我对 Windows 10 也非常有经验,可以帮助您充分利用您的计算机系统。



Related posts