Mat*_*ton 22 memory operating-systems 64-bit 32-bit 16-bit
16、32、64位机器的理论内存限制如下:
16 位 = 65,536 字节(64 千字节)
32 位 = 4,294,967,296 字节(4 GB)
64 位 = 18,446,744,073,709,551,616(16 艾字节)
我记得从 DOS/Windows 3.11 天开始,16 位内存可以分成段,这样 16 位机器可以访问比 64 KB 更大的内存量。
我有一台内存为 16GB 的机器,并且正在双启动 32 位操作系统和 64 位操作系统。我可以从 64 位访问所有 16GB,但在 32 位中只能访问 3.21GB。
所以,我的问题是:如果 16bit 操作系统由于内存分段允许大于 64KB 的内存访问,为什么 32bit 机器不遵循相同的原则?
Sco*_*ain 23
他们这样做,该系统称为物理地址扩展(PAE)。这是Windows 操作系统及其最大内存的列表,任何允许超过 4GB RAM 的 32 位系统都使用 PAE 访问内存(例如,Windows 2003 R2 Datacenter 32 位允许 128GB 内存)。
事实上,Windows 8的最低要求是需要一个支持 PAE 的 CPU 。
要解决有关为什么 32 位操作系统无法访问内存(如果存在)的“未询问”问题:许可。他们选择不允许 32 位操作系统的 RAM 超过 4GB,除非您为数据中心版本付费(这就是他们销售数据中心版本的原因,如果您需要那么多内存,您可能可以负担得起更多操作系统上的钱)。
0xC*_*22L 15
我不会自己解释,而是让那些必须在 PAE 支持下维护内核的人用他迷人的方式说话,Linus Torvalds
还要记住,Windows 32 位版本中的 PAE 支持需要大量现金。XP 甚至无法正常使用满 4 GiB 的 RAM,因为 MS 选择在其上不启用 PAE 功能。与 Windows 2003 Server 密切相关的内核确实支持 PAE。但是,即使在那里,您的“标准版”也最多只能支持 4 GiB(但会绕过 BIOS 内存漏洞),而更昂贵的版本则最多可支持 64 GiB 的 RAM。这同样适用于32 位 Vista。
但是,并非在所有情况下都是 Windows 强加的这种限制。如果是这样,启动支持 PAE 的 Linux 内核仍然可以使用完整的 4 GiB(或更多)。并非如此,一些硬件制造商选择在 BIOS 级别强加此限制,尽管 CPU 和芯片组将能够处理 PAE。
只是一个旁注:当前基于 x86 的 64 位处理器甚至都不能在物理上寻址整个 64 位地址空间(请参阅此问题和答案以供参考)。
| 归档时间: |
|
| 查看次数: |
121623 次 |
| 最近记录: |