Solaris 動的トレースガイド

インタフェース属性

DTrace は、インタフェースについて説明するとき、2 つの安定性レベルと 1 つの依存クラスからなる三つ組の属性を使用します。慣習上、インタフェース属性は次の順序で記述します。各属性は、スラッシュで区切ります。

name-stability / data-stability / dependency-class

インタフェースの「名前の安定性 (name-stability)」は、D プログラム内または dtrace(1M) コマンド行に表示されるインタフェース名の安定性レベルです。たとえば、D 変数名 execname は、安定しています。 Sun は、この識別子が、「安定」インタフェースの規則 (上記参照) に従って、D プログラム内で引き続きサポートされることを保証します。

インタフェースの「データの安定性 (data-stability)」は、名前の安定性とは別のものです。この安定性レベルは、インタフェースや関連データセマンティクスで使用されるデータ書式を保持する Sun の責任について説明するものです。たとえば、D 変数 pid は、「安定」インタフェースです。 プロセス ID は、Solaris で使用される安定した概念です。Sun は、pid 変数が pid_t 型であり、「安定」インタフェースの規則に従って、プローブを起動したスレッドのプロセス ID に設定されるというセマンティクスを持つことを保証します。

インタフェースの「依存クラス (dependency-class)」は、名前やデータの安定性とは別のものです。依存クラスは、このインタフェースが現在のオペレーティングプラットフォームやマイクロプロセッサに固有であるかどうかを示します。

DTrace と D コンパイラは、プロバイダ、プローブ記述、D 変数、D 関数、型、プログラム文自体を含む、DTrace インタフェースの全構成要素の安定性属性を追跡します。この 3 つの値は、互いに異なることがあります。たとえば、D 変数 curthread は、「Stable/Private/Common」という属性を持っています。 これは、変数名が「安定」していて、すべての Solaris オペレーティングプラットフォームに「共通」であるが、この変数は、Solaris カーネルの実装アーティファクトである「非公開」のデータ書式へのアクセスを提供するという意味です。ほとんどの D 変数はユーザー定義の変数なので、「Stable/Stable/Common」の属性を持っています。