ゲストOS と PAE/NX

投稿者名: 
Aqualight
ホストOS: 
N/A
ゲストOS: 
N/A
本文: 

 読者の皆様、こんにちは、こんばんは。 Aqualight です。
以前、私は PAE/ NX に関した投稿を行っています。
確かタイトルは【PAE/NX】でページアドレスは以下です。

http://vboxmania.net/content/paenx

 この内容に誤りがあった…とか、そういう話じゃないんです。
今回はゲストOSと PAE/NX に関する話です。

 そもそも PAE 機能は 32 bit CPU が 4 GB を超えるメモリーにアクセスするための機能です。
PAE 機能を利用可能なCPUのアドレス線は 36 本(以上)です。
また 32本であっても 64 bit アドレスを2分割でデコードすれば 64 bit アドレスはアクセス可能です。
だから 4 GB を超えるメモリーもアクセス可能なのです。

 しかし、肝心のOSがその機能を制御できなければ利用する事は出来ません。
また PAE 機能を利用するOSは 32 bit なので、アドレス変換機能によって特定の領域を入れ替えるため
ブロック単位でアクセスする事になり、連続した領域が確保出来ずブロックサイズの制限を受けます。
そしてアドレス変換による弊害として、OSからは認識不能な領域が出来てしまい、
この領域から悪意あるプログラムコードを実行されないように NX の機能を利用する訳です。

 ここまでは理屈です。
では現実の 32 bit OS に関して、具体的にどうなのか考察してみます。

 

Linux の場合

 Linux の場合は、そのバージョンによって異なりますが、概ね PAE 機能が利用可能です。
13 か 14 かは明確ではありませんが、それ以降のバージョンだと PAE 機能は必須となって、 PAE/NX の無いマシンだと
インストールさえ出来ません。 (ソースから改造してリビルドすれば別ですが。)

 PAE 機能が利用可能であれば 32 bit OS であっても 64 GB 近くまでメモリーを増設可能ですが、
可能と言うだけで、通常のデスクトップ運用では 4 ~ 8 GB あれば十分でしょう。
強いて言えば、この機能は 32 bit サーバー向けと言えるかもしれません。

 で仮想マシンにて Linux を運用する場合、 PAE/NX 機能は有効化しておく方が無難です。
サーバー用途なら尚更のことで、これが問題になる事は殆どありません。

 

Windows の場合

 これがちょっと厄介なんですよね。
と言いますのも PAE/NX に対応している OS が例外的とも言える状況のようです。

 そもそも PAE/NX の機能は 32 bit OS 上で 4 GB を超えるメモリーを扱うための機能です。
そして、この機能は Windows 2000(win2k)から実装されていて、Windows 2000 server では最大 32 GB まで利用可でした。
 Win2k は 32 bit OS でありながら、既に PAE 機能を利用していた訳です。
これを CPUで見ると Pentium Ⅱの時代であり、PAE/NX は 1995年11月発売の Pentium pro から実装されていた訳です。
Pentum pro は P6マイクロアーキテクチャであり IA-32 の4世代目でした。

 Windows XP も同様に PAE 制御機能を搭載し、4 GB を超えるメモリーを利用可能でした。
サーバーOSも Windows server 2003 と名称変更し、当然のように 4 GB を超えるメモリーを利用可能でした。
この時代に 64 bit OS も公開され、XP や Server 2003 にも 64bit エディションが登場しましたが
当時はマイナーな存在で普及率は最低でした。

 続いて Vista ですが、この時に 64 bit OS が普及し始め、扱うデータも巨大化してきました。
MS は 64 bit OS を普及させるためか、 32 bit 版では PAE 機能は可能ではあるものの非公式としたようです。

 さらに Win 7 32bit では 64 bit へ意図的にシフトさせるのが目的なのか、 PAE 機能を有効化可能でも OS からは
認識可能ではあるものの「システム予約領域」としてユーザーは利用できませんでした。
厳密に言えば RAM-Disk には利用可能です。

 win 8 と win 8.1 ですが、PAE/NX は必須とされています。
そして PAE/NX が無い場合は インストール不可能のようです。
私は win 8 をモバイル端末特化型OSとして認識していたため購入せず、検証はしていません。
しかし WEB 上のデータから察するに「 32 bit 版は最大 4 GB 」とされていて Win 7 と同じ扱いのようです。
という事は Win 7 同様に「システム領域」としては認識可能であってもユーザー領域ではないため
RAM-Disk としての用途しか無いと思われます。

 で Windows 10 pro 32 bit です。
何を血迷ったか、Win 8 で必須だった PAE/NX ですが Win 10 では も必須ではなくなり、です。
同時に大容量メモリーを利用する場合は 64 bit OS を利用するしかなくなりました。
恐らく この仕様は 32 bit OS を駆逐して開発コストを下げる目的からでしょう。

 Windwos 10 32 bit でも PAE/NX は有効化可能ですが、残念ながら「システム予約領域」としても認識表示されませんのが
RAM-Disk には利用できません可能なようです。
当然、ユーザー領域ではありませんから Windows 10 32 bit の最大 RAM は 3 GB という事になり、
ユーザー領域は 2 GB 程度になってしまいます。
 ネットサーフィンや動画鑑賞、メールや SNS に利用するなら、これだけで十分です。
