Linux 的 /proc/iomem 里面为什么有一部分不是物理地址? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
wniming
V2EX    Linux

Linux 的 /proc/iomem 里面为什么有一部分不是物理地址?

  •  
  •   wniming 2023-03-09 11:28:50 +08:00 2474 次点击
    这是一个创建于 949 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我之前一直以为 cat /proc/iomem 得到的都是物理地址,直到看到了同事给我发的这张图:

    物理内存只有 8GB ,但内核代码和数据被加载到了 0x8800000000 这么大的地址上,这肯定不是物理地址,我不明白这个地址是处理器的虚拟地址还是内核高地址还是其他什么地址,而且也不理解 iomem 输出一个这样的地址有什么意义
    8 条回复    2023-03-09 16:17:47 +08:00
    x1596357
        1
    x1596357  
       2023-03-09 11:40:44 +08:00
    了解下操作系统的虚拟地址
    wniming
        2
    wniming  
    OP
       2023-03-09 11:44:36 +08:00
    @x1596357 能说详细一点吗?另外虚拟地址我非常了解
    wniming
        3
    wniming  
    OP
       2023-03-09 11:57:04 +08:00
    @x1596357 我现在如果想要知道内核代码和数据的物理地址要怎么看?
    heiher
        4
    heiher  
       2023-03-09 11:57:39 +08:00 via Android
    你说有没有可能存在一种地址空间即不叫物理,也不叫虚拟,并且物理内存(RAM)在该空间的映射不是从 0 开始的呢。
    x1596357
        5
    x1596357  
       2023-03-09 12:15:22 +08:00   1
    @wniming 其他的硬件比如访问总线也是需要地址空间的,所以在 64 位的地址空间,在实际 CPU 是 48 bits 中分配给他们。不然就没办法访问他们。看看 https://stackoverflow.com/questions/13668490/getting-address-of-symbol-from-kernels-symbol-table 是不是你想要的。具体我也不清楚。
    BingoXuan
        6
    BingoXuan  
       2023-03-09 12:20:49 +08:00   1
    是物理地址,只是不同总线影射的物理地址都不一样。要看 cpu 手册,不同 cpu 设计时候分配给不同总线的物理地址不一样。你以为的物理地址不过是内存总线影射的物理地址。
    pipapa
        7
    pipapa  
       2023-03-09 15:47:43 +08:00
    把你的设备树 dump 下来看下,各个设备是怎么映射的就知道了。
    TATQAQTAT
        8
    TATQAQTAT  
       2023-03-09 16:17:47 +08:00
    处理器的寻址空间很大,这个寻址空间就是我们所称的物理地址,其中不仅给随机存储器( RAM ,平常所称的内存)分配了一段地址用来访问,还有 ROM ,还有 PCI 设备映射到寻址空间的地址,还有其他一些外设的寄存器。
    我认为可能是日常语境下把这个寻址空间叫做内存空间,但这个内存是用来指可以被直接寻址的空间,并不单指 RAM (随机访问存储器)造成的混淆
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     920 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 21:18 PVG 05:18 LAX 14:18 JFK 17:18
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86