• ベストアンサー

Linux 32Bitと64Bitのメモリーの関係

Windowsでは32Bit版だとメモリーが3.5GBでしたか、最大でもそれくらいしか使用できないという制限がありましたが。 Linux は32Bitと64BitとではWindowsのように認識できるメモリーの容量に制限があるのですか。

質問者が選んだベストアンサー

  • ベストアンサー
  • vaidurya
  • ベストアンサー率45% (2714/5983)
回答No.8

32bitで4GB以上のメモリーを扱えないのは たぶんノイマン型コンピューターの、アーキテクチャーそのものの話です。 個々のOS特有の問題ではなく、普通に作れば 4GBを超えて認識できないのが当たり前です。 ただ、intelのPAE技術は、PentiumProの時代からある特殊な技術で これは32bitを超えて、36bitでメモリーの物理アドレスを指定することができます。 32bit Windowsで、3.5MB程度しか認識できず、残りをRAMディスクにする風習がありますが これもPAEがなければできないことだったと認識しています。(よくは知らん) で、単純にメモリーを大量に使うためになら、36bitでも…何GBだっけ? 64GBを認識できますから、現状のサーバーPC程度ならOSとしては不足しません。 ただ、それだとアプリケーションが確保できるメモリーとしては 制限が残ってしまうので、大規模なアプリケーションを動かすのであれば PAEではなく、OSもアプリも、全部64bit仕様にする必要が生じます。 ただ、そういうアプリは限られます。 個人のデスクトップや小規模なサーバーなら、PAEで事足りるんじゃないかと思います。 実際、こういう記事があったりもします。 http://bibo6.blog34.fc2.com/blog-entry-180.html Linuxではデスクトップとしての利用では2GBで充分だったりするので 64bit化の必然性はあんまり無いんです。 反面、オープンソースのパッケージ再編成の自由を活かして 64bit版ソフトの供給は、Windowsの比にならないほど速やかに進みました。 それがゆえに、64bit版FLASH Playerは、Linuxだけが先行してリリースされていたほどでした。 (Windowsでは64bitOSで32bitブラウザーを使うのが普通の時期が長かったので) ただ、ほとんどの32bit版Linuxディストリビューションは、PentiumIIやIIIに最適化されていて 64bit版はCore2Duoとかに最適化されています。 ですから、64bit化の効果だけでなく、最適化の対象の問題から 64bit化が好ましい場合があります。 技術的にも、64bit化は時代の趨勢ですから、32bitに固執する理由もありません。 Amazon MP3の専用ソフトとかが、32bit版なのは泣き所かもしれませんけど… 私自身は、仮想PCで遊ぶことを想定して、64bit版にしてあります。 どっちが速いか?気にするほどの差は無いと思います。 先日リリースされたUbuntu12.04LTSでは、32bit版もPAEカーネルが標準となり たぶん、8GB搭載のPCで32bit版を導入しても、4GBを超えて認識するのが普通になっています。 今みたら、最大1GBしか搭載できないThinkPad T23でもしっかり3.2.0-23-generic-paeが入っています。 反面、一部のPAEを備えないCPU搭載製品では、CPU性能は充分にあるものの Ubuntu12.04LTSのインストールができず。 10.04LTSか11.10からのアップグレードを経て導入する手間がかかります。 (PentiumM搭載ノートPCなどで、ちょっと残念なことになるようです) なお、LinuxとMacOSXのメモリー管理が同じと言えるとしたら LinuxもMacOSXもWindowsもメモリー管理の基本法則は同じと言えます。 でも、やっぱり、LinuxとMacOSXとWindowsのメモリー管理はそれぞれ違います。 ただ、32bitではPAEのような特殊な技術を使わなければ 4GBを超えてメモリー認識ができないという点では同様です。 ちなみに、Linux系OSはUNIXを模倣したOSで、MacOSXは由緒正しいUNIXの分家です。 ほかにもUNIXは数種類あるのですが、メモリーの管理手法はそれぞれいろいろ違います。 そこは、UNIXの仕様としての共通点だけでなく、個々のカーネルの設計の問題でもあるからです。 Linux系OSでは、そのカーネルそのものが本来のLinuxです。 対して、MacOSXは、Machというオープンソースのカーネルが採用されています。 分類方法によっては、MachはLinuxカーネルよりもWindowsのNTカーネルに近いとも言えます。 かつて、Macintosh用のLinuxとしてMkLinuxがMachカーネルを採用していたので LinuxとMacOSXのカーネルが同じと勘違いしているMacユーザーもいるかもしれません。 (厳密に言えば、MkLinuxはLinuxでは無かったとも言えます)

alien5
質問者

補足

ありがとうございます。 >ただ、ほとんどの32bit版Linuxディストリビューションは、PentiumIIやIIIに最適化されていて 64bit版はCore2Duoとかに最適化されています。 なるほどそうですか。 ubuntu 11.10 64Bit版をCPUがPentium4のパソコンにインストールしたのですが32Bit版の時と比べたら明らかに動作が重かったです。

その他の回答 (9)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.10

余談ですが, 32ビットの Windows でもバージョンによっては 4 GB を越えて使えたりしま... した. 32ビットの Linux でも, 既に回答がありますが (「1プロセスで使えるメモリ」は 4 GB, ただしそのうち 2 GB はカーネル使用) システム全体で 64 GB まで使えるようにすることもできます. 6 GB しかないときにやってました.

