; b1 Q4 ]4 d: e7 S5 V+ ^$ u
自行进行修改
) u7 o8 L! o" ]: K0 Y5 E. W/ w3 w$ r
为了
安全,这个补丁默认启动正常的核心文件,需要手动选择加入的新选项才能使用NTKR128G.EXE启动
以下为可选命令:
& }+ N ~7 Y: Z7 j$ ]( }( U
启动菜单10秒选择时间:
# R7 K. E. y) {/ j" u( w
bcdedit -timeout 10
3 }+ q) K) V0 b将指定的GUID代表的启动选项设置为第一项,GUID可以通过bcdedit命令显示出来(resumeobject):
4 x1 ]3 H$ |8 Q4 }0 T# Ybcdedit -displayorder GUID -addfirst
. L& h( K3 l- }* O. L. I) l9 `修改默认启动为GUID代表的启动选项
! j( ]6 E; X: D4 h; M3 V2 wbcdedit -default GUID
! _+ x2 Y- j4 X/ F# p2 [; j0 O
* z3 U+ Y& V8 P7 A( y" V+ O
6GB容量
成功之后,系统将可以应用超过4GB以上的
内存。虽然经过修改,已经解决了大
内存支持的问题(顺便也解决了MMIO吃掉
内存的问题),然而,在32位环境无法解决的是,进程的地址空间的问题。因为架构的原因,
现代的普通32bit
操作系统上,每一个用户模式的应用程序可以寻址的通常只有2GB(有一个选项可以让其增大为3GB)。提供多于4GB容量的
内存,每一个用户模式的应用程序可以寻址的容量仍然没有改变——尽管不同的应用程序都具有互相独立的的2GB寻址空间可以让大
内存电脑同时运行多个不同的程序。
2 Y5 V# r G( r4 R/ W# d
! k) d( S, Z# Q6 R: @. C
通常,64位的应用程序才可以使用超过2GB的内存;64位应用程序的寻址空间是4TB
图中部的Virtual Size显示了一个程序使用的地址空间,Working Set则是其所有占用的内存(包括映射的系统文件),Private Bytes则是完全由程序自己占用的私有内存
通常的应用程序就受到了这个限制,例如,在使用如Maxthon这样的多页面浏览器打开70个图片页面的时候,程序的寻址空间就已经到达2GB了,这时虽然其工作集并不大,然而程序已经无法寻址更多的内存;继续打开新的页面只会让Maxthon崩溃。
6 Q* q7 N# \- U2 }7 r7 Q8 q G7 ?
7 l1 L& Z. m+ c 为了让程序
突破(
促销产品 主营产品)2GB寻址的限制,近代Windows NT核心提供了一个变通的方案:
4GB内存调整优化技术,通过这个技术,可以将用户模式的寻址空间扩大至3GB,这样核心寻址空间便被限制为1GB了,需要超大内存容量的应用程序可以从这个特性中获得性能改善,如SQL Server数据库这种类型。要使用这个4GB内存优化技术,用户需要在Windows Server
操作系统的启动参数中加入/3GB开关。这个特性同时需要
操作系统打开DEP(数据执行保护,其实/3GB开关需要的是PAE的支持)。
! W! J4 U; |4 \; I
对于一个用户进程来说,默认的2GB可能已经足够,然而对于操作系统核心来说——所有的内核模式程序包括内核、
驱动程序、系统缓存等都共享着相同的2GB空间(或者1GB;从这点上看,Windows已经不怎么具有微内核的样子了,为了性能,Windows将许多本应该放在用户模式的系统服务都放进了内核),在一个大系统上很容易受到限制。如上图这样,系统的System Cache总不会超过2GB(还要加上核心内存的占用),这样Superfetch也就无法发挥最大的作用。除了破解NTKRNLPA.EXE文件之外,以往还有一个方法来应用超过4GB的
内存:RAMDISK,通过启动时装载的内核模式
驱动,它也能让超过4GB的
内存得到一些应用。显然,破解的方法更为灵活一些,不仅仅是RAMDISK才能使用4GB以上的
内存。并且破解之后一样可以使用RAMDISK。
1 V& |" E; ~* F& ^
0 ]) O! w7 D& T5 f' n# a9 Z32位Windows Vista
突破(
促销产品 主营产品)4GB容量限制(也可以应用于Windows 7)
8 o# Y6 ~- W/ u! N) q3 p4 A l
然而,由于上一页所说的限制,使用64位
操作系统仍然是推荐的,不仅仅是为了支持的最大
内存容量更大,而是为了更强大的
操作系统内部数据结构。
6 }. L" o" b6 C
64位系统:系统缓存、分页池和未分页池(较小的系统缓存是因为笔者使用了一个应用
软件来限制的缘故)
5 b0 t( ]0 f1 A: g$ ?. Q$ R! F 系统资源主要有四种:
分页池、未分页池、系统分页表和系统缓存,System Cache系统缓存容易理解(用来缓存读取的各种程序/文件),系统分页表则是用来保存所有线程使用到的堆栈(Windows所有的线程都具有自己的堆栈),分页池和未分页池则是所有程序的核心模式组件使用到的内存部分,区别只是未分页池里分配的内存是不能交换到虚拟内存上面的,分页池上的则可以(从而可能保存到磁盘上去,当程序需要这些页面的时候,再读到内存里面来)。例如设备
驱动就使用未分页池(假如放到虚拟内存并被交换到磁盘上时可能会发生灾难性的后果)。这些资源短缺的时候系统将会发生不可预料的事情,分页池吃紧的时候系统将会频繁地使用虚拟内存,从而不停读写磁盘减低性能,而未分页池吃紧的时候系统多半已经踏入鬼门关了。
" Z) f: }) `& x5 I6 L4 q6 K 由于这些资源共同占用着相同的内核模式地址空间,因此在32位条件下很受限制,并且稍有不慎就会导致短缺,在64位环境下,
这些资源的上限都可以达到128GB,因此系统运行起来会更加稳定,可以支持更多的进程/线程运行——也就是打开更多的窗口,运行更多的程序(从这点上看,32位的Vista也多少具有这些特征,虽然无法突破4GB的限制,不过系统资源的分配没有太过于固定的限制)。
' N0 k1 g' u1 H( j) Y7 i
* t) _7 Y9 g8 ?/ b' Q3 B