引用: 引用 5 楼 hhyh612 的回复:
内核空间和用户空间都是虚拟地址
物理地址是虚拟地址经过MMU翻译后的地址,也就是总线上地址
基本概念要弄清楚呵呵
这个我知道
你说的物理地址和虚拟地址 是针对arm 来说的
arm有虚拟地址和物理地址之分,对于WINCE来说,也有虚拟地址和物理地址之分. 可以这么说,ARM的虚拟地址就是WINCE系统的物理地址.
32位的OS总共有4G的虚拟地址空间, 其中,0x00000000~0x80000000是Application Space; 0x80000000~0xffffffff是System Reserved. 系统的物理地址就在System Reserved的这段,只能在KERNEL MODE访问. 当APPLICATION和DRIVER(都是运行在USER MODE)要访问这些在System Reserved地址段的硬件寄存器或MEMORY 只好再建立一层映射关系,在Application Space里分配一段空间,把它映射到System Reserved里的地址上,这就是VirtualAlloc/Copy和MmMapIoSpace干的事情.