alien5
質問者

お礼

ありがとうございました。

回答No.9

PAEの話が出ていますが この技術はOSで管理できるメモリ量を増やせますが、 一方で1つのプロセスがアクセスできるメモリ量は4GBのままです。 なので、DBサーバのように大きなメモリを使用するPPを使用する場合は 32bitOSと64bitOSで結構大きな性能差が出ます。

alien5
質問者

お礼

ありがとうございました。

回答No.7

>Linuxのメモリ管理はMacOSXと同じと思われるので、MacOSXとして回答します。 まったく違う。 MacOSXはBSD系。Linuxとはソースの互換はない。だからメモリ管理は別。 それこそ同じだったらライセンスの問題が発生する。

alien5
質問者

お礼

ありがとうございました。

noname#242220
noname#242220
回答No.6

Linuxのメモリ管理はMacOSXと同じと思われるので、MacOSXとして回答します。 CPU自体は64ビット動作で、使用する『カーネル』が 32か64ビットの違いがまず有ります。 それからアプリに関しても64ビット対応としてコンパイルする必要が有ります。 そして64ビットカーネルの環境で32ビットカーネルアプリを動作させる環境が有ります。 Linux自体がこの様に成っている場合はWindowsの様なメモリ制限は無い事に成ります。

alien5
質問者

補足

ありがとうございます。 結局、Linuxでもそういう点はWindowsとあまり変わらないんですね。 ubuntuはインストールとか更新の際も自動化されていて、そういう点では便利なのかもしれませんね。 64Bitでインストールしたら、更新の際も64Bitで自動的に更新されるようになってるみたいです。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.5

>同じパソコンにubuntuの32Bit版と64Bit版をインストールしたことがあるのですが、64Bitの方だと少しパソコンの動きが遅いように感じました。 それは負荷ではなくてCPUが32bit,64bitどちらに最適化されてるかだと思いますよ。 Intel Core iシリーズはわかりませんがCore2DuoやCore2Quadの64bitモードは32bitモードより多少遅かったかと思います。 http://pc.watch.impress.co.jp/docs/2006/0718/kaigai288.htm

alien5
質問者

補足

ありがとうございます。 >Intel Core iシリーズはわかりませんがCore2DuoやCore2Quadの64bitモードは32bitモードより多少遅かったかと思います。 CPU Core2Quad Q6600でしたが、なるほどそういうことですか。 いまのCorei7とかだったら64Bitの方が早いのかもしれませんね。

  • 486HA
  • ベストアンサー率45% (1013/2247)
回答No.4

32Bit-CPUで4GiB以上のメモリを扱う技術として物理アドレス拡張(ぶつりあどれすかくちょう、Physical Address Extension - PAE )があります。  インテル社のPentium Pro以降のP6マイクロアーキテクチャで追加されたアドレス空間の拡張機能です。 http://ja.wikipedia.org/wiki/%E7%89%A9%E7%90%86%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E6%8B%A1%E5%BC%B5 Linuxでは、例えばPuppy Linuxのエディションの一つであるSlacko 5.3.3 では32Bit版ですが 4GBを超えるメモリー(最大64GB)に対応したPAE版があります。 http://puppylinux.org/wikka/SlackoNews 

alien5
質問者

補足

ありがとうございます。 そういうのがあるとは知りませんでした。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.3

>CD-ROMに付属のubuntuやCentOSなんかだと、同じLinuxでも32Bit版と64Bit版の両方が入っていることがありますが、あれは結局カーネルが異なるということなんですかね。 いいえ、カーネルだけでなく実行用バイナリも32bit版と64bit版は異なります。 カーネルを4G以上利用できるようにしても、実行用バイナリが32bit版ならプログラムとしては4G以上は利用できません。 >64Bit版だとCPUやメモリーにかかる負荷もやはり大きいのだと思いますが。 何が「やはり」なのか私にはわかりかねます。 32bit版がメモリ4Gまでしか利用できないのは負荷関係ないですし。

alien5
質問者

補足

>何が「やはり」なのか私にはわかりかねます。 32bit版がメモリ4Gまでしか利用できないのは負荷関係ないですし。 同じパソコンにubuntuの32Bit版と64Bit版をインストールしたことがあるのですが、64Bitの方だと少しパソコンの動きが遅いように感じました。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

>Linuxでも32Bit版は4GB以上のメモリーを付けても認識されないんですか。 「認識されない」ではなくて「利用できない」ですね。 で、ちょっと誤解のある書き方だったので申し訳ないのですが 「利用できない」のは多くのディストリビューションの標準のインストール状態だと「利用できない」だろうということであって 「利用できる」カーネルを使用するようにすれば利用できます。

alien5
質問者

補足

>「利用できる」カーネルを使用するようにすれば利用できます。 CD-ROMに付属のubuntuやCentOSなんかだと、同じLinuxでも32Bit版と64Bit版の両方が入っていることがありますが、あれは結局カーネルが異なるということなんですかね。 64Bit版だとCPUやメモリーにかかる負荷もやはり大きいのだと思いますが。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

あります。

alien5
質問者

補足

ありがとうございます。 あるんですか。 Linuxでも32Bit版は4GB以上のメモリーを付けても認識されないんですか。

関連するQ&A