32ビットOSは4GBまででしょ。。

なぜ: Windows Server 2003 Standard Edition x86 は 4GB まで ?

そろそろ、Standard Edition x86 でも、8GB までサポートしてもいいのではないでしょうか。
LongHorn, Windows Server 2008 Standard Edition x86 でも、4GB で変更なし。

32bit OSが4GBのメモリしか扱えないのは、これはもうどうしようもないの事なのでは?

実際に使用するプログラムカウンタのビット幅が32ビットであるというi386アーキテクチャである以上どうしようもない物理制限だと思われますが。

それに仮にプログラムカウンタのビット幅を増やしてしまうと(仮にi486のメモリアドレスバスにあわせて40ビットにしたとしたら)深刻な互換性問題に直面してしまうんじゃないですか。それを回避するために仮想環境を作ったら結局AMD64と同じ事になるのでは。

と言うことなんだろうと思います。

もはや32ビット/64ビットでライセンスを分ける必然性は無いと思いますが、32ビット/64ビットでカーネルを分ける必要はあるでしょうし、それによって何らかの制限が、特に使用可能メモリ量で発生するのは仕方のないことでしょう。

ちなみに、かつてのAlpha AXPでやった小細工をすれば、カーネルの大幅変更無しに4GB以上のメモリにリーチすることも可能なんでしょうが、64ビットカーネルがある今となってはあんまり意味がないように思います。

2 thoughts on “32ビットOSは4GBまででしょ。。”

  1. こんにちは:
     32bit OS = 4GB,
     こう思う方が多いですよね。
     そのため、32bit/x86 モードで、メモリ 16GB 搭載
     した状態について、正しく認識されていないようです。
     ちなみに、Windows Server 2003 Enterprise Edition x86 は、ふつうに 8GB を認識します。また 32bit のアプリケーションが正常に動作します。
     すこし、x64 に時代が向かう中、あらためて x86 の状況を整理したほうがいいでしょうか。

  2. ほそく
    うーん確かに認識するのですが、アプリケーションがリニアに8GBのメモリを使えるわけではやはり無いし、OSが8GBを64ビット版のようにそれを使えるわけでもやはり無いわけです。4GB以上の領域はAWEを使ってアクセスすることになりますよね。
    WindowsのAWEは制限が多く、使用できるできないはアプリケーションにも依存してしまうので、64ビット版カーネルがあり、プログラマが何もしなくてもそれらの制限がない今となってはあまり意味がないというのが僕の考えで、どっちかって言うと早く消えてほしいと思ってます(W)
    AWEは本来64ビットであるAlpha AXPをWindowsに64ビットカーネルが無い(当時)ばかりに32ビットとして使わなければならず、その長所を何とか生かしたい当時DECとMSの苦心のたまものとは思いますが、64ビットのカーネルがある今となっては、AWEのような無理せずにちゃんと使おうよと言うことです。
    つい5年前4GB超えるメモリはとんでもなくエンタープライズなシステム向けでしたが、今では個人でもそれが手に届きそうな勢いなのは大きな違いですが、そのパワーは素直に使った方が良いかなと思います。
    と言うのが最後の「意味がない」の説明です。
    現状AWEを使えば既存のアプリケーションを大きく改造や変更をすることなく救える場面もあるのかなー。正直AWEに対応してるのなんてRDBMSだけだしなぁ。今は救えてももじきに限界が来るんじゃないかな。
    ほそくのほそく
    x86のラージメモリについてまとめるとなると、Pen4/Xeonが4TB扱えるメモリを扱うことができるアドレスバスを含んだアーキテクチャを持つのに、OSが扱うプログラムカウンタが32bit、4GB分の幅しか無いのは結局下位互換性のためとか、x86のプロテクトモードの話とか、結局大きなメモリが扱えないのはチップセットのせいとか、なんかややこしくなりそうだなぁ。

コメントを残す