GCC sisältää nyt taustaohjelman eBPF:ään kääntämistä varten

Sisältyy GCC-kääntäjäsarjaan Hyväksytyt koodi Linux-ytimeen sisäänrakennetun tavukooditulkin ohjelmien kääntämiseen eGMP. JIT-käännöksen käytön ansiosta ytimen tavukoodi käännetään lennossa konekäskyiksi ja suoritetaan natiivikoodin suorituskyvyllä. Korjaukset eBPF-tuella hyväksytty haaraan, josta GCC 10 -julkaisu kehitetään.

Tavukoodin luomiseen tarkoitetun taustaohjelman lisäksi GCC sisältää libgcc-portin eBPF:lle ja työkalut ELF-tiedostojen luomiseen, jotka mahdollistavat koodin suorittamisen eBPF-virtuaalikoneessa ytimen toimittamilla latausohjelmilla. Oraclen insinöörit valmistivat korjaustiedostoja eBPF:n tukemiseksi GCC:ssä tarjotaan eBPF-tuki GNU binutilsissa. Myös GDB:lle on kehitteillä simulaattori ja korjaustiedostot, joiden avulla voit korjata eBPF-ohjelmia lataamatta niitä ytimeen.

eBPF:n ohjelmat voidaan määrittää C-kielen osajoukossa, kääntää ja ladata ytimeen. Ennen suoritusta eBPF-tulkki tarkistaa tavukoodin sallittujen käskyjen käytön varalta ja asettaa koodille tiettyjä sääntöjä (esimerkiksi ei silmukoita).
Aluksi eBPF:n kääntämiseen Linuxissa käytettiin LLVM-pohjaisia ​​työkaluja. eBPF-tuki GCC:ssä on mielenkiintoinen, koska sen avulla voit käyttää yhtä työkalupakkia Linux-ytimen ja eBPF-ohjelmien rakentamiseen ilman lisäriippuvuuksien asentamista.

eBPF-ohjelmien muodossa voit luoda verkkotoimintojen käsittelijöitä, suodattaa liikennettä, hallita kaistanleveyttä, valvoa järjestelmiä, siepata järjestelmäpuheluita, ohjata pääsyä, laskea toimintojen taajuutta ja kestoa sekä suorittaa jäljitystä kprobes/uprobes/tracepoints avulla.

Lähde: opennet.ru

Lisää kommentti