1

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

4

1 回答 1

0

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

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

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

于 2013-11-12T23:06:36.543 回答