- 运行hex editor(十六进制编辑器 说明:软件下载链接见页面下的参考网站),将c:\windows\system32 tkrnlpa.exe文件复制一份,然后搜索以下特征串:7c (xx) 8b 45 fc 85 c0 74 (yy)。应该能找到2处,然后把两个地方都改成:7c (xx) b8 00 00 02 00 90 90,保存为例如c:\windows\system32\mykernel.exe。
- 用visual studio tools里面的editbin.exe:editbin /release mykernel.exe,来修改checksum。
- 装一个windows sdk(编程工具 说明:软件下载链接见页面下的参考网站),在sdk的命令行里面,运行:makecert -r -ss my -n "CN=my test ca"和signtool sign -s my -n "my test ca" mykernel.exe。
- 创建一个新的boot记录,使用修改过的kernel:
- bcdedit /copy {current} /d "Windows 7 with pae"
- bcdedit /set {id} pae ForceEnable
- bcdedit /set {id} kernel mykernel.exe
- bcdedit /set {id} testsigning on
- 重启后boot菜单选“windows 7 with pae”。 进去后看任务管理器里面的物理内存。以下是成功设置后的显示效果:
- 比起4G限制的32位系统来,64位版的可以有效利用更多内存。从这句话可以看出,4G是个分水岭。低于4G内存,32位系统照跑不误,但是高于4G后,就需要64位才能充分利用这么大的内存了。
- 4G的限制所有安装的内存总和,而不仅仅是RAM。也就是说,你的系统内存(内存条),显卡专用内存(显存),PCI内存扩展,ACPI扩展以及其他零零碎碎的加起来,不能大于4G。如果你认为系统内存是唯一重要的因素,现在再想想。我们完全可以买张1G内存的显卡或者1G的内存条,当然如果有多余的钱的话,还可以买3G的内存条。
- 很多人不知道为什么会有4G的限制,下面我们来看看是怎么算出来的:
- 32位系统下支持的最大内存容量为:2^32 = 4,294,967,296 bytes。4,294,967,296 / (1,024 x 1,024) = 4,096 MB = 4GB
- 而在64位系统下,这个数字为:2^64 = 18,446,744,073,709,551,616。18,446,744,073,709,551,616 / (1,024 x 1,024) = 16EB (exabytes)
- 如果你的系统拥有4GB内存或RAM,还有一块512MB显存的显卡,那么只有其中的3GB左右是可以得到充分利用的。如果想要换块更大显存的显卡,或者想要用2块显卡进行混合交火或SLI双路渲染的话,最好还是考虑一下换用64位系统。
- 方法中的步骤应该从vista到目前最新的win7都是可用的,另外注意升级build后需要重新patch一遍,老版本的patch kernel应该无法启动的。
- 人们往往会将“内存”和“RAM”搞混淆,会把内存误认为就是RAM,这个错误的概念让不少人都付出了昂贵的代价,因为这些人购买了预装4GB内存或RAM并预装32位Vista的机器。而直到买回来后,才发现根本无法充分利用这么庞大的内存。
- 32位的Windows 7里面所谓的支持4G内存仅仅是体现在能够识别出4G,但是只能用3.25G。
32位Windows 7使用4G以上内存的方法: