日期:2014-05-16  浏览次数:20604 次

linux 64位CPU内存限制

一个系统的内存大小限制取决于CPU和操作系统,当然啦,也受限于物理硬件,比如主板、安装了多大的内存条等等。

众所周知,32位的Intel CPU能够支持4G的物理内存,打开PAE后(有36根地址线)可以支持64G的物理内存。对于Linux而言,一个进程空间的大小为4G,其中用户空间可以使用3G。

那么64位系统呢?

理论上讲,64位的地址总线可以支持高达16EB(2^64)。EB是什么概念,我也不晓得。K->M->G->T->P->E

The emergence of the 64-bit architecture effectively increases the memory ceiling to 2^64 addresses, equivalent to approximately 17.2 billion gigabytes, 16.8 million terabytes, or 16 exabytes of RAM.
From: http://en.wikipedia.org/wiki/64-bit#History

但实际上,这么大的地址空间对于目前的形式而言绝对是浪费了。

AMD64架构支持52位(4PB)的地址总线和48位(256TB)的虚拟地址空间。

The AMD64 architecture has a 52-bit limit on physical memory and currently only supports a 48-bit virtual address space[1]. Still, that represents 4 petabytes and 256terabytes respectively.
From: http://en.wikipedia.org/wiki/64-bit#Limitations

64位的Linux则分别支持46位(64TB)的物理地址空间和47位(128T)的进程虚拟地址空间。

64-bit Linux allows up to 128 TiB (140,737,488,355,328 bytes) of address space for individual processes, and can address approximately 64 TiB (70,368,744,177,664 bytes) of physical memory, subject to processor and system limitations.
From: http://en.wikipedia.org/wiki/X86-64#Linux

即便这样,在目前的应用下也绝对够用了。

 

windows

简单的说x86代表32位操作系统 x64代表64位操作系统。如果你的CPU是双核以上,那肯定支持64位操作系统了。如果你的电脑内存大于4G,那就要用64位的系统了,因为32位的Windows 7也好,Vista也好,最大都只支持3.25G的内存。而64位的windows 7最大将支持128G的内存。