A GCC elfogadta az eBPF-be való fordító hátterét

A GCC fordító készlet része elfogadta kód a Linux kernelében beépített bytecode értelmező programok fordításához eBPF. A JIT-fordítás alkalmazásának köszönhetően a kernelben a bytecode futás közben gépi utasításokká transzformálódik, és natív kód teljesítményével hajtódik végre. Az eBPF támogatásáról szóló javítások elfogadva a GCC 10 kiadási ágában.

A bytecode generálásához szükséges backend mellett a GCC tartalmazza az eBPF-hez készült libgcc portot és az ELF-fájlok létrehozásához szükséges eszközöket, amelyek lehetővé teszik a kód futtatását az eBPF virtuális gépben az operációs rendszer által biztosított betöltőprogramok használatával. Az eBPF támogatásához tartozó javításokat az Oracle mérnökei készítették, akik korábban már biztosították az eBPF támogatását a GNU binutils-ban. Fejlesztés alatt áll egy szimulátor és javítások a GDB-hez, amelyek lehetővé teszik az eBPF programok hibakeresését anélkül, hogy betöltenék a kernelbe.

Az eBPF programok egy részes C nyelven definiálhatók, fordíthatók és betölthetők a kernelbe. A végrehajtás előtt az eBPF értelmező ellenőrzi a bytecode-ot, hogy az engedélyezett utasításokat alkalmazza-e, és bizonyos szabályokat szab a kódra (például ciklusok tilalma).
Kezdetben az eBPF fordításához Linux alatt LLVM alapú eszközkészletet használtak. Az eBPF GCC támogatása érdekessé teszi, mivel lehetővé teszi, hogy ugyanazt az eszközkészletet használjuk a Linux kernel és eBPF programok összeállításához, további függőségek telepítése nélkül.

Az eBPF programok segítségével network ops kezelőket hozhatunk létre, szűrhetjük a forgalmat, kezelhetjük a sávszélt, nyomon követhetjük a rendszerek működését, elfoghatjuk a rendszerhívásokat, kontrollálhatjuk a hozzáférést, megszámlálhatjuk az eljárások gyakoriságát és végrehajtási idejét, valamint nyomkövetést végezhetünk kprobes/uprobes/tracepoints használatával.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster