dtrace でもっとインタラクティブシェル!
description
Transcript of dtrace でもっとインタラクティブシェル!
dtrace でもっとインタラクティブシェル!
2010/12/16 kei <http://apribase.net>
自己紹介
Mandriva Linux や on JVM 言語好き
最近は割と雑食
今日は OpenSolaris 寄りなお話
まずはこれを見てほしい
さっきはなにやったの?
さっきはなにやったの?dtrace を使って
システムコールをフックしました!
コマンド実行時に声を出してくれます。
なんでつくったの?人よりシェルと話す時間のが長くて寂しかった。
声が聞きたくなるじゃない、
人間だもの (´・ω・`)
# 教育用サンプル作成が本当の目的
dtrace ってなに?システム情報取得のための
トレースツールです
dtrace ってなに?プローブと呼ばれる計測ポイントで
パフォーマンスを計測したり
システムコールを検知したり
関数フローをトレースしたり
だいたいなんでも見れます
世間の dtrace の紹介をおさらいします
ほら、プローブ数すごいでしょ?
$ dtrace -l プローブの一覧を出す
ほら、プローブ数すごいでしょ?
$ dtrace -l プローブの一覧を出す
$ dtrace -l | wc -l 96898
ほら、プローブ数すごいでしょ?
$ dtrace -l プローブの一覧を出す
$ dtrace -l | wc -l 96898
多すぎるし 呪文すぎてわかりません
トレースすごいでしょ?
$ sudo dtrace -n "syscall::open:entry, syscall::stat:entry, syscall::stat64:entry / execname == \"vim\" / { trace(copyinstr(arg0)) } "
トレースすごいでしょ?
$ sudo dtrace -n "syscall::open:entry, syscall::stat:entry, syscall::stat64:entry / execname == \"vim\" / { trace(copyinstr(arg0)) } "
トレースする目的がないと楽しくない orz
もっと入門者向けの例を
真面目な話ばかりで遊んでいる記事がない
もっと入門者向けの例を
真面目な話ばかりで遊んでいる記事がない
正直、使い方を覚えるだけでもつらかった
もっと入門者向けの例を
真面目な話ばかりで遊んでいる記事がない
正直、使い方を覚えるだけでもつらかった
よろしい、ならばわたしが人柱だ・・・!
もっと入門者向けの例を
フックに着目して、イベントに合わせてアクションを起こすサンプルを提案したい
これならアプリのイベントリスナー感覚で
既存のシステムの上におもちゃを作れる・・・!
もっと入門者向けの例を
もっと入門者向けの例を
← 土日の試行錯誤の跡
もっと入門者向けの例を
← キーイベントプローブが Mac だとなかった
もっと入門者向けの例を
← キーイベントプローブが Mac だとなかった
出だしで泣きたくなった。
もっと入門者向けの例を
← zsh のソースを解析してみた
もっと入門者向けの例を
← zsh のソースをいろいろ読んでみた それらしい関数なのに反応しない orz
もっと入門者向けの例を
← プロセス監視したら fork して逃げられた?
もっと入門者向けの例を
← プロセス監視したら fork して逃げられた?
俺はお前を見ていたいんだ・・・!
もっと入門者向けの例を
← TTY 入力を奪うことにした
もっと入門者向けの例を
← TTY 入力を奪うことにした 1文字打ち込むたびに喋って 賑やかなること、うけあい。
もっと入門者向けの例を
← システムコールをいろいろ奪ってみた
もっと入門者向けの例を
← システムコールをいろいろ奪ってみた CPU が暴走して MacBook Air が火事
もっと入門者向けの例を
↓ システムコール execve が zsh から呼ばれたとき
system() で python ワンライナーを呼ぶことで落ち着きました。 (問題もあるけどね)
dtrace が使える環境Solaris 10
OpenSolaris
Mac OS X (Leopard からサポート)
FreeBSD (7.1-RELEASE からサポート)
などで使えます。
OS の基礎は勉強したほうがいいかも
OS (プロセス周り) やシェル周りは少しだけ知ってたほうが遊びやすいかもしれないです
Operating System Concepts 8th Edition
Abraham Silverschatz
dtrace 本は 2011/03 発売
dtrace 本はようやく来年出るようです。
DTrace: Dynamic Tracing in
Oracle Solaris, Mac OS X and FreeBSD
dtrace を触った人はこんな技術も触っています
ZFS (ファイルシステム仮想化)
Zone (コンテナ仮想環境)
Crossbow (ネットワーク仮想化)
東京 OpenSolaris 勉強会 忘年会 2010.12 http://atnd.org/events/10514
次にやりたいこと
dtrace で文字列結合できないのが残念だった
dtrace D言語を拡張できれば幸せじゃ?
Dアセンブリ?を解析できればコンパイラ作れる・・・!
おわり
ありがとうございました
$ say thanks