Në strukturën e GCC u pranua një backend për kompilim në eBPF

Në përbërjen e paketës së kompilatorëve GCC pranua Kodi për kompilimin e programeve për interpretuesin e kodit të bajtokodit të integruar në kernelin Linux eBPF. Falë përdorimit të JIT-kompilimit, në kernel bajtokodi translaterohet në udhëzime makinerie dhe ekzekutohet me performancën e kodit natyror. Patch-e me mbështetje për eBPF janë miratuar në degën mbi të cilën zhvillohet lëshimi i GCC 10.

Përveç backend-it për gjenerimin e bajtokodit, në GCC është përfshirë porti libgcc për eBPF dhe mjetet për formimin e skedarëve ELF, që japin mundësinë për të ekzekutuar kodin në makinë virtuale eBPF duke përdorur ngarkuesit 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ë siguruan mbështetje eBPF në GNU binutils. Në zhvillim është gjithashtu një simulator dhe patch-e për GDB, të cilat do të lejojnë debugin e programeve eBPF pa ngarkuar në kernel.

Programet për eBPF mund të përcaktohen në një nënshtesë të gjuhës C, të kompilohen dhe të ngarkohen në kernel. Para ekzekutimit, interpretuese eBPF kontrollon bajtokodin për përdorimin e udhëzimeve të lejuara dhe vendos rregulla të caktuara mbi kodin (për shembull, mungesën e cikleve).
Fillimisht, për kompilimin e eBPF në Linux u përdor një mjet në bazë të LLVM. Mbështetje eBPF në GCC është e rëndësishme sepse lejon përdorimin e një mjeti për ndërtimin e kernelit Linux dhe programeve eBPF, pa instaluar varësi shtesë.

Në formën e programeve eBPF, mund të krijohen trajtues të operacioneve rrjetë, të filtrohet trafiku, të menaxhohet kapaciteti, të ndjeket funksionimi i sistemeve, të kapen thirrjet sistemike, të kontrollohet accesin, të numërohet frekuenca dhe koha e ekzekutimit të operacioneve, të kryhet gjurmimi duke përdorur kprobes/uprobes/tracepoints.

Burimi: opennet.ru

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