GCC indi eBPF-ə tərtib etmək üçün arxa plana daxildir

GCC kompilyator dəstinə daxildir qəbul edilmişdir Linux nüvəsinə quraşdırılmış bayt kodu tərcüməçisi üçün proqramların tərtib edilməsi üçün kod eGMP. JIT kompilyasiyasının istifadəsi sayəsində nüvənin bayt kodu tez bir zamanda maşın təlimatlarına çevrilir və yerli kodun icrası ilə icra olunur. eBPF dəstəyi ilə yamalar qəbul edildi GCC 10 buraxılışının hazırlandığı filiala.

Baytkod yaratmaq üçün arxa plana əlavə olaraq, GCC eBPF üçün libgcc portunu və nüvə ilə təmin edilmiş yükləyicilərdən istifadə edərək eBPF virtual maşınında kodu icra etməyə imkan verən ELF faylları yaratmaq üçün alətləri ehtiva edir. GCC-də eBPF-ni dəstəkləmək üçün yamaqlar Oracle-dan olan mühəndislər tərəfindən hazırlanmışdır təmin olunur GNU binutils-də eBPF dəstəyi. GDB üçün simulyator və yamaqlar da hazırlanır ki, bu da eBPF proqramlarını kernelə yükləmədən debug etməyə imkan verəcək.

eBPF üçün proqramlar C dilinin alt dəstində müəyyən edilə, tərtib oluna və nüvəyə yüklənə bilər. İcra etməzdən əvvəl eBPF tərcüməçisi icazə verilən təlimatların istifadəsi üçün bayt kodunu yoxlayır və koda müəyyən qaydalar qoyur (məsələn, döngələr yoxdur).
Əvvəlcə Linux-da eBPF-ni tərtib etmək üçün LLVM əsaslı vasitələrdən istifadə edilmişdir. GCC-də eBPF dəstəyi maraqlıdır, çünki o, əlavə asılılıqlar quraşdırmadan Linux nüvəsini və eBPF proqramlarını yaratmaq üçün bir alət dəstindən istifadə etməyə imkan verir.

eBPF proqramları şəklində siz şəbəkə əməliyyat idarəçiləri yarada, trafiki süzə, bant genişliyini idarə edə, sistemlərə nəzarət edə, sistem zənglərini ələ keçirə, girişə nəzarət edə, əməliyyatların tezliyini və vaxtını hesablaya, kprobe/uprobes/tracepoints istifadə edərək izləyə bilərsiniz.

Mənbə: opennet.ru

Добавить комментарий