x86 虛擬空間配置

在 32 bits 平台下,Linux 前 3G 的 virtual space (0x00000000 ~ 0xC0000000) 提供給 user space 用,而後 1G 給 kernel space 用。但在 Windows 中,預設是 2G 給 user space 用,2G 給 kernel space 用。Windows 在 boot.ini 中可以加入 /3G 選項來達到跟 Linux 一樣的配置。


在 Intel Pentium Pro 之後,CPU 事實上有 36 條位址線。等於說可以有 64GB 的實體記憶體。注意此是指實體記憶體,虛擬記憶體一樣是 4G,因為 32 bits CPU 的 pointer 就只是 32 bits。要使用 64G 的 physical memory,就必須更改 paging 的方式。要達到這個功能,就必須啟動 Physical Address Extension (PAE) 功能。


程式則可以透過像 Linux 中的 mmap() 方式將超過 4G 的 physical memory 對應到 4G 的虛擬空間內,如此就可以使用到超過 4G 的 physical memory。


留言

熱門文章