• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴(yán)以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            32 位 Windows 7 / Vista 啟用 PAE 后仍然不支持 4G 內(nèi)存原因分析

            轉(zhuǎn)載自:http://live.aulddays.com/tech/09/vista-ram-pae/

            隨著內(nèi)存價(jià)格的不斷下降,相信很多朋友都和 Aulddays 一樣已經(jīng)用上了 4G 甚至更多的內(nèi)存。在 64 位 Windows 系統(tǒng)仍存在一些驅(qū)動(dòng)兼容性問題的情況下,32 位的系統(tǒng)仍然是絕對(duì)的主流,但 32 位的桌面版 Windows 版系統(tǒng)對(duì) 4G 以上內(nèi)存的支持似乎一直不好。關(guān)于這個(gè)問題,網(wǎng)上的文章清一色的會(huì)提到 PAE(Physical Address Extension 物理地址擴(kuò)展)技術(shù)。遺憾的是,據(jù)絕大多數(shù)朋友的測(cè)試情況來(lái)看,即使啟用了 PAE,32 位的 Windows Vista 仍然無(wú)法使用全部的 4G 內(nèi)存。在 Vista SP1 中,微軟使了個(gè)小技巧,讓系統(tǒng)屬性中可以顯示“已安裝”的 4G 內(nèi)存;但更進(jìn)一步,在任務(wù)管理器中證實(shí)實(shí)際可用的內(nèi)存仍然只有 3069M(最多不超過 3.25G,依不同配置而定),如下圖所示:

            32 位 Vista 4G 內(nèi)存

            這一點(diǎn),在系統(tǒng)屬性程序(開始\運(yùn)行,輸入“msinfo32”,回車)中可以更清楚的看出“已安裝物理內(nèi)存”和“可用物理內(nèi)存”的數(shù)量。

            PAE?并不足夠

            PAE 是 32 位系統(tǒng)內(nèi)存支持不得不說的一個(gè)問題。在沒有 PAE 的情況下,32 位系統(tǒng)使用 32 位的地址空間,因此總共可以支持 2^32=4G 的內(nèi)存,再加上一些系統(tǒng)的限制,沒有 PAE 的 32 位 Windows 上本來(lái)實(shí)際只能使用 3G 的內(nèi)存。而 PAE 則是一種地址擴(kuò)展技術(shù),通過它可以讓操作系統(tǒng)擁有更多的地址空間,理論上可以支持 128G 甚至更多的內(nèi)存。PAE 在 Windows Server 系統(tǒng)上可以很好的工作,如下圖所示,32 位的 Server 2008 (和 Vista 實(shí)際使用相同的內(nèi)核)在開啟 PAE 之后可以很好的使用 4G 內(nèi)存,但 Vista 上即使開啟了 PAE 也仍然只能使用 3G 內(nèi)存(事實(shí)上,Vista 默認(rèn)是開啟 DEP 的,而 DEP 功能需要 PAE 支持,因此一般來(lái)說 PAE 其實(shí)并不需要手動(dòng)設(shè)置而是自動(dòng)開啟的。點(diǎn)擊這里可以看到關(guān)于 DEP 的詳細(xì)討論),這又是為什么呢?

            Server 2008 4G 內(nèi)存

            技術(shù)大牛 Geoff Chappell 在研究了 Vista 和 Server 2008 的內(nèi)核之后發(fā)現(xiàn),造成這個(gè)限制的實(shí)際上是 Vista 的許可證限制!簡(jiǎn)單來(lái)說,vista/2008 內(nèi)核在啟動(dòng)初期會(huì)調(diào)用 MxMemoryLicense 未公開 API 函數(shù)來(lái)確定系統(tǒng)“許可(licensed)”使用的最大內(nèi)存數(shù)量;而 MxMemoryLicense 則會(huì)查詢 tokens.dat 和 pkeyconfig.xrm-ms 兩個(gè)文件確定系統(tǒng)的許可證(桌面系統(tǒng)還是服務(wù)器系統(tǒng)),接下來(lái)再根據(jù)許可證類型確定支持內(nèi)存的最大值。如果系統(tǒng)內(nèi)存大于根據(jù)許可證確定的值,則在內(nèi)核啟動(dòng)時(shí)多余的內(nèi)存就會(huì)被完全忽略掉。這也就是造成 32 位 Vista 不能使用 4G 或以上內(nèi)存的根本原因。

            目前已經(jīng)有兩個(gè)測(cè)試證實(shí)了這個(gè)情況,并成功在 32 位 Vista 下使用了 4G 內(nèi)存。注意:進(jìn)行這兩個(gè)測(cè)試實(shí)際已經(jīng)違反了 Windows Vista 的使用許可證,所以是存在版權(quán)問題的;在弄清這個(gè)問題之前請(qǐng)不要輕易進(jìn)行類似的測(cè)試!

            測(cè)試1. 替換系統(tǒng)授權(quán):

            將 Vista 中的 C:\ Windows\ ServiceProfiles\ NetworkService\ AppData\ Roaming\ Microsoft\ SoftwareLicensing\ tokens.dat 文件和 C:\ Windows\ System32\ licensing\ pkeyconfig\ pkeyconfig.xrm-ms 文件分別用 Server 2008 中的同名文件替換。之后再啟動(dòng)系統(tǒng)時(shí)內(nèi)核就會(huì)誤認(rèn)為啟動(dòng)的是 Server 2008 系統(tǒng),而消除 Vista 許可證對(duì)內(nèi)存的限制。但是這樣一來(lái)很多系統(tǒng)服務(wù)和系統(tǒng)組件也會(huì)按照 2008 的方式來(lái)運(yùn)行,造成很多不兼容性。

            測(cè)試2. 修改系統(tǒng)內(nèi)核

             在 Geoff Chappell 的文章中(點(diǎn)擊查看原文)采用了直接 patch 系統(tǒng)內(nèi)核的方法。經(jīng) Aulddays 測(cè)試,這種方法同樣適用于目前最新版的 Windows 7 RTM 系統(tǒng)這種方法難度較大,但帶來(lái)的不兼容性則小的多,并且可以完美支持多至 128G 的內(nèi)存!他的具體做法如下:為避免原始內(nèi)核被破壞,首先復(fù)制系統(tǒng)內(nèi)核文件 ntkrnlpa.exe,并命名為 ntkr128g.exe,之后的修改都在 ntkr128g.exe 上進(jìn)行。用 hex 編輯器打開 ntkr128g.exe,查找下列兩個(gè)字符串:

            特征串1:7C 11 8B 45 FC 85 C0 74 0a
            特征串2:7C 10 8B 45 FC 85 C0 74 09

            兩個(gè)特征串在內(nèi)核中都出現(xiàn)且只出現(xiàn)一次,雖然特征串內(nèi)容不同,但修改方式相同:把 0x8B 開始的 7 個(gè)字節(jié)(即上面標(biāo)記為深紅色的部分。最前兩個(gè)字節(jié)不作修改!)修改成:

            后7個(gè)字節(jié)修改成:B8 00 00 02 00 90 90

            對(duì)于目前的兩個(gè)版本的 Vista 和最新的 Windows 7,修改處的文件偏移地址(即 0x8B 字節(jié)的位置)分別如下:

            版本號(hào) 版本 文件偏移地址
            6.0.6000.16386 Windows Vista 0x003040B1, 0x003040F2
            6.0.6001.18000 Windows Vista SP1 0x00309AA3, 0x00309AE4
            6.1.7600.16385 Windows 7 0x0035C243, 0x0035c283

            接下來(lái)測(cè)試加載修改后的內(nèi)核。首先需要為修改后的內(nèi)核重新計(jì)算 checksum 和生成數(shù)字簽名。在命令行中輸入下面3個(gè)命令:

            editbin /release ntkr128g.exe
            makecert -r -ss my -n "CN=My Own Testing Authority"
            signtool sign -s my -n "My Own Testing Authority" ntkr128g.exe

            上述簽名過程需要用到三個(gè)命令行工具,其中 editbin 在 Visual Studio 中自帶,而 makecert 和 signtool 在 Windows SDK 6.0 中自帶,如果你機(jī)器上安裝了 Visual Studio 2008 的話,第一個(gè)工具可以在 %VS2008_Dir%\ VC\ Bin\ 中找到,后兩個(gè)工具可以在 %ProgramFiles%\ Microsoft SDKs\ Windows\ v6.0A\ bin\ 中找到。Visual Studio 2008 Express 和 Windows SDK 6.0 都可以從微軟網(wǎng)站免費(fèi)下載; 如果不想麻煩另外安裝的話,也可以點(diǎn)擊這里單獨(dú)下載這幾個(gè)工具; 如果運(yùn)行時(shí)提示缺少 MSVCR90.DLL,請(qǐng)先點(diǎn)擊這里下載安裝 VC2008 的運(yùn)行時(shí)組件

            最后在系統(tǒng)啟動(dòng)菜單中加入一條新的啟動(dòng)菜單項(xiàng)(需以管理員方式運(yùn)行命令提示符)(如果是Windows 7 系統(tǒng)的話可將命令中的 Vista 換成 7):

            bcdedit /copy {current} /d "Windows Vista With More Than 4GB"

            運(yùn)行成功后,該命令會(huì)返回一個(gè) GUID 值,記錄下該 GUID 值,并運(yùn)行下面三條,用之前返回的 GUID 值替換命令中的 guid(命令中包含 guid 的大括號(hào)也要輸入):

            bcdedit /set {guid} pae ForceEnable
            bcdedit /set {guid} kernel ntkr128g.exe
            bcdedit /set {guid} testsigning on

            最后,重啟系統(tǒng)并在啟動(dòng)菜單中選擇 "Windows Vista (或 7) With More Than 4GB" 一項(xiàng)即可。由于修改了內(nèi)核,系統(tǒng)啟動(dòng)后桌面上會(huì)顯示“Test Mode”的提示。

            查看:原文地址;來(lái)源:live.aulddays.com


            posted on 2011-01-11 19:05 楊粼波 閱讀(1583) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            亚洲精品国精品久久99热| 久久综合给久久狠狠97色| 99久久亚洲综合精品网站| 久久精品国产99国产精偷 | 久久伊人精品青青草原高清| 国产精品久久久久影院嫩草| 久久久久国产一区二区三区| 久久久久久精品成人免费图片 | 亚洲?V乱码久久精品蜜桃| 国产精品99久久久精品无码| 94久久国产乱子伦精品免费| 97精品依人久久久大香线蕉97| 国产午夜久久影院| 伊人久久大香线蕉av不变影院| 狠狠狠色丁香婷婷综合久久俺| 久久热这里只有精品在线观看| 国产精品久久网| 亚洲AV无一区二区三区久久| 国产午夜电影久久| 99久久精品国产高清一区二区| 久久综合成人网| 国产精品久久久天天影视香蕉| 色婷婷久久综合中文久久蜜桃av| 久久精品亚洲福利| 免费国产99久久久香蕉| 久久青青草原亚洲av无码app| 要久久爱在线免费观看| 狠狠精品干练久久久无码中文字幕 | 国产99久久久国产精品~~牛| 久久亚洲私人国产精品vA| 亚洲国产精品成人久久蜜臀 | 99久久精品国产一区二区| 久久A级毛片免费观看| 少妇内射兰兰久久| 色8久久人人97超碰香蕉987| 伊人久久综合无码成人网 | 性做久久久久久免费观看| 午夜精品久久影院蜜桃| 久久夜色精品国产www| 亚洲国产天堂久久综合| 亚洲精品美女久久久久99小说|