GCC yanzu ya haɗa da abin baya don haɗawa zuwa eBPF

Kunshe a cikin GCC compiler suite yarda lambar don haɗa shirye-shirye don fassarar bytecode da aka gina a cikin kernel na Linux eGMP. Godiya ga amfani da tarin JIT, ana fassara lambar bytecode na kernel akan tashi zuwa cikin umarnin injin kuma ana aiwatar da shi tare da aikin lambar asali. Faci tare da goyan bayan eBPF karba cikin reshen da aka samar da GCC 10.

Baya ga baya ga tsarar bytecode, GCC ya haɗa da tashar libgcc don eBPF da kayan aiki don ƙirƙirar fayilolin ELF waɗanda ke ba da damar aiwatar da lamba a cikin na'ura mai ƙima ta eBPF ta amfani da masu samar da kernel. Injiniyoyin Oracle sun shirya faci don tallafawa eBPF a cikin GCC, waɗanda suka riga sun shirya bayar da Taimakon eBPF a cikin GNU binutils. Na'urar kwaikwayo da faci na GDB suma suna kan haɓakawa, wanda zai ba ku damar cire shirye-shiryen eBPF ba tare da loda su cikin kernel ba.

Ana iya siffanta shirye-shiryen eBPF a cikin juzu'in yaren C, an haɗa su kuma a loda su cikin kernel. Kafin aiwatarwa, mai fassarar eBPF yana bincika lambar bytecode don amfani da izini izini kuma yana sanya wasu dokoki akan lambar (misali, babu madaukai).
Da farko, an yi amfani da kayan aikin tushen LLVM don haɗa eBPF akan Linux. Tallafin eBPF a cikin GCC yana da ban sha'awa saboda yana ba ku damar amfani da kayan aiki guda ɗaya don gina kernel Linux da shirye-shiryen eBPF, ba tare da shigar da ƙarin abin dogaro ba.

A cikin nau'i na shirye-shiryen eBPF, zaku iya ƙirƙirar masu gudanar da ayyukan cibiyar sadarwa, tace zirga-zirga, sarrafa bandwidth, tsarin saka idanu, karɓar kiran tsarin, samun damar sarrafawa, ƙididdige mita da lokacin ayyuka, da aiwatar da bincike ta amfani da kprobes/upprobes/points.

source: budenet.ru

Add a comment