2009年10月28日

Japan Linux Symposium

先週開催されたJapan Linux Symposiumに参加してきました。

その感想をランダムに書き綴ってみようと思います。



組み込みLinuxもいよいよ注目されるようになってきた

Linuxははるか昔から組み込み向けCPUを含む多数のCPUアーキテクチャをサポートしてきています。しかしながら組み込みシステムをやっている者からすると、どうしても本流はx86アーキテクチャでサーバやデスクトップPCで、組み込み用途は存在感が薄かったと思います。組み込みのことは多数の開発者の視界の外にあったという感じです。

しかし今回のイベントではようやくその流れが変わってきたのではないかと感じられました。Linus Torvalds氏の話の中でも組み込みデバイスでのLinuxについての言及がありましたし、ネイティブ環境でしか使用できなかったツールを(組み込みでは必須である)クロスコンパイル環境で利用できるようにしたという話があったり、私が興味を持ったftraceというカーネルのトレースの機構がx86だけでなくすでにARMでも動いていたり。

カーネルのトレース機構のあれこれ

今回のイベントではカーネルのトレースに関するセッションが多数ありました。障害解析や性能解析など切り口はいくつかありますが、とにかくカーネルのふるまいを「見える化」したいという要望が強いということです。

このあたりのことは私も勉強しはじめたばかりなのですが、私の理解の範囲で書いてみると、最初はカーネルのトレースのためにSystemTapというものが使われていました。これはスクリプト言語で取得する情報を指定できるので、システムを動かしたままでも柔軟に変更が可能になっていました。ただしこれはカーネルのソースツリーには入っていないもので、ユーザーランド側にもソフトをインストールする必要がありました。また、スクリプト言語で書かれたものをコンパイルするためにネイティブ環境でしか動かないものだったそうです。(しかし、これをクロスコンパイルに対応したという話もありました。)

Ftraceというのはカーネルのソースにマージされたトレースの機構で、gccの-pgオプションにより、関数の先頭にフック関数を埋め込みます。また、情報の記録にlocklessのリングバッファを使うのでオーバーヘッドが少ないそうです。

複数のセッションでSystemTapとFtraceが比較されていました。似たような要求を異なるアプローチで実現しているので一長一短があります。どちらかがどちらを完全に置き換えてしまうというものではありません。また、Ftraceのフック関数をSystemTapで利用することでSystemTapを軽量化しようとする試みもあるそうです。

多様化は善

Linus Torvalds氏の話ではLinuxの開発にはロードマップがないそうです。

あるゴールが設定されていて、それに向かって積み上げていくというやり方ではありません。Linuxの進化は生物の進化と同じであるという話も聞いたことがあります。それの意味するところは多産多死。

多様化は善ということで、たくさんのバリエーションが発生することを許容する。アクティブに使われるものは洗練されて強化されていく一方で、うまくいかなかったり、使われずに放置されたりするものはそのうち消されてしまいます。冷酷な適者生存です。

先ほど挙げたFtraceのフック関数をSystemTapで利用する試みは、まさにこんな流れの中でのことに感じました。



トラックバックURL

コメントする

名前
 
  絵文字
 
 
記事検索
最新コメント
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード