GCC ka pranuar një backend për kompilim në eBPF

Pjesa e paketës së kompilatorëve GCC është pranuar kodi për kompaktimin e programeve për interpretuesin e bytecode të integruar në kernelin Linux eBPF. Falë përdorimit të JIT-kompilimit, bytecode në kernel transmetohet në instruktime makinerike në flakë dhe ekzekutohet me performancë të kodit natyror. Patch-et me mbështetje eBPF u miratua në degën mbi të cilën zhvillohet lëshimi GCC 10.

Përveç backend-it për gjenerimin e bytecode, GCC përfshin portin libgcc për eBPF dhe mjetet për formimin e skedarëve ELF, që ofrojnë mundësinë për të ekzekutuar kodin në makinerinë virtuale eBPF duke përdorur ngulësit e ofruar nga kernel. Patch-et për mbështetje eBPF në GCC janë përgatitur nga inxhinierët e kompanisë Oracle, të cilët më parë kishin siguruar mbështetje eBPF në GNU binutils. Një simulator dhe patch-e për GDB janë gjithashtu në zhvillim, që do të lejojnë debbugimin e programeve eBPF pa ngarkesë në kernel.

Programet për eBPF mund të përcaktohen në një nëngrup të gjuhës C, të kompilohet dhe ngarkohen në kernel. Para ekzekutimit, interpretuesi eBPF kontrollon bytecode për të parë nëse përdoren instruktionet e lejuara dhe vendos disa rregulla mbi kodin (p.sh., mungesa e cikleve).
Fillimisht, për kompaktimin e eBPF në Linux u përdor një mjet i bazuar në LLVM. Mbështetje eBPF në GCC është interesante sepse lejon përdorimin e një mjeti të vetëm për ndërtimin e kernelit Linux dhe programeve eBPF, pa instaluar varësi të tjera.

Në formën e programeve, eBPF mund të krijohen trajtues të operacioneve rrjetë, të filtrojnë trafikun, të menaxhojnë kapacitetin, të ndjekin funksionimin e sistemeve, të kapin thirjet sistemore, të kontrollojnë aksesi, të numërojnë frekuencën dhe kohën e ekzekutimit të operacioneve, të kryejnë gjurmim duke përdorur kprobes/uprobes/tracepoints.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster