Die Komponenten von DTrace
DTrace besteht aus einem shell-Kommando dtrace(1), einem Kernel-Modul gleichen Namens und der Programmiersprache "D". Die in dieser Sprache geschriebenen Programme werden auch DTrace-Programme genannt.
Dem shell-Kommando dtrace wird das auszuführende DTrace-Programm mitgegeben, entweder direkt als Argument auf der Kommandozeile oder in einer Datei (Option -s). Das Programm wird kompiliert und, falls es frei von Syntaxfehlern ist, als binäre Version (in DIF = D Intermediate Format) in das Kernel-Modul hinuntergeladen.
Ablauf eines DTrace-Programms
Das Kernel-Modul verändert entsprechend der im Programm angegebenen probes den Maschinencode des kernels unmittelbar im physikalischen Hauptspeicher. Auf diese Weise wird zur Laufzeit erkannt, wann der Kontrollfluss des Kernels diese probe erreicht hat. Darauf wird die im DTrace-Programm angegebene Aktion ausgeführt und im Anschluss daran mit der ursprüngliche Maschineninstruktion fortgefahren. Auf diese Weise finden die Dtrace-Aktionen auf eine für den übrigen Kernel "transparente" Weise statt.
Der Hauptspeicher bleibt an den aktivierten probes solange durch Dtrace verändert, bis das dtrace-Kommando abgebrochen wird (normalerweise mit STRG-C).