Termasuk dalam rangkaian kompiler GCC
Selain backend untuk pembuatan bytecode, GCC menyertakan port libgcc untuk eBPF dan alat untuk menghasilkan file ELF yang memungkinkan eksekusi kode di mesin virtual eBPF menggunakan loader yang disediakan kernel. Patch untuk mendukung eBPF di GCC disiapkan oleh para insinyur dari Oracle, yang telah menyiapkannya
Program untuk eBPF dapat didefinisikan dalam subset bahasa C, dikompilasi dan dimuat ke dalam kernel. Sebelum dieksekusi, juru bahasa eBPF memeriksa bytecode untuk penggunaan instruksi yang diizinkan dan menerapkan aturan tertentu pada kode (misalnya, tidak ada loop).
Awalnya, alat berbasis LLVM digunakan untuk mengkompilasi eBPF di Linux. Dukungan eBPF di GCC menarik karena memungkinkan Anda menggunakan satu toolkit untuk membangun kernel Linux dan program eBPF, tanpa menginstal dependensi tambahan.
Dalam bentuk program eBPF, Anda dapat membuat pengendali operasi jaringan, memfilter lalu lintas, mengelola bandwidth, memantau sistem, mencegat panggilan sistem, mengontrol akses, menghitung frekuensi dan waktu operasi, serta melakukan penelusuran menggunakan kprobes/uprobes/tracepoints.
Sumber: opennet.ru