我知道.exe文件包含处理器的指令(操作码?)。现在,当我运行exe文件时,windows查看文件并为进程分配内存,依此类推......
Windows是否只是指示处理器开始执行该文件中的代码?那么Windows如何确保代码不会使系统崩溃(例如,覆盖窗口所在的RAM的一部分)
或
Windows会以某种方式解析exe文件并检查“不安全”吗?代码,然后将其交给处理器运行它?
答案 0 :(得分:1)
包括Windows在内的现代操作系统通常以两种模式运行 - 内核模式和用户模式。在内核模式中,您可以找到操作系统内核,硬件驱动程序和其他低级代码。用户应用程序以用户模式运行,其中操作系统为您的用户进程提供虚拟地址空间。用户进程无法从用户模式读取/写入内核地址空间,因此您无法从用户程序中崩溃Windows。实际上你曾经能够。这就是Windows 98中的BSOD。
不要过于简单化,您可以在此链接中找到更多信息:
https://docs.microsoft.com/en-us/windows-hardware/drivers/gettingstarted/user-mode-and-kernel-mode
编辑:值得注意的是硬件支持内核模式和用户模式的分离。