未来のいつか/hyoshiokの日記

hyoshiokの日々思うことをあれやこれや

カーネル読書会

本日、カーネル読書会だった。お題はalternativeマクロのお話。お題提供者のこさきさんは、薄めの話を持ってきました、などと言っていたが、「薄い話」とわざわざ言う奴ほど濃い話をするという法則のとおり濃いお話であった*1。(すばらしい)
なんだかよくわからないのだが、IA32にはNOPと同様な機能をする命令が1バイトから7バイトまであるそうだ。通常のNOP命令は1バイト。0を足すみたいな命令も、使い方によっては、プログラム的には無効な作業なので、NOP的な命令と言えなくもない。そのような命令がいろいろあるらしい。
CISC(一つの命令のバイトの長さが異なる命令を持つコンピュータ)では1命令の長さがことなるのでいろいろなバイト長のNOPがありうる。自己書き換えプログラムである部分を書き換えたときの埋め草としてNバイトが必要だったらNバイト長のNOPを埋めればいいという話になる。例えば7バイトNOPにしたかったら1バイトのNOPを7個埋めるのではなく、7バイトのNOPを一つ埋める。
これがなんでよいかと言うと、命令をフェッチしてデコードするのが1バイトのNOPだと7回かかって、7バイトのNOPだと1回ですむので、命令デコード部分のコストが安くなる。正直言って本当かいなと思うが、理屈の上ではそういう話も成り立たないとは言えないよなあとか思うが、本当のところはどうだかわからない。ぜひ、インテルのP4を設計している人に聞きたい。
Out of Order実行の場合、命令の実行が機械語命令の字面の並び順を追い越してしまう場合があるので同期を取る必要があるのだが、自己書き換えプログラムの同期と言うのもいろいろ難しい話がある。キャッシュの効果とかいろいろ。
とかいろいろ。濃い話をした。

東京でヨタ話

シリコンバレーIntelがあるのでIntelの友人をつかまえてIA32の実装の話をいろいろ聞ける。(かもしれない)前の会社の同僚が今、たまたまIntelに勤めている。(かもしれない)大学時代の友人がIntelに勤めていてPentium4のバグを修正していたりする。(かもしれない)シリコンバレーにはSunがあるのでSunの友人をつかまえてSolaris10の実装をいろいろ聞ける。(かもしれない)シリコンバレーにはOracleがあるのでOracleの友人をつかまえてOracle10gの実装をいろいろ聞ける。(かもしれない)
もちろんNDAにまつわる話なんか聞けるわけはないが、公開されている情報でも、知っている人は知っているが知らない人は全然知らないし、思いつきもしないという類の話を突っ込んでいろいろ聞ける。
分野が違う人が一同に集まってあーだこーだ議論するメリットというのはまさにそこにある。ある分野では常識なんだけどそれ以外の分野では十分知られていない知識の交流の可能性がそこにある。例えば、CPUプロセッサの設計者、OS設計者、RDBMS設計者が一同に介してスケーラビリティの問題や信頼性の問題などを議論するという価値は相互の理解を深める意味で非常に重要である。
シリコンバレーと言う地域にはそのような地域的な優位性が間違いなくある。あった。米国ソフトウェア産業(特にシリコンバレー地域)の優位性と言ってもいい。
カーネル読書会を日本と言う地域の東京と言う場所で行う意義は、たまたまLinux OSというソフトウェアを肴にしているがCPUアーキテクチャに興味のあるものも、RDBMSに興味のあるものもOSに興味のあるものも一堂に介してヨタ話ができるというものである。OSSがなかったら実装レベルの話はできなかった。だってOSを作っている人が東京にはほとんどいないのだもの。RDBMSを作っている人がほとんどいないんだもの。
だけど、OSSであればOSや、RDBMSをいじくっている人は多くはないけどいなくはない。さらに、はてな楽天ライブドアmixigreeや、いわゆるLLでウェブサービスを提供しているプログラマはいっぱいいる。いっぱいいるぞ。
そして、下から上までのプログラマが一同に介してヨタ話をしはじめたら凄いことになるぞという予感はびしびしする。
東京と言う地域で日夜いろいろなところで勉強会やら何やらが行われている。老若男女わいわいがやがや。
これはすごい事だぞ。何かがおきそうな予感がする。
インターネットのおかげでNOPが何バイトでどうしたこうしたということを熱く語る仲間を発見できるようになった。スピンロックがどうだこうだなんてことに興味があるのは自分ひとりだと思っていたのに、ところがどっこい何人もいるではないか?(カーネル読書会は毎回数十人集まってしまう。アナウンスをずいぶん前に行なっちゃうと、東京地方以外の人もなんかにかこつけてわざわざカーネル読書会のために上京しちゃったりする。ありがたいことである)インターネットのおかげで、それが日記なのかブログなのか、SNSなのかあるいはカーネル読書会をはじめとする各種勉強会は別としても、そのようなメディアでそのような人を発見できるようになった。
人々は孤独である。人々は出会いを求めている。
カーネル読書会はそのような人の出会い系コミュニティだったのである。すごい発見だ。

*1:ちなみに、http://mkosaki.blog46.fc2.com/blog-entry-76.htmlあたりからいろいろ参照してください。勉強になります。