25.2. Eltérések az implementációban

Noha a FreeBSD alatt megtalálható DTrace implementáció nagyon hasonló az eredeti, Solaris™ alatt futó változathoz, tartalmaz bizonyos különbségeket, amelyeket a továbblépés előtt mindenképpen érdemes megemlítenünk. Az egyik legfontosabb ilyen szembetűnő különbség, hogy a FreeBSD esetén a DTrace használatát külön engedélyezni kell. A DTrace megfelelő működéséhez tehát a rendszermag konfigurációs állományában meg kell adnunk bizonyos beállításokat és modulokat kell betöltenünk. Ezekről hamarosan szó lesz.

A rendszermag konfigurációs állományában a DDB_CTF opció segítségével tudjuk engedélyezni ún. CTF adatok betöltését mind a rendszermag moduljaiból, mind pedig magából a rendszermagból egyaránt. A CTF a Solaris “Compact Type Format” elnevezésű formátumára utal, amellyel például a DWARF megoldásához hasonló módon tárolhatunk tömörített alakban különböző típusú nyomkövetési információkat. Ilyen CTF adatok többek közt a ctfconvert és a ctfmerge használatával rendelhetőek hozzá bináris állományokhoz. A ctfconvert segédprogram a fordítóprogram által az ELF állományokban szereplő DWARF típusú szakaszokban tárolt információkat képes beolvasni, és a ctfmerge a tárgykódban található CTF típusú ELF szakaszokat tudja végrehajtható állományokká vagy osztott könyvtárakka összefűzni. Röviden beszélni fogunk arról, hogyan lehet mindezeket a FreeBSD alaprendszerébe és rendszermagjába is beépíteni.

FreeBSD és Solaris esetén előfordulhat, hogy más fajta providerek állnak rendelkezésünkre. Ezek közül talán a legfontosabb a dtmalloc, amely a FreeBSD rendszermagjában típus szerint teszi lehetővé a malloc() függvény követését.

FreeBSD alatt kizárólag csak a root tudja használni a DTrace-t. Ennek oka a két operációs rendszer biztonsági megoldásai közti különbségekben keresendő, mivel a Solaris esetén létezik néhány olyan alacsonyszintű ellenőrzés, amely a FreeBSD-nél még nincs. Ezért például a /dev/dtrace/dtrace eszköz szigorúan csak a root számára érhető el.

Végezetül megemlítjük, hogy a DTrace felhasználására a SunCDDL licence vonatkozik. A Common Development and Distribution License FreeBSD a /usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE állományban található, vagy interneten keresztül a http://www.opensolaris.org/os/licensing címen.

Ezen licenc értelmében a DTrace támogatással készített FreeBSD rendszermagok továbbra is BSD licencűek maradnak, azonban a rendszerrel terjesztett binárisok futtatásakor vagy a modulok betöltésekor már a CDDL érvényesül.

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.