Obwohl DTrace in FreeBSD sehr ähnlich zu dem in Solaris™ ist, existieren doch Unterschiede. Der Hauptunterschied besteht darin, dass in FreeBSD DTrace als eine Menge von Kernelmodulen implementiert ist und DTrace nicht verwendet werden kann, bis diese Module geladen wurden. Um alle nötigen Module zu laden, geben Sie ein:
#
kldload dtraceall
Beginnend mit FreeBSD 10.0-RELEASE werden die Module
automatisch geladen, sobald dtrace
aufgerufen
wird.
FreeBSD verwendet die Kerneloption DDB_CTF
,
um die Unterstützung im Kernel für das Laden von
CTF-Daten aus Kernelmodulen und dem Kernel
selbst zu ermöglichen. CTF ist das Compact C
Type Format von Solaris™, welches eine reduzierte Form von
Debug-Informationen kapselt, ähnlich zu DWARF
und den antiken Stabs. Diese CTF-Daten
werden dem Binärcode von den ctfconvert
und
ctfmerge
Befehlen den Werkzeugen zum Bauen
des Systems hinzugefügt. Das
ctfconvert
-Dienstprogramm parst die vom
Compiler erstellten DWARF
ELF Debug-Abschnitte und
ctfmerge
vereint CTF
ELF-Abschnitte aus Objekten, entweder in
ausführbare Dateien oder Shared-Libraries.
Einige Provider in FreeBSD unterscheiden sich von der
Solaris™-Implementierung. Am deutlichsten wird das beim
dtmalloc
-Provider, welcher das Aufzeichnen
von malloc()
nach Typen im FreeBSD-Kernel
ermöglicht. Manche der Provider in Solaris™ wie
cpc
und mib
sind in FreeBSD
nicht vorhanden. Diese können in zukünftigen FreeBSD-Versionen
auftauchen. Weiterhin sind manche der Provider in beiden
Betriebssystemen nicht zueinander kompatibel, in dem Sinne daß
deren Sonden unterschiedliche Argumenttypen aufweisen. Dadurch
können D-Skripte, die unter Solaris™
geschrieben wurden, evtl. unter FreeBSD funktionieren oder auch
nicht, umgekehrt ist das genauso.
In FreeBSD darf DTrace wegen unterschiedlicher
Sicherheitskonzepte nur von root
verwendet werden. Solaris™
besitzt ein paar Audit-Funktionen auf den unteren Ebenen, die
noch nicht in FreeBSD implementiert sind. Deshalb kann nur
root
auf
/dev/dtrace/dtrace
zugreifen.
Zum Schluss muss noch erwähnt werden, dass die
DTrace-Software unter die CDDL Lizenz
fällt. Die Common Development and Distribution
License
wird von FreeBSD mitgeliefert, sehen Sie sich
dazu
/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE
an, oder lesen Sie die Online-Version unter
http://opensource.org/licenses/CDDL-1.0
. Während der
FreeBSD-Kernel mit den DTrace-Optionen immer noch
BSD-lizenziert ist, tritt die
CDDL in Kraft, wenn Module in Binärform
vertrieben werden oder die Binärdateien geladen werden.
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.