binary 2.0 カンファレンス参加
縁あってカンファレンスを見に行くことができました。印象に残ったキーワード等を並べてみます。
高林さん
- 冒頭から会場中が笑いの渦。プレゼンが(やっぱり)すごく面白い。
- 「2.0がついていればなんでもよかった」
- 「signalを深追い、佳境」
- 「CNETで特集される日も近い」
- binary hacks?
- "ハックリタイ"は青森の地名*1
ひげぽんさん
プログラムはなぜ Mona OS で動くか?fork?何それ?
- MONAのカーネルはC++、ブート部分だけなぜかC#
- 会場のMona認知率はほぼ100%!! メジャーOS。
- 動画が再生できる
- Monaは5万行
- ノーガードOS? ご本人談。
- H/Wの割り込みもメッセージ化してユーザ空間で処理!!
- Binary 2.0リングに参加してね
浜地さん
青笹さん
G-Inspector -- GTK+ ランタイムインスペクション
中村さん
- 個人的に一番楽しみにしていたセッション。期待通り 最高 でした。
- 「キャッチボールはできません(=投げ返すのは無理よ)」でまず会場笑。掴みはオッケー
- 「努力すれば目でname mangling & その逆ができるようになります(実演付き)」でまた爆笑
- 「DWARF2はプログラム言語」
- 「gccで一番よく使うオプションは-S」 ⇒爆笑、でもおいらもそうかもしれないな
- 例外処理方式にはSjLjとDwarf2があるが、前者はつまらんので今回は後者を説明
- unwindは『超リターン』
- C++のtype_infoクラス(特にその中のdo_catch()関数)を使ってcatchできるか判定
- キーワードいくつか
- eh_frame
- gcc_except_table
- __cxa_allocate_exception
- __cxa_throw
- CIE, FDE, LSDA ...
- LSDA
- 捕まえる範囲
- 捕まえる型
- ハンドラのアドレス
- 質疑応答 (by 私。答えにくい質問をしちゃってごめんなさい・・・)
首藤さん
- Core Wars (1985)
- x86でPCを取得するには? ⇒ "call 次命令" して次命令のpoplでPCをスタックからpopすればいい
- shuJITでは、「一度だけ実行すればよい処理を二度目以降はスキップするために自己書き換えを使った
- もうひとつ、初回だけINT3でシグナルを受けて、ハンドラ内で初回だけの処理をするというのもやった。INT3だと、0xCCと一バイトの命令になるので、書き換えのatomicityを気にしなくて良く、楽。
- アトミックな書き換え
- XCHGとか
- バスをロックとか
- ...
- でも、4〜8バイトくらいが限界
- 他のスレッドを停止する方法もあるが、「罠にかける」方法もあるよ
- 他スレッドがそのうち実行する場所に EB FE をアトミックに書き込んでしまえばいい
- すると、無限ループに陥る
八重樫さん
- 「本日は大変レベルの低い皆さんにお集まりいただき」⇒爆笑
- 「ハードを知らずしてバイナリを語ることなかれ」
- 「下には下がいる!」
- 「ハードコアバイナリアン」
- 「IEEE754 浮動小数点フォーマットを素で触る喜び」
- 自作ハードでのプレゼンテーション
- 世界初 "GDBプレゼン"
- 自作のボードにプロジェクタを接続、ボードとPCをRS232Cで接続
- OpenOfficeで作成したプレゼンを画像に変換、その場でgdbで1枚づつボードに転送!!
- ゆーっくりページがめくられるんですよ :-)
- 640x480x8色(デジタル)
- OpenCores.orgのPlasma 25MHz, MIPS-I互換
- お勧めハード
- お勧めツール
- ISE Webpack
- ModelSIM XE