- 论坛徽章:
- 59
|
回复 1# skyrim
关于x86 io 端口,它的64k io端口是无法映射到内存空间的吧?只能通过in out指令访问,而且io内存地址的低64k也不是io端口的地址吧?就是说这两者没有任何包含关系?
yes. you are right
/proc/iomem下面列出cfee0000-ffffffff的地址是总线地址,而非虚拟地址,占据了总线地址的高段,而低3.2G左右的总线地址被物理内存占用,这也是为什么在没有开启PAE的32位Linux下显示物理内存只有3.2G左右的原因。
而/proc/vmalloc显示的是虚拟地址,所以两者有冲突不奇怪。不知道这个理解对否?
yes, application will use virtual addr to access memory, the applicaton's cfee0000-ffffffff is not the same as the kernel's cfee0000-ffffffff zone.
如果这个理解没错,那么如果在一个没有开启PAE的32位系统上插了一块2G显存的显卡,岂不是总线地址有2G都要被占用?
yes, in this case, there are 2G memory be masked and become not accessable.
the same case occurred the the memory become not accessable that the ROM occuppied.(in some machine, you can mask rom out, so the ROM became not accessable.) |
|