GCC sisaldab nüüd taustaprogrammi eBPF-i kompileerimiseks

Sisaldub GCC kompilaatorikomplekti aktsepteeritud kood Linuxi kernelisse sisseehitatud baitkooditõlgi programmide koostamiseks eGMP. Tänu JIT-i kompileerimise kasutamisele tõlgitakse kerneli baitkood käigult masinakäskudeks ja täidetakse algkoodi jõudlusega. eBPF-i toega plaastrid vastu võetud harule, millest GCC 10 väljalaset arendatakse.

Lisaks baitkoodi genereerimise taustaprogrammile sisaldab GCC libgcc porti eBPF-i jaoks ja tööriistu ELF-failide genereerimiseks, mis võimaldavad eBPF-i virtuaalmasinas koodi käivitada, kasutades kerneli pakutavaid laadijaid. Plaastrid eBPF-i toetamiseks GCC-s valmistasid ette Oracle'i insenerid, kes olid seda juba teinud ette nähtud eBPF-i tugi GNU binutilsis. Arendamisel on ka simulaator ja paigad GDB jaoks, mis võimaldavad teil eBPF-i programme siluda ilma neid kernelisse laadimata.

eBPF-i programme saab määratleda C-keele alamhulgas, kompileerida ja kernelisse laadida. Enne käivitamist kontrollib eBPF-i tõlk baitkoodis lubatud käskude kasutamist ja kehtestab koodile teatud reeglid (näiteks tsüklite puudumine).
Algselt kasutati eBPF-i kompileerimiseks Linuxis LLVM-põhiseid tööriistu. eBPF-i tugi GCC-s on huvitav, kuna see võimaldab teil Linuxi kerneli ja eBPF-i programmide koostamiseks kasutada ühte tööriistakomplekti ilma täiendavaid sõltuvusi installimata.

eBPF-programmide kujul saate luua võrguoperatsioonide töötlejaid, filtreerida liiklust, hallata ribalaiust, jälgida süsteeme, pealt kuulata süsteemikõnesid, kontrollida juurdepääsu, lugeda toimingute sagedust ja aega ning teostada jälgimist kprobes/uprobes/tracepoints kasutades.

Allikas: opennet.ru

Lisa kommentaar