GCC tani përfshin një backend për përpilim në eBPF

Përfshirë në paketën e përpiluesit të GCC pranuar kodi për përpilimin e programeve për interpretuesin e bytekodit të integruar në kernelin Linux eGMP. Falë përdorimit të përpilimit JIT, bytekodi i kernelit përkthehet menjëherë në udhëzimet e makinës dhe ekzekutohet me performancën e kodit vendas. Arna me mbështetje eBPF pranuar në degën nga e cila është zhvilluar lëshimi i GCC 10.

Përveç një backend për gjenerimin e bytecode, GCC përfshin një portë libgcc për eBPF dhe mjete për gjenerimin e skedarëve ELF që bëjnë të mundur ekzekutimin e kodit në makinën virtuale eBPF duke përdorur ngarkues të ofruar nga kernel. Arna për të mbështetur eBPF në GCC u përgatitën nga inxhinierë nga Oracle, të cilët tashmë e kishin bërë me kusht Mbështetje eBPF në binutilët GNU. Një simulator dhe arna për GDB janë gjithashtu në zhvillim, të cilat do t'ju lejojnë të korrigjoni programet eBPF pa i ngarkuar ato në kernel.

Programet për eBPF mund të përcaktohen në një nënbashkësi të gjuhës C, të kompilohen dhe të ngarkohen në kernel. Përpara ekzekutimit, përkthyesi eBPF kontrollon bajtkodin për përdorimin e udhëzimeve të lejuara dhe vendos disa rregulla në kod (për shembull, pa unaza).
Fillimisht, mjetet e bazuara në LLVM u përdorën për të përpiluar eBPF në Linux. Mbështetja eBPF në GCC është interesante sepse ju lejon të përdorni një paketë veglash për të ndërtuar programet e kernelit Linux dhe eBPF, pa instaluar varësi shtesë.

Në formën e programeve eBPF, ju mund të krijoni mbajtës të funksionimit të rrjetit, të filtroni trafikun, të menaxhoni gjerësinë e brezit, të monitoroni sistemet, të përgjoni thirrjet e sistemit, të kontrolloni aksesin, të numëroni frekuencën dhe kohën e operacioneve dhe të kryeni gjurmimin duke përdorur kprobes/upprobes/pikat gjurmë.

Burimi: opennet.ru

Shto një koment