dポイントプレゼントキャンペーン実施中!

こんにちは。

WindowsServer2008R2は64bitでの提供のみとききました。そこで基本的な質問で申し訳ないのですが、そもそも32bitと64bitで何が違うのか教えて頂けますでしょうか?

具体的には、今まで開発してきたプログラムが64bitになると動かなくなる、とも聞きました。プログラムのコーディング自体に修正が必要なのでしょうか?それとも、64bitのマシンでコンパイルすれば済むだけの話なのでしょうか?
また、WS2008R2のリリース以降はメーカー側も64bitの機械しか出荷してくれなくなってしまうのでしょうか。R2リリース以降もSP2を新規発注し続けることは難しくなると思われますか?

技術者として最低限知っておくべきだ、というようなことがあれば教えて頂きたく思います。宜しくお願いしますm(_ _)m

A 回答 (2件)

まず、64bit Windowsは64bit対応のCPUでしか動きません。


現行のCore2Duo等のCPUは64bit対応なので問題ありませんが、Pentium4など古いCPUでは動作しません。
64bit Windowsを使うと、アドレス空間が広がり認識できるメモリ量が大きくなる利点があります。32bit Windowsでは大量のメモリを積んでも4GBまでしか認識できず、デバイス等に割かれる分もあるため実質3.2GBくらいまでしか使えませんでした。また一つのアプリケーションから使えるメモリも、通常2GB、特殊な設定で3GBまでが限界でした。64bitでは物理メモリ128GB、プロセス空間は8TBが使えます。
サーバ環境では既に4GBのメモリでは足りない状況が多々発生していますので、64bitのみになったのも妥当と思われます。
クライアントPCではしばらく32/64混在状況が続くと思われますが、Windows 7が出てくる秋以降、メーカ製パソコンでも64bit版の採用が増えるものと予想されます。

なお、64bit Windowsでは
・32bit Windows用のデバイスドライバは使えません
・32bit Windows用の32bitアプリケーションは使えます
・32bit Windowsで動作する16bitアプリケーションは使えません
・64bitプログラムと32bitプログラムを(DLL等で)リンクできません

現行アプリケーションの多くは32bitなのでそのまま動作すると思いますが、古いソフトなどで16bitのものが残っているとそのままでは動作しません。また32bitデバイスドライバは使えないため、マイナーなデバイスでは64bitに対応できないものがあるかもしれません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
非常に詳しく説明していただき、大変参考になりました。これからの対応方針の指針とさせて頂きます。

32bitで開発したものが使えなくなくなるわけではない、ということが分かり安心しました。ただ、扱うシステムにはかなり昔から使われているものもありますので、それが16bitアプリケーションなのかどうかも確認しておきたいと思います。

お礼日時:2009/07/29 18:52

64bitのマシンでコンパイルすれば済むだけの話なのでしょうか?



→ということではなくて、64用のルールでコードを書いてコンパイルすることになると思います。コンパイル自体は8ビットマシンでやろうがなんでやろうが、翻訳と同じだから同じマシン語が生成されるでしょう。
・プログラムのコーディング自体に修正が必要ということでしょう。


人間にたとえれば、一桁づつ区切らないと足し算ができないひとと、2桁の足し算ができるひとでは、たとえではありますが、2倍の速さがあるということです。実際はアプリケーションの最適化、いんターフェースなどいろいろなところをそれぞれいじらなきゃならないので、2倍にはなりません。
クルマでエンジンだけ2倍の排気量にしても、タイヤとサスとブレーキとボディー剛性を総合的にチューニングしないと2倍の性能にならないのと似たようなものです。
    • good
    • 0
この回答へのお礼

直す必要があるとすれば、ソース自体に手を加えなくてはならないということですね。ありがとうございます。参考になりました(゜▽゜)

お礼日時:2009/07/29 18:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!