寧ろ 32 bit OS Windows は XP で完成して見た目を変えただけとも言えそうです。

 

Windows 32 bit OS をゲストにする場合の PAE/NX

 今回の本題はここです。
私が確認した事ですから一部には間違いも在るかもしれませんので過信は禁物ですが
仮想マシンで 32 bit Windows をゲストにする場合の PAE/NX 設定について一覧表にまとめます。
但し、32 bit サーバーOSは例外なく PAE/NX を有効化すべきなのでこの表には掲載しません。

 

VirtualBox にて 32 bit Windows をゲストにした場合の PAE/NX
名称(バージョン) PAE/NX 設定 最大メモリー PAE/NX を有効化すると…
95系 Windows (Ver.5 未満) ×:有効化しない そのOSで可能な上限まで 有効化する意味が無い
Windows 2000(5.0) ○:可能 4 GB RAM を大きくしても体感的には意識出来ない
Windows XP (5.1) ○:可能 4 GB RAM を大きくしても体感的には意識出来ない
Windows Vista (6.0) △:可能 最大 3 GB 程度 実質 RAM-Disk 用途
Windows 7 (6.1) △:可能 最大 3 GB 程度 実質 RAM-Disk 用途
Windows 8 (6.2) ◎:必須 最大 2.5 GB 程度 無効化するとインストールさえ出来ない
Windows 10 (10.0) ◎:必須 最大 2.2 GB 程度 無効化するとインストールさえ出来ない
表示されない。 実質、PAM-Disk 用

 現代の仮想環境は 64 bit ホスト上で稼働させる事が多くなりました。
という事は、ホスト側では PAE 機能を利用しなくても機能自体は実装されていて、「ゲストOSを利用するために有効化する」と
考えても良いでしょう。

 Linux をゲストにする場合は、ゲスト側でも PAE/NX を有効にしておけば問題は起こりません。
で、 Windows の場合です。 上記の表を参考に PAE/NX の利用を決めれば良いでしょう。

 Windows 2000 と XP は PAE/NX を利用すると確実にユーザーメモリーを増やせますが、上限は 4 GB と小さく、
敢えて有効化しなくても気になりません。

 Vista 以降に関しては デスクトップ用 32 bit OS としては PAE/NX は有効化しない方が面倒は無いと思えますし、有効化しても
RAM-Disk にしか活用できないのでは全くの無駄だとも思えます。
いくら Win 8 や Win 10 が インストール時に PAE/NX 必須だとしても、その意味は無いに等しいと言えます。

 あとは愚痴ですが、やはりマイクロソフトでは OS の 64 bit 化 を進めたいらしく、32 bit OS では CPU で利用可能であっても
32 bit 版 と 64 bit 版 の製造コストを 64 bit に一本化する事で下げようとしているようで、やがては 32bit OS は無くすつもりなのでしょう。
マイクロソフトの下位互換性無視はいつもの事なので、私なら、設備投資の無駄を感じるのであれば Linux への移行を お薦めします。
また、その新たな環境に慣れるための学習には VirtualBox や VMware などの仮想環境が最適だとも思います。

 

最後に

 出来る範囲で PAE/NX に関する検証を行いましたが、どうも Windows 32 bit OS では例外を除き
PAE/NX 機能を使わない方が面倒がないと思いました。

 残念ながら、私は Windows 8 を持っていませんので詳細な検証は出来ませんでした。
この件に関しまして、どなたか補足して頂き、誤りがあれば訂正して頂きたいと思います。

 以上を持ちまして今回の投稿の筆を置きます。
なお、次回の投稿は VMware Player 7 との比較を画策しています。
お楽しみに。 (笑)

 

 

 Windows のゲストOS を見なおした結果、VirtualBox であれ、VMare Player であれ、
32 bit OS をゲストにする場合は PAE/NX を無効化しておいて、利用可能な最大限のメモリーを与えた方が
地味に高速化し有利であると言えそうです。

 実際、 PAE/NX を有効に利用可能なのは 2000 と XP だけだし、
それ以外の OS は有効化しても PAM -Disk にしか使えないのでは話になりませんね。
また、使い方によっては確かに PAM-Disk も高速化の手段にはなり得ますが、起動時に RAM-Disk の内容を
復帰させる手間が必要で、その分だけ起動時間が掛かるようになります。
そして OS (Win 10 )によっては PAE/NX が利用不能で RAM-Disk にも出来なかったり…

 32 bit Windows をゲスト にする場合、何も考えずに PAE/NX を無効にしておくのがデフォルトかもしれません。
MS製品って、こういう部分がダメダメなのですね。(Linux と比較して)

 

 Aqualight です。

誤った情報を公開してしまい、謝罪いたします。

訂正事項が発生しましたので、本文側の表と内容を訂正します。

 

コメントを追加

Filtered HTML

  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 使用できるHTMLタグ: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <br />
  • 行と段落は自動的に折り返されます。

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
CAPTCHA
スパム投稿防止の為以下のテキストを入力してください
Image CAPTCHA
Enter the characters shown in the image.