GCC derleyici paketine dahildir
Bayt kodu oluşturmaya yönelik bir arka uca ek olarak GCC, eBPF için bir libgcc bağlantı noktası ve çekirdek tarafından sağlanan yükleyicileri kullanarak eBPF sanal makinesinde kod yürütmeyi mümkün kılan ELF dosyaları oluşturmaya yönelik araçlar içerir. GCC'de eBPF'yi destekleyen yamalar, Oracle mühendisleri tarafından hazırlandı.
eBPF programları C dilinin bir alt kümesinde tanımlanabilir, derlenebilir ve çekirdeğe yüklenebilir. Yürütmeden önce, eBPF yorumlayıcısı bayt kodunu izin verilen talimatların kullanımı açısından kontrol eder ve koda belirli kurallar koyar (örneğin, döngü yok).
Başlangıçta eBPF'yi Linux'ta derlemek için LLVM tabanlı araçlar kullanıldı. GCC'deki eBPF desteği ilginçtir çünkü ek bağımlılıklar kurmadan Linux çekirdeğini ve eBPF programlarını oluşturmak için tek bir araç seti kullanmanıza olanak tanır.
eBPF programları biçiminde, ağ operasyon işleyicileri oluşturabilir, trafiği filtreleyebilir, bant genişliğini yönetebilir, sistemleri izleyebilir, sistem çağrılarını engelleyebilir, erişimi kontrol edebilir, operasyonların sıklığını ve zamanını sayabilir ve kprobes/uprobes/tracepoints kullanarak izleme gerçekleştirebilirsiniz.
Kaynak: opennet.ru