天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧软件 >> 正文

谁限制了4GB内存 32位Vista大内存实战

2009-6-12IT168评测中心佚名

 



    Vista SP1的幻象:插有多少内存,Vista SP1就会显示多少,不过任务管理器里面只会有3.25GB左右

  实际上,Windows Vista SP1和Windows Server 2008的很多核心文件都是一致的(2008推出的时候SP1已经发布了,因此直接就集成了SP1,或许准确地,所有的2008都应该叫做Windows Server 2008 SP1),也许我们能通过简单的方法让32位Vista能像32位2008一样,可以使用超过4GB的内存。

  很幸运,和XP不同,32位Vista的4GB限制确实不是核心代码上的限制,而是一些其他的限制:在系统启动的时候,将会读取一个值,这个值最终确定了用户可以使用的内存。这个值叫做Kernel-WindowsMaxMemAllowedx86,通过一个未公开的函数ZwQueryLicenseValue来读取,这个值代表着可用的最大内存,如32位Windows上总是0x1000,单位是MB,也就是代表着4GB。

  更多的核心内容,可以看这里(英文):Licensed Memory in Windows Vista,国外的先贤对其进行了系列的研究。

    附概念澄清:32位操作系统并不意味着只能使用4GB内存

  从硬件上讲,所谓的计算机位数是指处理器指令的长度,对硬件来说就是通用寄存器(GPR,General Purpose Registers)的宽度,它并不意味着地址总线的宽度,虽然有些情况下它们碰巧也会相等。对于当前的从80386开始算起的大多数x86处理器来说,通用寄存器的长度就是32位,支持x86-64(或者按照更常见的说法:x64)的处理器则可以支持64位的通用寄存器。32位的PowerPC(G5之前)使用32位的通用寄存器,指令长度固定为32位,DEC Alpha64则基于64位通用寄存器,指令为64位。


    Intel Pentium PRO运行16/32位混合操作系统Windows 95很慢,性能甚至低于运行纯32位操作系统Windows NT

  32位操作系统指的它的指令们只使用32位宽度的GPR,并不意味着它只能的内存寻址就是32位。实际上,早在Pentium Pro(Pentium Pro是一个纯正的32位处理器)上就采用了36位的地址总线(基于这个原因,PAE有时也被称为PAE-36bit),寻址能力就达到了64GB,这个简单有效的扩展就被称为PAE(Phsical Address Extension,物理地址扩展),可见10多年前,x86处理器就能支持这么多的内存了。一再认为32位系统只能支持4GB内存在硬件上就错了。

 
32位XP/2003操作系统通过PAE来支持4GB以上的内存,因此具有“物理地址扩展”的字样


但是32位Vista/2008内部直接使用64位PTE,因此就没有了PAE相关字样   在现代操作系统上,如32位的Windows Vista/7,为了实现与64位的兼容(如,为了驱动程序编写的方便),系统使用了64位的PTE(Page Table Entry,分页表)来管理内存,因此它们就和64位版本一样,也能管理和使用更大的内存。
  既然知道了32位Vista通过ZwQueryLicenseValue函数来决定系统能使用多少内存,而不是通过编写内存管理功能时就加上的限制,那么相对来说,让32位Windows突破4GB的限制就比较简单了。

 

  启动时系统在NTKRNLPA.EXE内核文件中使用了这样的代码:

 

Opcode Bytes
目标码 Instruction
汇编指令
7C 
						xx
jl      default
8B 45 FC
mov     eax,dword ptr [ebp-4]
85 C0
test    eax,eax
74 
						yy
je      default

 

  执行中,eax寄存器中保存了ZwQueryLicenseValue的状态值,在通常情况下,系9 7 3 1 2 3 4 4 8 :

本文来源:IT168评测中心 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行