假设我们有一些x86指令,例如
mov eax,[ebx]
并且[ebx]的值是某个地址0x123456789。
这个地址0x123456789是虚拟地址还是物理地址?
如果是虚拟地址,那么它会在执行进程的进程虚拟地址空间中还是内核虚拟地址空间中?
阅读What Every Programmer Should Know About Memory,它指出“虚拟地址空间由CPU的内存管理单元(MMU)实现”。
因此,是否存在与操作系统无关的CPU虚拟地址空间?为什么需要除内核虚拟地址空间之外的这个?CPU如何执行虚拟到物理的转换而没有操作系统的帮助?
mov eax,[ebx]
并且[ebx]的值是某个地址0x123456789。
这个地址0x123456789是虚拟地址还是物理地址?
如果是虚拟地址,那么它会在执行进程的进程虚拟地址空间中还是内核虚拟地址空间中?
阅读What Every Programmer Should Know About Memory,它指出“虚拟地址空间由CPU的内存管理单元(MMU)实现”。
因此,是否存在与操作系统无关的CPU虚拟地址空间?为什么需要除内核虚拟地址空间之外的这个?CPU如何执行虚拟到物理的转换而没有操作系统的帮助?