2008年冬、64bit OS時代到来

今年2008年冬の年末商戦以降、一気に64bit OSが浸透するかもしれません。これはWindows Vista登場間近から噂されていた事ですが、いよいよ現実味を帯びてきました。

去年から続いていたDDR2 SDRAMの大暴落は、PCのメモリ搭載量を飛躍的に押し上げる要因となったのは記憶に新しいところ。今や、新しいPCでメモリ合計4GB未満を選ぶことは、余程の理由がない限り避けたほうがいいでしょう。少ない投資で快適さを得るならメモリの増量が一番効果的だからです。例えば、複数のアプリケーションを起動したときに、ガリガリと音を立てて動作が重くなるHDDスワップも、大容量メモリなら回避出来ます。

さて、ここで問題となるのがOSの認識出来る最大メモリ量。今、一番普及しているWindows XPは、多くの人が32bit版を使っていることでしょう。この32bit版XPで扱えるメモリの最大値は、2の32乗である4GBまで。実際はOSの制限で3GB程です。余剰メモリをRAMドライブとして使用することを抜きにすれば、Windows XPの機能だけでは、どうがんばっても、それ以上認識させることは不可能。そこで、標準で4GB以上のメモリを扱える64bit OSに注目が集まってきたのです。海外のPC通販サイトでは、OSにWindows Vistaの64bit版を搭載するのが主流になってきています。その効果もあってか、Vistaにおける64bit版の割合は、2008年10月に全ユーザの20%を超えました

では、64bit OSを使用するにあたり、注意しなければいけない事はなんでしょうか?2つあります。

1つは、使用中の機器に対応したドライバが存在するか。32bit用のドライバは流用できません。Vista発売時に散々言われていたデメリットです。しかし、それも今では解消されました。有名なメーカーの機器なら、64bit版ドライバが提供されていますので安心してください。また、サポート期間の過ぎた古い機器でも、OSに標準で用意されていたり、メーカーのサイトで公開されている場合があります。例外として、新製品でも地デジ用チューナーボードだけは注意しなければなりません。国内メーカーの製品は、どれも32bitドライバしか提供されておらず64bit OSで使用不可能。これは販売側の怠慢としか思えません。しかも、酷いメーカーになると、64bitドライバを提供していないのにVistaロゴに似せたマークを印刷して販売しています。有名なメーカーでも、日常的に行っている商法なので、64bit OSを使うときは十分注意してください。

2つ目は、使用中のアプリケーションが対応しているかどうか。現行の32bitアプリケーションであれば、驚くほど何の障害もなく動作します。問題なのは「16bitアプリケーション」と「特殊なドライバが必要」な場合です。Windows 95時代のアプリケーションは、インストーラーや本体が16bitの物が多く存在しました。64bit OSでは、「16bitアプリケーション」のサポートが切り捨てられてしまったので、それらを動かすことは出来ません。どうしても動かしたいのであれば、仮想環境にWindows 95をインストールして使ってみてください。

「特殊なドライバが必要」なケースのほうは、最近の32bitアプリケーションでも起こります。一番問題になりそうな例をあげると、不正使用防止のために設けたセキュリティ機構が該当します。一時期騒がれた、ルートキットまがいのドライバをOSに寄生させアプリケーションを監視するタイプは、最早絶望的です。64bit Windowsでは、未署名のドライバ、32bit以下のドライバはインストールできません。これらが代替の利くアプリケーションなら、使用を諦めれば済む話です。ですが、思い入れのあるゲームだったりしたら、泣かざるを得ません。とりあえず最良の解決策は、「古いOSを仮想環境のために保管しておく」、「ゲームは買ったら早い内に遊び、飽きるまでやり尽くす」ことです。

これら以外にも64bit OSの特徴が上手くまとまった特集記事が下記にありましたので、時間があれば読んでみてください。

64bit Vista完全導入ガイド (DOS/V Power Report - Impress)

最後に、もう1つ。別途、開発者が注意しなければいけないことがあります。64bitアプリケーションの作成のとき、OSのAPIやコンパイラがサポートしているデータモデルを常に意識しておく必要があります。C/C++を例にお話をします。64bit WindowsのVC++はLLP64モデルを採用しており、short int:16bit、int:32bit、long int:32bit、long long int:64bit、pointer:64bit。対する64bit Linux系のGCCはLP64モデルが採用され、long int:64bitだけ、LLP64モデルと異なっています。この相違点は、マルチプラットフォームでの開発で問題になります。LP64モデルを想定して作ったアプリケーションをLLP64モデルの環境でコンパイルすると、桁落ちを起こし異常動作するかもしれません。回避策は相違点のあるlong intを使わない、もしくはstdint.h(inttypes.h)をインクルードして明示的に変数幅を固定すること。それさえ守れば、OSやコンパイラ間、そして、32bitアプリケーションとの互換性を維持するのも難しくはないでしょう。

64bit#64ビットデータモデル (Wikipedia)

64ビットになると何が変わる?――64ビットプログラミングのデータモデル (2/2) (ITMedia)

Linuxと64bit環境 (VA Linux Japan株式会社)

2008年11月16日、Intelの新CPU、Core i7が発売されました。ハイパースレッディングによりOS上からは8コアに見えるそうです。対応マザーボードは、DDR3 SDRAMを3チャンネル単位で使うことが推奨され、合計6枚も挿せます。これは最大24GBのメモリが使えることを意味します。新しいPCの購入を考えている方は、これを機に思い切って64bitOSの世界に足を踏み入れてみては如何でしょうか。

2008年11月19日追記:デルを含む各ショップブランドから、OSにVista x64版を採用したCore i7搭載モデルが続々と販売開始されました。一応、XPにダウングレード出来るとこもあるようですが、メモリの問題も含め5年以上昔のOSで真価を発揮できるか疑問です。やはり、Vista x64版が妥当かと思います。

Share