Oracle компани
DTrace аль хэдийн
eBPF нь Линуксийн цөмд суурилагдсан байт код тайлбарлагч бөгөөд сүлжээний үйл ажиллагаа зохицуулагчийг үүсгэх, системийн ажиллагааг хянах, системийн дуудлагыг таслан зогсоох, хандалтыг хянах, үйл явдлыг цаг хэмжигчээр боловсруулах (perf_event_open), үйлдлүүдийн давтамж, гүйцэтгэлийн хугацааг тоолох, kprobe ашиглан мөрдөх боломжийг олгодог. /упробууд /tracepoints. JIT эмхэтгэлийг ашигласны ачаар байт кодыг шууд машины заавар болгон хөрвүүлж, эх кодын гүйцэтгэлээр гүйцэтгэдэг. DTrace нь eBPF дээр хэрэгждэгтэй адил eBPF дээр хэрэгжиж болно.
DTrace технологийг Solaris үйлдлийн системд зориулж системийн цөм болон эцсийн програмуудыг динамикаар хянах асуудлыг шийдвэрлэх зорилгоор бүтээгдсэн бөгөөд хэрэглэгчдэд системийн үйл ажиллагааг нарийвчлан хянах, асуудлыг бодит цаг хугацаанд оношлох боломжийг олгодог. Дибаг хийх явцад DTrace нь судалж буй програмуудын үйл ажиллагаанд нөлөөлөхгүй бөгөөд тэдгээрийн гүйцэтгэлд ямар ч байдлаар нөлөөлөхгүй бөгөөд энэ нь ажиллаж байгаа системүүдийн шинжилгээг шууд зохион байгуулах боломжийг олгодог. DTrace-ийн давуу талуудын нэг нь AWK-тэй төстэй өндөр түвшний D хэл бөгөөд гадаад номын сантай C, Python, Lua хэл дээр eBPF боловсруулагч бичихэд санал болгож буй хэрэгслүүдийг ашиглахаас илүү мөрдөх скрипт үүсгэх нь илүү хялбар байдаг.
Oracle-ийн инженерүүд мөн GCC-д зориулсан eBPF backend үүсгэхээр ажиллаж байгаа бөгөөд аль хэдийн нийтэлсэн байна
GCC-д зориулсан санал болгож буй засварууд нь байт код үүсгэх арын хэсгээс гадна eBPF-д зориулсан libgcc порт болон ELF файл үүсгэх хэрэгслүүдийг агуулдаг бөгөөд энэ нь цөмөөр хангагдсан дуудагчуудыг ашиглан eBPF виртуал машинд код ажиллуулах боломжтой болгодог. Одоогийн байдлаар Си хэл дээрх кодыг байт код руу хөрвүүлэх боломжтой (бүх хэлний функцууд байхгүй), гэхдээ ирээдүйд ашиглах боломжтой Си хэлний чадамжийг өргөжүүлэх, бусад хэлийг дэмжих, симулятор үүсгэх, eBPF програмуудыг цөмд ачаалахгүйгээр дибаг хийх GCC дэмжлэгийг нэмнэ.
Эх сурвалж: opennet.ru