Operating system 环0程序是否使用物理内存地址?

Operating system 环0程序是否使用物理内存地址?,operating-system,x86,x86-64,virtual-memory,computer-architecture,Operating System,X86,X86 64,Virtual Memory,Computer Architecture,我正在设计一个内存芯片,因为这似乎是问相关系统软件问题的最佳地方 在现代x86处理器上,系统级代码(保护环0)是否在物理内存地址上运行? 64位规范也一样吗 (我需要知道系统代码的地址是否通过虚拟/分段内存子系统。)它们与任何其他代码一样运行。环0与其他环之间的唯一区别在于环0可以执行特权指令,从而修改内存地址空间和结构。但是,此权限并不意味着环0不能像任何其他代码一样使用虚拟内存。从技术上讲,可以运行环0中的所有进程并保持相同的虚拟内存行为,前提是这些进程不尝试修改它。也可以在没有虚拟内存地址

我正在设计一个内存芯片,因为这似乎是问相关系统软件问题的最佳地方

在现代x86处理器上,系统级代码(保护环0)是否在物理内存地址上运行? 64位规范也一样吗


(我需要知道系统代码的地址是否通过虚拟/分段内存子系统。)

它们与任何其他代码一样运行。环0与其他环之间的唯一区别在于环0可以执行特权指令,从而修改内存地址空间和结构。但是,此权限并不意味着环0不能像任何其他代码一样使用虚拟内存。从技术上讲,可以运行环0中的所有进程并保持相同的虚拟内存行为,前提是这些进程不尝试修改它。也可以在没有虚拟内存地址空间的情况下运行权限较低的环进程。

它们与任何其他代码一样运行。环0与其他环之间的唯一区别在于环0可以执行特权指令,从而修改内存地址空间和结构。但是,此权限并不意味着环0不能像任何其他代码一样使用虚拟内存。从技术上讲,可以运行环0中的所有进程并保持相同的虚拟内存行为,前提是这些进程不尝试修改它。也可以在没有虚拟内存地址空间的情况下运行权限较低的环进程。

不,它仍然是一种平面虚拟内存模型。驱动程序代码和数据可以正常调出,除非采取特定措施锁定页面。例如,一个常见的蓝屏停止代码是内核\数据\页面\错误


映射物理内存的典型调用是MmAllocatePagesForMdl()

不,它仍然是一个平面虚拟内存模型。驱动程序代码和数据可以正常调出,除非采取特定措施锁定页面。例如,一个常见的蓝屏停止代码是内核\数据\页面\错误


映射物理内存的典型调用是MmAllocatePagesForMdl()。有一个优化。。。谢谢。啊,好的。有一个优化。。。非常感谢。