Tvrtka Oracle
DTrace već
eBPF je interpreter bajt-koda ugrađen u Linux kernel koji vam omogućuje stvaranje rukovatelja mrežnim operacijama, praćenje rada sustava, presretanje sistemskih poziva, kontrolu pristupa, procesiranje događaja s mjerenjem vremena (perf_event_open), brojanje učestalosti i vrijeme izvršavanja operacija, izvođenje praćenja pomoću kprobes /uprovjerava /tragove. Zahvaljujući korištenju JIT kompilacije, bajt kod se u hodu prevodi u strojne instrukcije i izvršava s izvedbom izvornog koda. DTrace se može implementirati povrh eBPF-a, slično kao što se implementira povrh eBPF-a
Tehnologija DTrace razvijena je za operativni sustav Solaris kako bi riješila problem dinamičkog praćenja jezgre sustava i krajnjih aplikacija, dajući korisniku mogućnost da detaljno prati ponašanje sustava i dijagnosticira probleme u stvarnom vremenu. Tijekom procesa otklanjanja pogrešaka, DTrace ne utječe na rad aplikacija koje se proučavaju i ni na koji način ne utječe na njihovu izvedbu, što vam omogućuje da organizirate analizu pokrenutih sustava u hodu. Jedna od prednosti DTracea je D jezik visoke razine, sličan AWK-u, u kojem je mnogo lakše stvoriti skripte za praćenje nego koristiti alate koji se nude za pisanje eBPF rukovatelja u C, Python i Lua s vanjskim bibliotekama.
Inženjeri iz Oraclea također rade na stvaranju eBPF pozadine za GCC i već su objavili
Osim pozadine za generiranje bajt-koda, predložene zakrpe za GCC također uključuju libgcc priključak za eBPF i alate za generiranje ELF datoteka, što omogućuje izvršavanje koda u eBPF virtualnom stroju pomoću učitavača koje pruža kernel. Za sada se kod na jeziku C može prevesti u bajt kod (nisu dostupne sve značajke jezika), ali u budućnosti se očekuje proširenje mogućnosti jezika C dostupnih za korištenje, dodavanje podrške za druge jezike, stvaranje simulatora i dodajte GCC podršku za otklanjanje pogrešaka u eBPF programima bez učitavanja u kernel.
Izvor: opennet.ru