64位操作系统真的能支持16EB内存吗?

一般来说,大家都知道32位系统最大能支持4G内存(2^32,2的32次方),那么64位系统,真的能支持16EB吗(2^64,2的64次方)?

64位操作系统真的能支持16EB内存吗?

这个问题的答案只能说,在很远的将来,理论上是可以支持的,为什么这么说,下面仔细解释一下。

当前,这么大的内存,只能说是可望不可及,一是物理条件达不到,现在也没有这么大内存的系统,二是当前的实现上也达不到。

为什么说达不到呢,当前系统内部不是已经支持64位寻址了吗,2的64次方不就是16EB。

这句话,没错,但是理论和现实总是有差距的。

主要是现在的理论上限是扩大了,程序可使用的虚拟地址空间有2^64,但是当前的系统和应用还没有实际能使用到这么大的空间,不止是现在,在可预见的将来,都看不到实际应用的场景,所以暂时没有必要做的这么大,做了也是浪费,稍微了解点内存管理的就知道会带来其它方面的性能损失。等将来有需要的时候,再扩充就行了。

我们来看看当前的实现,当前实际上是使用了48位。

64位操作系统真的能支持16EB内存吗?

当前高16位,要么取0,要么取1,和47位保持一致,相当于是前16位暂时保持不用,这也就是说当前支持的最大内存是2^48,也就是256TB,后续再分两阶段演进,到56位,再到全部的64位。

实际上,当前系统连256TB估计都用不了,看下当前主流操作系统的支持情况。

这是windows 10的支持情况

Version Limit on X86 Limit on X64
Windows 10 Enterprise

4 GB

2TB

Windows 10 Education

4 GB

2TB

Windows 10 Pro

4 GB

2TB

Windows 10 Home

4 GB

128GB

这是Red Hat Enterprise Linux

Specification Version 3 Version 4 Version 5 Version 6 Version 7
Maximum memory
x86_64 128GB 256GB [1TB] 1TB 12TB [64TB] 12TB [64TB]

其实想想,可能真的有那么大内存的时候,也许整个计算机体系结构都要大变了。