26.2. Implementatieverschillen

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.