25.2 Διαφορές στην Υλοποίηση

Αν και το DTrace στο FreeBSD είναι αρκετά όμοιο με αυτό του Solaris™, υπάρχουν κάποιες διαφορές που θα πρέπει να τις εξηγήσουμε πριν συνεχίσουμε. Η μεγαλύτερη διαφορά που θα παρατηρήσουν οι χρήστες, είναι ότι στο FreeBSD το DTrace πρέπει να ενεργοποιηθεί χειροκίνητα. Υπάρχουν διάφορες επιλογές και αρθρώματα για τον πυρήνα που πρέπει να ενεργοποιηθούν ώστε το DTrace να λειτουργεί σωστά. Θα εξηγήσουμε αργότερα αυτές τις ρυθμίσεις.

Η επιλογή DDB_CTF του πυρήνα χρησιμοποιείται για να ενεργοποιήσει την υποστήριξη φορτώματος των δεδομένων CTF από τον πυρήνα και τα αρθρώματα του. Το CTF είναι το Compact C Type format του Solaris, το οποίο ενθυλακώνει μια ελαττωμένη μορφή πληροφοριών αποσφαλμάτωσης (debugging), όμοια με το DWARF και τα stabs. Αυτά τα δεδομένα CTF προστίθενται στα εκτελέσιμα μέσω των εργαλείων ctfconvert και ctfmerge. Το βοηθητικό πρόγραμμα ctfconvert ερμηνεύει τα τμήματα των DWARF ELF που περιέχουν πληροφορίες debug (δημιουργούνται από το μεταγλωττιστή), και το ctfmerge συγχωνεύει τα τμήματα CTF και ELF από τα αντικείμενα σε άλλα εκτελέσιμα ή κοινόχρηστες βιβλιοθήκες. Περισσότερες πληροφορίες για την ενεργοποίηση των παραπάνω στη μεταγλώττιση του πυρήνα και του συστήματος του FreeBSD, θα δούμε παρακάτω.

Στο FreeBSD κάποιοι παροχείς είναι διαφορετικοί σε σχέση με το Solaris. Ο πιο αξιοσημείωτος είναι ο παροχέας dtmalloc ο οποίος επιτρέπει το tracing του malloc() ανάλογα με τον τύπο του, στον πυρήνα του FreeBSD.

Μόνο ο root μπορεί να χρησιμοποιήσει το DTrace στο FreeBSD. Αυτό σχετίζεται με διαφορές στην ασφάλεια, καθώς το Solaris διαθέτει κάποιους ελέγχους ασφάλειας χαμηλού επιπέδου, οι οποίοι δεν υπάρχουν ακόμα στο FreeBSD. Για το λόγο αυτό, η χρήση της συσκευής /dev/dtrace/dtrace απαγορεύεται αυστηρά για όλους τους χρήστες εκτός από τον root.

Τέλος, το λογισμικό DTrace βρίσκεται υπό την άδεια CDDL της Sun™. Μπορείτε να διαβάσετε το κείμενο της άδειας Common Development and Distribution License στο FreeBSD, στο αρχείο /usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE ή να το διαβάσετε online στη διεύθυνση http://www.opensolaris.org/os/licensing.

Η άδεια ουσιαστικά σημαίνει ότι ένας πυρήνας FreeBSD με τις επιλογές του DTrace, εξακολουθεί να βρίσκεται υπό την άδεια BSD. Ωστόσο το CDDL εμπλέκεται τη στιγμή που γίνεται διανομή των αρθρωμάτων σε δυαδική μορφή, ή τη στιγμή που φορτώνονται.

Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την <questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.