GCC inniheldur nú bakenda fyrir samantekt á eBPF

Innifalið í GCC þýðandasvítunni Ættleiddur kóða til að setja saman forrit fyrir bækakóðatúlkinn sem er innbyggður í Linux kjarnann eGMP. Þökk sé notkun á JIT samantekt er bætikóði kjarna þýddur á flugi í vélaleiðbeiningar og keyrður með frammistöðu innfædds kóða. Plástrar með eBPF stuðningi samþykkt inn í greinina sem GCC 10 útgáfan er þróuð úr.

Til viðbótar við bakenda fyrir bækakóðaframleiðslu inniheldur GCC libgcc tengi fyrir eBPF og verkfæri til að búa til ELF skrár sem gera það mögulegt að keyra kóða í eBPF sýndarvélinni með því að nota kjarnahleðslutæki. Plástrar til að styðja eBPF í GCC voru útbúnir af verkfræðingum frá Oracle, sem höfðu þegar veitt eBPF stuðningur í GNU binutils. Hermir og plástrar fyrir GDB eru einnig í þróun, sem gerir þér kleift að kemba eBPF forrit án þess að hlaða þeim inn í kjarnann.

Hægt er að skilgreina forrit fyrir eBPF í undirmengi C tungumálsins, safna saman og hlaða inn í kjarnann. Fyrir framkvæmd athugar eBPF túlkurinn bækikóðann fyrir notkun leyfilegra leiðbeininga og setur ákveðnar reglur um kóðann (til dæmis engar lykkjur).
Upphaflega voru LLVM-undirstaða verkfæri notuð til að setja saman eBPF á Linux. Stuðningur við eBPF í GCC er áhugaverður vegna þess að hann gerir þér kleift að nota eitt verkfærasett til að byggja upp Linux kjarna og eBPF forrit, án þess að setja upp fleiri ósjálfstæði.

Í formi eBPF forrita geturðu búið til netaðgerðastjórnun, síað umferð, stjórnað bandbreidd, fylgst með kerfum, stöðvað kerfissímtöl, stjórnað aðgangi, talið tíðni og tíma aðgerða og framkvæmt rakningu með því að nota kprobes/uprobes/tracepoints.

Heimild: opennet.ru

Bæta við athugasemd