全4619文字

 Windowsの内部構造を詳細に解き明かす定番書籍「インサイドWindows」。1992年の初版発行以来(初版の訳書は1993年発行)、Windowsに接するすべてのITエンジニアのバイブルとして永く読み継がれてきました。最新刊の第7版は、2017年5月に上の原書が発行され(訳書の発行は2018年5月、山内和朗訳)、約4年の歳月を経て2021年10月に下の原書が発行されました(訳書の発行は2022年9月、山内訳)。

 第7版完結を機に、「インサイドWindows」の読みどころを、上(第1章~第7章)と下(第8章~第12章)から抜粋してお届けします。今回は第10章(下)からの抜粋。Windows 10に新たに組み込まれた動的トレース機能「DTrace」を使ってみましょう。(日経BOOKSユニット第2編集部)

第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アプリケーションに直接)指定します。