第1章 はじめに
SystemTap はフリーソフトウェア (GPL) インフラストラクチャーを提供し、実行中の Linux システムに関する情報の収集を簡素化します。これにより、パフォーマンスまたは機能的な問題の診断が容易になります。SystemTap により、開発者はデータの収集に必要になる可能性のある未知で破壊的なインストルメント、再コンパイル、インストール、および再起動を行う必要がなくなります。
SystemTap では、ライブで実行中のカーネル用にインストルメンテーションを記述する簡単なコマンドラインインターフェイスとスクリプト言語を利用できます。このインストルメンテーションは、tapset ライブラリーで提供されるプローブポイントと関数を使用します。
簡単に説明すると、tapset は、カーネルサブシステムに関する知識を他のスクリプトで使用できる事前記述されたプローブおよび関数にカプセル化するスクリプトです。tapsets は C プログラムのライブラリーに類似しています。これらのライブラリーは、カーネルエリアの基礎となる詳細を非表示にし、カーネルの管理および監視に必要な主な情報を公開します。これらは通常、カーネルの専門家によって開発されます。
tapset は高レベルなデータとサブシステムの状態遷移を公開します。多くの場合、優れた tapset の開発者であれば、SystemTap ユーザーがカーネルサブシステムの低レベルの詳細をほとんど認識していないと想定しています。そのため、tapset の開発者は、通常の SystemTap ユーザーが有用で便利な SystemTap スクリプトを記述するのに役立つ tapset を記述します。
1.1. 本ガイドの目的
本ガイドは、SystemTap の最も有用で一般的な tapset エントリーを取り上げることを目的としています。また、適切な tapset 開発やドキュメントに関するガイドラインも記載しています。本ガイドに含まれる tapset の定義は、各 tapset ファイルのコードの適切にフォーマットされたコメントから自動的に抽出されます。そのため、本ガイドの定義に対する改訂は、それぞれの tapset ファイルに直接適用する必要があります。