25.2. Implementatieverschillen
Terug | Hoofdstuk 25. DTrace | Volgende

## 25.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.

Terug | Omhoog | Volgende
Hoofdstuk 25. DTrace | Begin | 25.3. Ondersteuning voor DTrace aanzetten