32位系统的地址空间为0x00000000到0xffffffff。据我所知,这个地址空间将分为系统内存(RAM),ROM和内存映射外设。如果整个地址空间用于4GB RAM上的地址,则可以访问所有RAM字节。但地址空间与其他内存映射外设一起分发,这是否意味着某些RAM将无法寻址/未使用?
答案 0 :(得分:0)
Here是典型x86系统的内存映射。正如您所看到的,较低范围的内存中充斥着BIOS和ROM数据,两者之间的间隙很小。在较高范围内为内存映射设备保留了大部分内容。所有这些细节可能因平台而异。检测哪些内存区域可以安全使用,这简直就是一场噩梦。
内核通常还为其内部,缓冲区和缓存保留了大部分可用内存。
随着virtual addressing的出现,内核可以将地址空间公布为一个一致且无间隙的内存范围,而在幕后不一定如此。