第10章 管理、診断、トレース
この章では、Microsoft Windowsオペレーティングシステムの管理と構成に不可欠な基本的なメカニズムについて説明します。特に、Windowsレジストリサービス、統合バックグラウンドプロセスマネージャー(UBPM)、Windows Management Instrumentation(WMI)について説明します。
この章では、Windowsイベントトレーシング(ETW)、Windows通知機能(WNF)、およびWindowsエラー報告(WER)など、診断とトレースの目的で使用されるいくつかの基本的なコンポーネントについても説明します。Windowsグローバルフラグについての説明と、カーネルおよびユーザーのShimエンジンについて簡単に紹介して、この章を締めくくります。
10.6 動的トレース(DTrace)
前の節で説明したように、Windowsイベントトレーシング(ETW)は、オペレーティングシステムに統合された強力なテクノロジですが、それは静的なものです。つまり、エンドユーザーは、オペレーティングシステムまたはサードパーティのフレームワーク/アプリケーション(.NET CLRなど)に属する明確に定義されたコンポーネントによって生成されたイベントのみをトレースし、ログに記録することができます。
この制限を克服するために、Windows 10 May 2019 Update(19H1、バージョン1903)では、Windowsに組み込まれた動的トレース機能「DTrace」が導入されました。DTraceは、稼働中のシステムの管理者が、ユーザープログラムおよびオペレーティングシステム自身の動作を調査するために使用することができます。DTraceは、Solarisオペレーティングシステム(およびその子孫のillumos、いずれもUNIXベース)用に開発されたオープンソーステクノロジであり、Windows以外のいくつかのオペレーティングシステムにも移植されています。
DTraceは、「プローブ」と呼ばれる関心のある特定の場所で、オペレーティングシステムやユーザーアプリケーションの部分を動的にトレースすることができます。プローブとはバイナリコードの位置やアクティビティのことで、DTraceは、メッセージのログ記録、スタックトレースの記録、タイムスタンプなど、一連のアクションを実行するための要求をプローブにバインドすることができます。
プローブが「起動(fire)」すると、DTraceはプローブからデータを収集し、プローブに関連付けられたアクションを実行します。プローブとアクションの両方は、Dプログラミング言語を使用して、スクリプトファイルで(またはコマンドラインからDTraceアプリケーションに直接)指定します。