2006年12月15日,Binary 2.0 カンファレンス2006が開催された。Binary 2.0 カンファレンスは,機械語やコンパイラなど低レイヤーのプログラミング・テクニックを発表するイベントである。昨年第1回が開催され,今回が2回目となる。昨年の発表者により書籍「BINARY HACKS―ハッカー秘伝のテクニック100選」(オライリー・ジャパン刊)もまとめられている(関連記事)。


Binary 2.0カンファレンス会場
[画像のクリックで拡大表示]

 今回もさまざまな低レイヤー・プログラミングが披露された。佐藤祐介氏は「Hello, binary world」と題して,Cコンパイラgccの拡張機能を使い,main関数を実行せずに「Hello, world」というメッセージを表示する方法などを紹介。例えばメッセージを表示するprintf文はmain関数ではなく,そのコンストラクタとデストラクタとして記述する。mainを関数ではなく変数として定義し,機械語のリターン命令である195(16進数のC3)を代入しておく,といった具合だ。

 八重樫剛史氏は,PS3(PlayStation3)上のLinuxで,任天堂のWiiのリモコンをポインティング・デバイスとしてマウスがわりに使用するデモを披露した。Linux向けのWiiリモコンのドライバはすでに提供されていたが,PS3上で動作させるためににはPython本体やカーネル・ドライバのパッチを作成する必要があったという。その方法やパッチは八重樫氏のWikiで公開されている。


Wiiリモコン
[画像のクリックで拡大表示]

プレゼンテーションに使われたPS3
[画像のクリックで拡大表示]

プレゼンテーションは3次元のキューブに貼り付けられており,Wiiリモコンを振るとキューブが回転して次のページに移る
[画像のクリックで拡大表示]

 そのほかにも多くの興味深い発表があった。金田憲二氏は「X日で作る仮想マシンモニタ(に向けて)」と題し,情報収集を含め3週間程度,C言語で約3000行で仮想マシンモニタを作成た試みを紹介した。AMD64の仮想化支援機構を利用。ただし割り込み処理などは未実装という。

 田中哲氏は「getcontextの怪」と題し,IA64でgetcontext関数の挙動によりRubyが落ちるというバグを修正した経験を紹介。中村実氏は「マルチコア時代の並列プログラミング:ロックとメモリオーダリング」と題しlock-free synchronizationについて講演した。

 サイボウズ・ラボの竹迫良範氏は「Web2.0時代のAjax Binary Hacks」と題し,Ajaxアプリケーションでクロスドメインでデータ通信を行うためにgifファイルにバイナリ・データを埋め込んで送り込む方法を紹介。同じくサイボウズ・ラボの鴨志田良和氏は,FlashのActionScriptで圧縮データを効率的に扱う方法を解説した。

 g新部裕氏は「GNU on Binary 10.0: RMS and FUD」と題し,新部氏がFPGAの上で開発中の,設計情報を公開するフリー・ハードウエアを紹介。FPGAでUSBコントローラを実装中という。


新部氏がFPGAの上で開発中のフリー・ハードウエア
[画像のクリックで拡大表示]

 野首貴嗣氏は「ASCII 1.0」と題し,アスキー・アートで作ったアニメーションを披露,会場を和ませていた。

◎関連資料
Binary 2.0カンファレンス 2006 発表資料とレポート