Περιλαμβάνεται στη σουίτα μεταγλωττιστή GCC
Εκτός από ένα backend για δημιουργία bytecode, το GCC περιλαμβάνει μια θύρα libgcc για eBPF και εργαλεία για τη δημιουργία αρχείων ELF που καθιστούν δυνατή την εκτέλεση κώδικα στην εικονική μηχανή eBPF χρησιμοποιώντας φορτωτές που παρέχονται από τον πυρήνα. Patches για την υποστήριξη του eBPF στο GCC προετοιμάστηκαν από μηχανικούς της Oracle, οι οποίοι είχαν ήδη
Τα προγράμματα για το eBPF μπορούν να οριστούν σε ένα υποσύνολο της γλώσσας C, να μεταγλωττιστούν και να φορτωθούν στον πυρήνα. Πριν από την εκτέλεση, ο διερμηνέας eBPF ελέγχει τον bytecode για τη χρήση των επιτρεπόμενων εντολών και επιβάλλει ορισμένους κανόνες στον κώδικα (για παράδειγμα, χωρίς βρόχους).
Αρχικά, χρησιμοποιήθηκαν εργαλεία βασισμένα στο LLVM για τη μεταγλώττιση του eBPF σε Linux. Η υποστήριξη eBPF στο GCC είναι ενδιαφέρουσα επειδή σας επιτρέπει να χρησιμοποιήσετε ένα κιτ εργαλείων για να δημιουργήσετε τον πυρήνα Linux και τα προγράμματα eBPF, χωρίς να εγκαταστήσετε πρόσθετες εξαρτήσεις.
Με τη μορφή προγραμμάτων eBPF, μπορείτε να δημιουργήσετε χειριστές λειτουργιών δικτύου, να φιλτράρετε την κίνηση, να διαχειριστείτε το εύρος ζώνης, να παρακολουθείτε συστήματα, να παρακολουθείτε κλήσεις συστήματος, να ελέγχετε την πρόσβαση, να μετράτε τη συχνότητα και τον χρόνο των λειτουργιών και να πραγματοποιείτε ιχνηλάτηση χρησιμοποιώντας kprobes/uprobes/tracepoints.
Πηγή: opennet.ru