1
x1596357 Mar 9, 2023
了解下操作系统的虚拟地址
|
4
heiher Mar 9, 2023 via Android
你说有没有可能存在一种地址空间即不叫物理,也不叫虚拟,并且物理内存(RAM)在该空间的映射不是从 0 开始的呢。
|
5
x1596357 Mar 9, 2023 @wniming 其他的硬件比如访问总线也是需要地址空间的,所以在 64 位的地址空间,在实际 CPU 是 48 bits 中分配给他们。不然就没办法访问他们。看看 https://stackoverflow.com/questions/13668490/getting-address-of-symbol-from-kernels-symbol-table 是不是你想要的。具体我也不清楚。
|
6
BingoXuan Mar 9, 2023 是物理地址,只是不同总线影射的物理地址都不一样。要看 cpu 手册,不同 cpu 设计时候分配给不同总线的物理地址不一样。你以为的物理地址不过是内存总线影射的物理地址。
|
7
pipapa Mar 9, 2023
把你的设备树 dump 下来看下,各个设备是怎么映射的就知道了。
|
8
TATQAQTAT Mar 9, 2023
处理器的寻址空间很大,这个寻址空间就是我们所称的物理地址,其中不仅给随机存储器( RAM ,平常所称的内存)分配了一段地址用来访问,还有 ROM ,还有 PCI 设备映射到寻址空间的地址,还有其他一些外设的寄存器。
我认为可能是日常语境下把这个寻址空间叫做内存空间,但这个内存是用来指可以被直接寻址的空间,并不单指 RAM (随机访问存储器)造成的混淆 |