Кампанія Oracle
DTrace ужо
eBPF уяўляе сабой убудаваны ў ядро Linux інтэрпрэтатар байткода, які дазваляе ствараць апрацоўшчыкі сеткавых аперацый, адсочваць працу сістэм, перахапляць сістэмныя выклікі, кантраляваць доступ, апрацоўваць падзеі з захаваннем хронаметражу (perf_event_open), падлічваць частату і час выканання. /tracepoints. Дзякуючы ўжыванню JIT-кампіляцыі, байткод на лёце транслюецца ў машынныя інструкцыі і выконваецца з прадукцыйнасцю натыўнага кода. DTrace можа быць рэалізаваны па-над eBPF, па аналогіі з тым, як па-над eBPF
Тэхналогія DTrace была распрацавана для аперацыйнай сістэмы Solaris для рашэння задач па дынамічнай трасіроўцы ядра сістэмы і канчатковых прыкладанняў, даючы карыстачу магчымасць дэталёва адсочваць паводзіны сістэмы і ў рэжыме рэальнага часу вырабляць дыягностыку праблем. У працэсе адладкі DTrace не ўплывае на працу доследных прыкладанняў і ніяк не адбіваецца на іх прадукцыйнасці, што дазваляе арганізаваць аналіз працуючых сістэм на лета. З моцных бакоў DTrace адзначаецца высокаўзроўневая мова D, падобная на AWK, на якой значна прасцей ствараць сцэнары трасіроўкі, чым пры ўжыванні прапанаваных для eBPF сродкаў напісання апрацоўшчыкаў на мовах C, Python і Lua са знешнімі бібліятэкамі.
Інжынеры з Oracle таксама працуюць над стварэннем eBPF-бэкенда для GCC і ўжо апублікавалі
Акрамя бэкенда для генерацыі байткода прапанаваныя для GCC патчы таксама ўключаюць порт libgcc для eBPF і сродкі для фармавання ELF-файлаў, якія даюць магчымасць выканаць код у віртуальнай машыне eBPF з выкарыстаннем якія прадстаўляюцца ядром загрузнікаў. У байткоде пакуль можа транслявацца код на мове Сі (не ўсе магчымасці мовы даступныя), але ў будучыні чакаецца пашырэнне даступных для ўжывання магчымасцяў мовы Сі, даданне падтрымкі іншых моў, стварэнне сімулятара і даданне падтрымкі GCC для адладкі eBPF-праграм без загрузкі ў ядро.
Крыніца: opennet.ru