やはりVista SP1でも3GBの壁問題は解決されない

前に3GBの壁についてのまとめ(補足)Windows Vista SP1で「3GBの壁」問題は解決されるか?という話を書きました。結論としては実態としては何の解決もされず、表示が4GBに変わるだけだろうという形で話を進めたのですが、結局のところそれは正解だったようです。

Windows Vista SP1は表示が変わるだけ

自分のThinkPad X60の様に、Intel 945チップセットファミリを採用しているマシンでは、4GBのメモリを搭載しても、1GBのメモリ領域がバスのI/O処理の予約によってハードウェアに予約され、結果、OSでは3062MB(3GB)のメモリしか利用できません。しかし、実際は、このハードウェアの予約分も含め、4GBのメモリは利用方法はともあれ、一応使っているわけです。

その実情を踏まえて、Vista SP1のシステムのプロパティでは、Intel 945チップセットファミリで3GB以上のメモリを入れたシステムにおいて、実インストールメモリ容量が表示されるようになりました。但し、アプリケーションから見えるメモリ容量は今まで通り3062MBです。

Windows Vista SP1 RC簡易レビュー (せうの日記)

※赤字部分は原文が赤、太字部分はこちらで強調しました。

32bit Windowsで3GBの壁を破るには、OSとハード側が4GBを超える物理アドレス空間を持ち、かつ物理アドレス拡張(PAE)が有効でなければいけません。(詳しくは3GBの壁のまとめ前編後編補足を読んでください。)

Windows XP SP2やWindows Server 2003 Standard EditionはPAEオプションを持っていますが、結局OS側がアドレス空間を4GBしか持っていないため、オプションをONにしても何の意味も無いのです。結局のところ、Vista SP1での物理アドレスの拡張は見送られたということでしょう。

残念なことですが、まだしばらくの間は4GBをフルに使うには64bit Windowsかサーバ向けWindowsを使うしかないようです。

Windowsと事情が違うLinux

ただし、32bit OSでもCentOS(Linux)なら4GBフルに認識できたという話があります。

Express 5800 110Gd で 4GB メモリが使えた on IA-32

本当に軽く調べただけですが、どうもLinuxのPAE kernelは32bitでも物理アドレスがそれ以上に拡張されているようです。(つまり2003 Enterprise Editionと同じような実装の仕方。)

[追記]
アドレス空間がよくわからないという方は下記へ
あなたは混同していませんか? 複雑な「アドレス空間」のお話

参考サイト
メモリ サポートと Windows オペレーティング システム