Monday, September 14, 2009

32-bit Windowsでメモリ3GB確保

64-bit OSが出てきている今日ですが,32-bit OSの話題.
32-bitと言ってもWindowsに限った話ですけどね.

Windowsでは,メモリを4GBまでサポートでき,そのうち2GBをカーネル領域に割り当て,残りの2GBをユーザーが扱える領域として割り当てています.
ですので自作にしろ何にしろソフトウェアは2GB以上のメモリは扱えません.
が,Windows XP Proやらなんやら限られたWindowsに関しては,ユーザー用のメモリを3GBまで拡張することができます.

やり方は,boot.iniの「/fastdetect」スイッチを含む起動行の終わりに「3GB」の記述を加えることです.
そして,Visual C++で開発している人は,リンカのオプションで「/LARGEADDRESSAWARE」オプションを追加するようにします.

やり方は,boot.iniは,システムの設定で,詳細タブの起動と回復にある編集ボタンで設定ができ,VC++のリンカは,プロパティのリンカにある,大きいサイズアドレスで設定できます.

この環境で作成したプログラムは3GBのメモリを使えるようになります.やったね.

No comments: