This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.
Hoewel DTrace in FreeBSD erg lijkt op degene die in Solaris™ zit, zijn er verschillen die uitgelegd moeten worden voordat er verder wordt gegaan. Het primaire verschil dat gebruikers zullen zien is dat DTrace specifiek moet worden aangezet op FreeBSD. Er zijn kernelopties en modulen die aangezet moeten worden om DTrace juist te laten werken. Deze zullen later worden uitgelegd.
Er is een kerneloptie DDB_CTF
die gebruikt
wordt om ondersteuning voor het laden van
CTF-gegevens van kernelmodulen en de kernel
zelf. CTF is het Compact C Type Format van
Solaris™ welke een beperkte vorm van debuginformatie bevat
die vergelijkbaar is met DWARF en de befaamde
stabs. Deze CTF-gegevens worden door de
bouwmiddelen ctfconvert
en
ctfmerge
aan de binairen toegevoegd. Het
hulpmiddel ctfconvert
parseert
DWARF ELF-debug-secties die
door de compiler zijn aangemaakt en ctfmerge
voegt CTF ELF-secties van
objecten samen in hun executables of gedeelde bibliotheken. Meer
informatie over hoe dit voor de bouw van de kernel en FreeBSD aan te
zetten komt eraan.
Sommige aanbieders voor FreeBSD verschillen van die voor
Solaris™. De meest opmerkelijke is de aanbieder
dtmalloc
, welke het volgen van
malloc()
op soort in de FreeBSD-kernel
toestaat.
Alleen root
mag DTrace op FreeBSD
gebruiken. Dit heeft te maken met beveiligingsverschillen,
Solaris™ heeft enkele beveiligingscontroles op laag niveau die
nog niet bestaan in FreeBSD. Hierom is
/dev/dtrace/dtrace
strikt beperkt tot
root
.
Tenslotte valt de DTrace-software onder de
CDDL-licentie van Sun™. De Common
Development and Distribution License
wordt bij FreeBSD
geleverd, zie
/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE
of bekijk het online op
http://www.opensolaris.org/os/licensing.
Deze licentie houdt in dat een FreeBSD-kernel met de DTrace-opties nog steeds onder de BSD-licentie valt; de CDDL komt echter op de proppen wanneer de modulen in binaire vorm worden verspreid, of wanneer de binairen zijn geladen.