【问题标题】:Memory unutilized in 32 bit systems?32 位系统中未使用的内存?
【发布时间】:2013-11-25 01:25:25
【问题描述】:

32 位系统的地址空间是 0x00000000 到 0xffffffff。据我了解,此地址空间将在系统内存 (RAM)、ROM 和内存映射外设之间拆分。如果整个地址空间用于寻址 4GB RAM,则所有 RAM 字节都可以访问。但是地址空间与其他内存映射外设一起分配,这是否意味着某些 RAM 将无法寻址/未使用?

【问题讨论】:

  • 是的;那是真实的。这就是大多数人使用 64 位操作系统的原因。

标签: linux memory memory-management kernel memory-address


【解决方案1】:

Here 是典型 x86 系统的内存映射。如您所见,较低范围的内存充斥着 BIOS 和 ROM 数据,两者之间存在小间隙。有很大一部分是为较高范围内的内存映射设备保留的。所有这些细节可能因平台而异。检测哪些内存区域可以安全使用简直就是一场噩梦。

内核通常还会为其内部、缓冲区和缓存保留大部分可用内存。

随着virtual addressing 的出现,内核可以将地址空间宣传为一个一致且无间隙的内存范围,而这在幕后并不一定如此。

【讨论】:

    猜你喜欢
    • 2013-04-12
    • 2015-11-05
    • 2019-08-29
    • 1970-01-01
    • 2014-08-29
    • 2014-07-05
    • 2012-12-02
    • 2017-06-26
    相关资源
    最近更新 更多