【レポート】
日本AMDとマイクロソフトは22日、開発者向けに「AMD & Microsoft Software Developer Conference」を開催、AMD64のマーケティング戦略・アーキテクチャやWindows for 64-bit Extended Systemsについて、それぞれ両社より説明があった。マイクロソフトのサイトで公開されているのでご存じの方もいるだろうが、ここでは主に、マイクロソフトの2氏より説明のあったWindows for 64-bit Extended Systems関連の話題を中心にご紹介したい。
マイクロソフトは現在、AMD64(およびIA-32e)プラットフォーム向けに「Windows XP 64-bit Edition for 64-bit Extended Systems」および「Windows Server 2003 for 64-bit Extended Systems」の開発を進めている。どちらも今年第4四半期の出荷を予定しているが、既報のように、前者は一般向けの早期評価プログラムも行われており、すでに入手して試しているユーザーも多いだろう。今回、これらのプラットフォームでのC/C++アプリケーション開発について、同社デベロッパーマーケティング本部 .NETマーケティング部 デベロッパーエバンジェリスト 佐藤直樹氏より説明があった。
最初に開発環境についてだが、現在、AMD64用のコンパイラはベータサイトより提供されている。これはWin32環境でのクロスコンパイラとなっており、オプションはほぼ32bitコンパイラと同一だが、ソースコードのポータビリティ(Win32/64間)に関する警告を出す「/Wp64」など、いくつかのオプションが追加されている。32bit版からの機能的な変更点としては、64bitコンパイラではインラインアセンブリはサポートしておらず、移行の際はその部分をC/C++等で書き換えるか、別モジュールとして外部に出す必要があるということだ。
氏はデモンストレーションとして、64bit版Windows XP上で簡単なCUIアプリを作成。printf()のみのシンプルなコードだが、コンパイル・実行のあと、64bitアプリかどうか確認するためにdumpbinコマンドを使用し、実行ファイルのヘッダ情報を解析してみせた。特徴的なヘッダ情報として、対応マシンを表す"machine"が「AMD64」に、"magic #"が「PE32+」になっている様子などが紹介された。
次に、Win64アプリを開発する際のガイドラインについて説明された。一番重要な点として氏が指摘したのが「計画」で、まず、本当にその32bitアプリを64bitアプリに移行する必要があるのかどうかという所から検討して欲しいという。「全てのアプリケーションが64bit対応になればアーキテクチャ的にも美しいが、開発コストやメンテナンスなど様々な問題も出てくる。場合によっては、部分的に64bitに移行するなどといったことも考えられる」(同氏)。
開発におけるガイドラインとして紹介されたのは、「データモデル」「API」「プログラミングの注意点」の3項目。まずデータモデルについてだが、Win32環境とWin64環境でのデータモデルの違いはそれほど大きくない。Pointerこそ64bitになるものの、int/longともに32bitサイズのまま変更されておらず、ソースコードのコンパチビリティは高い。これは、「移行にかかるコストを最小限にしつつ、64bitのパワフルな環境のメリットを活かしたい」ことを目指したためであるという。ただ、長さを明示したい場合のために、「INT32」「INT64」などの型も導入されている。
APIについても、大部分のAPIは変更なしで利用できる。ただ変更のあるものとしては、(1)拡張されたデータタイプを利用するために引数の型が変更、(2)64bit引数を2つの引数に分割するなどAPIそのものが変更、(3)WindowとClassに関するポリモーフィックなAPIなどを追加--といったものも一部あり、使用に際しては注意が必要だ。
プログラミングの注意点としては、データアライメント、構造体、定数の扱いなどについて説明された。C/C++では通常、構造体がメモリ上に配置されるときなど、メモリアクセスを最適化するために各メンバ変数の適切なアライメントが行われる。ところが、メモリの基本となるサイズが32bitと64bitで異なるため、挿入されるパディングのサイズが変わる。また、希なケースだとは思うが、"-1"をわざわざ"0xffffffff"と補数表現していた場合、64bit環境では"-1"ではなくなってしまうなど、定数の扱いにも少し注意が必要となる。
こういった注意点は存在するものの、それでも16bitから32bitへの移行に比べ、変化は小さいという。氏は以前、32bit環境への移行を行った際、「世界が変わった」という感じを受けたそうだが、今回の32bitから64bitへはそれほど大きな変化ではなく、「"ちょっと隣の家に入る"というような気楽さがある」とのことだ。「Platform SDKをダウンロードし、64bit開発に関する情報を確認してほしい」「注意深くソースコードを確認してほしい」と述べ、講演をまとめた。
| CTC、複数のDCを仮想で利用するマルチ仮想データセンタサービスの実証実験 [09:38 5/22] |
| 【コラム】にわか管理者のためのWindowsサーバ入門 第87回 パフォーマンス警告による負荷状況記録[2003] [09:00 5/22] |
| Twitterが「Do Nt Track」を導入 - プライバシー保護の動きがさらに拡大 [08:30 5/22] |
| Nginx、早くも評価版開発スタート - 1.3系でSPDY対応を目指す [08:30 5/22] |
| 慶応大、好き嫌いや眠気などを簡単に測定できる簡易脳波計測器を開発 [07:30 5/22] |
|
「五月病は病気」との回答が半数超 - 五月病と感じている人へのアンケートで [10:45 5/22] ライフ |
|
舘ひろしが『純と愛』で朝ドラ初出演! 夏菜の熱愛報道にナイスフォロー!? [10:30 5/22] エンタメ |
|
【レビュー】ボールペンが付いた新スタイラス「Bamboo Stylus duo」徹底レビュー (後編) [10:24 5/22] クリエイティブ |
|
富野由悠季や横尾忠則らが講師に、社会人向け講座「じぶん学」開講 [10:10 5/22] クリエイティブ |
|
[AKB48選抜総選挙]投票スタート “前田票”の行方に注目 [10:00 5/22] エンタメ |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。