在具有32位操作系统的计算机上安装> 4GB RAM时会发生什么?


10

所以我是一名程序员,但我不是一个完全白痴,所以我确切地知道了为什么您不能在没有指针的地方访问内存。但是我从来没有尝试过,我也从来没有尝试过,因为这似乎在浪费金钱/时间。

我只是想知道是否有任何工具可以让我访问我的himem(您认为现在我们已经解决了这个问题)。



谢谢,这也是一个很好的答案,我可能只需要结束这个问题。 serverfault.com/questions/3342/...
彼得·特纳

Answers:


20

如果您的处理器具有“ 物理地址扩展名”(您可能已这样做)和正确的操作系统(例如,不是Windows的消费者版本,则使用PAE,但上限为4GB),则可以正常映射和使用内存。否则,内存将不会被寻址,操作系统会告诉您,您有很多芯片,无论它们有多大,但它们不会被添加到您可以访问的内存量中。


3
为什么Windows的普通版本不支持PAE?使用Linux的另一个原因...
Zifre

1
因为64位/服务器版本的成本更高。
马丁·贝克特

2
甚至Windows的消费者版本都支持PAE-尽管出于兼容性和市场原因,它们的上限为4 GB。(PAE仍用于“数据执行保护”功能。)
1686 2009年

3
@Zifre,许多面向消费者的驱动程序无法应付Windows上的PAE和4G以上的RAM。因此,启用PAE通常会导致神秘的崩溃,因此仅用于服务器版本,在服务器版本中,您大概会安装为大量内存设计的更高质量的驱动程序。
bdonlan

bdonlan:消费者版本中也启用了PAE,因此它们只有人为的4 GB限制。
user1686

1

事情会很好地进行,因为4GB是32位处理器的限制。 是一篇更深入的文章,实际上表明您可以在32位OS上安装和使用超过4GB的内存。


除了并非所有实际地址空间都必须专用于物理内存。
杰森S

抱歉,我的意思是超过4GB,只是2 ^ 32以上的范围。
彼得·特纳

1

我认为从技术上讲,如果操作系统经过精心设计,则可以使用4GB以上的内存。我没有理由认为具有虚拟内存功能的OS不能使用32位虚拟地址和64位实际地址。


1

取决于您的意思是32位操作系统!

当然,在现代操作系统上,您可以插入尽可能多的主板而不会出现问题(尽管您可能无法全部使用),但并非总是如此,至少对于Windows而言:

如果您安装的内存超过512MB,则会出现Windows 95、98,SE和ME中的错误。

http://answers.google.com/answers/threadview/id/333688.html


0

首先要了解的是,现代计算机系统使用虚拟内存。您可以为应用程序使用32位虚拟地址,同时具有大于32位的物理地址。

要了解的第二件事是物理地址空间用于各种用途,最主要的是主内存和内存映射的特性。特别是图形卡通常具有较大的内存映射区域。结果是,如果只有4GB的可用物理地址空间,则最终可能会得到少于4GB的可用内存。通常大约有3.5 GB的可用空间,但我看到的系统的可用空间低至2.5 GB。

在支持超过4GB物理地址空间的PC上,使用一种称为PAE的机制。为此,需要做几件事。

  1. CPU必须支持它。
  2. 芯片组必须支持它。
  3. BIOS必须支持它。
  4. 操作系统必须支持它。

CPU支持PAE已有很长时间了,这不是问题。

许多较旧的芯片组仅限于4GB的物理地址空间。IIRC英特尔笔记本电脑芯片组在2007年的“ Santa Rosa”世代中获得了超过4GB的地址空间支持。我不确定台式机芯片组,但我希望它是在同一时间。工作站/服务器芯片组显然早就获得了支持。

如果芯片组支持,则Afaict BIOS大多支持它。尽管有一些例外,也不会令我感到惊讶。

操作系统是一个棘手的问题。Linux和Windows都支持PAE已有很长时间了。不幸的是,由于Windows XP Service Pack 2 MS已人为地将物理地址空间限制为4GB。他们声称这样做是由于驱动程序错误,愤世嫉俗的人怀疑他们这样做是为了强迫人们购买服务器版本。

在Windows XP中,它已植入内核,并且基本上无法撤消。但是,在更高版本中,可以通过对内核的一些小技巧来绕过它。有关详细信息,请参见https://wj32.org/wp/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.