adamwin2011 发表于 2012-9-27 17:13:08

谁知道XP/32bit为什么不支持4G的内存?8L已回答!!!!

本帖最后由 adamwin2011 于 2012-9-27 22:10 编辑

今天听同事说起,XP不支持4G内存,我还不相信
因为自己电脑最多用到3G过,因此也没有注意这个事{:sweat:}
上网查了一下
原来是32位的系统不支持4G内存,而非XP
你像vista 也不行
32位的系统最多支持到3.25G,多余的是浪费
想知道为什么????

NemoGu 发表于 2012-9-27 17:24:51

2^32 = 4GB
就这么简单

90999 发表于 2012-9-27 17:43:29

8G照用,XP X86要打PATCH,VISTA X86不知道

error_dan 发表于 2012-9-27 19:53:37

因为寻址只能寻到这么多,你看看51能支持多大空间就知道了。另外想要大内存可以上linux用PAE内核,只要主板支持还能再扩大。XP的话用PAE之是能认出来但是没法当内存用,不过做RAMdisk什么的也是非常快的哦。。。

adamwin2011 发表于 2012-9-27 20:05:27

error_dan 发表于 2012-9-27 19:53 static/image/common/back.gif
因为寻址只能寻到这么多,你看看51能支持多大空间就知道了。另外想要大内存可以上linux用PAE内核,只要主板 ...

嗯,3Q
……

wmm20031015 发表于 2012-9-27 21:36:41

多出来的做成虚拟盘,放交换文件也是一样的

dhyana 发表于 2012-9-27 21:43:02

说了半天,还是没有说为什么不是4G而是3.25G

dhyana 发表于 2012-9-27 21:45:13

因为约750M的内存,被一些设备映射所占用了.按照官方说法,是"PCI 内存范围"

adamwin2011 发表于 2012-9-27 22:09:23

dhyana 发表于 2012-9-27 21:45 static/image/common/back.gif
因为约750M的内存,被一些设备映射所占用了.按照官方说法,是"PCI 内存范围"

谢谢
上面的几位回答让我似懂非懂
刚刚我还在为我的智商感到担忧时
最佳答案出现了
简单、明了、准确

ilivemygf 发表于 2012-10-22 14:28:04

不是那回事,基本是微软在搞鬼,在传统的32位的保护模式中,x86处理器使用一种两级的转换方案。在这种方案中,控制寄存器CR3指向一个长4KiB的页目录(page directory);页目录又分为每个1024个每个4KiB的页表(page table);最后页表又分为1024个每个长4KiB的页。

启用PAE(通过设置控制寄存器CR4的第5位来启用)会改变上面的方案。默认情况下,每页的大小是4KiB的。页表和页目录中的表项都从32位扩为64位(8字节)以使用附加的地址位。但是,页表和页目录的总大小不变。所以,页表和页目录现在都只有512个表项。因为这变成了原来方案的一半,所以另外的一个级加了进来:CR3现在指向的是页目录指针表,即一个包含4个页目录指针的表。

页目录里的表项的第7位叫做PS(Page Size)。如果这个位设为1,则页目录的表项不再指向页表,而是指向一个2MiB的页。页目录里还有另外一个叫NX位的标志位。它是第63位,表示No eXecute。因为页表项最高的12位,要么是这种标识位,要么是和操作系统相关的数据,所以最多可有52位在将来用于在252 字节,即4pebibyte的物理内存中寻址。

现在,x86架构只使用该52位中的36位(即最大支持内存2^36=64G)。对于在长模式(long mode)中的x86-64处理器,PAE是必须的;其中使用了52位中的40位。

CPU对PAE模式的支持可以通过CPUID标志PAE来识别。


Windows XP SP2和其他新的版本,默认在有no-execute (NX)和execute-disable (XD)特性的处理器上以PAE模式运行以允许NX。NX(或XD)在页表项的第63位。如果没有PAE,页表项只就32位;所以要利用NX这个特性的话,就必须运行在PAE模式下。但是,为了与驱动程序兼容,桌面版的Windows(Windows XP, Windows Vista)都把物理地址空间限制为4GiB。(转自网络)
页: [1]
查看完整版本: 谁知道XP/32bit为什么不支持4G的内存?8L已回答!!!!