Oracle kompaniyasi
DTrace allaqachon
eBPF - bu Linux yadrosiga o'rnatilgan bayt-kod tarjimoni bo'lib, u sizga tarmoq operatsiyalari ishlov beruvchilarini yaratish, tizim ishini kuzatish, tizim qo'ng'iroqlarini ushlab turish, kirishni boshqarish, vaqtni hisoblash (perf_event_open) bilan hodisalarni qayta ishlash, operatsiyalarning chastotasi va bajarilish vaqtini hisoblash, kproblar yordamida kuzatishni amalga oshirish imkonini beradi. / problar / kuzatuv nuqtalari. JIT kompilyatsiyasidan foydalanish tufayli bayt-kod tezda mashina ko'rsatmalariga tarjima qilinadi va mahalliy kodning ishlashi bilan bajariladi. DTrace eBPF tepasida amalga oshirilishi mumkin, xuddi u eBPF ustiga qo'llanilishi kabi
DTrace texnologiyasi Solaris operatsion tizimi uchun tizim yadrosi va oxirgi ilovalarni dinamik ravishda kuzatish muammosini hal qilish uchun ishlab chiqilgan bo'lib, foydalanuvchiga tizim xatti-harakatlarini batafsil kuzatish va real vaqtda muammolarni tashxislash imkoniyatini beradi. Nosozliklarni tuzatish jarayonida DTrace o'rganilayotgan ilovalarning ishlashiga ta'sir qilmaydi va ularning ishlashiga hech qanday ta'sir ko'rsatmaydi, bu esa ishlaydigan tizimlar tahlilini tezda tashkil qilish imkonini beradi. DTrace ning kuchli tomonlaridan biri bu AWK ga o'xshash yuqori darajadagi D tili bo'lib, unda tashqi kutubxonalar bilan C, Python va Lua tillarida eBPF ishlov beruvchilarini yozish uchun taklif qilingan vositalardan foydalanishdan ko'ra kuzatuv skriptlarini yaratish ancha osondir.
Oracle muhandislari, shuningdek, GCC uchun eBPF backend yaratish ustida ishlamoqda va allaqachon nashr etishgan
Bayt-kod ishlab chiqarishdan tashqari, GCC uchun tavsiya etilgan yamoqlar, shuningdek, eBPF uchun libgcc portini va ELF fayllarini yaratish vositalarini o'z ichiga oladi, bu esa yadro tomonidan taqdim etilgan yuklagichlar yordamida eBPF virtual mashinasida kodni bajarish imkonini beradi. Hozircha C tilidagi kodni bayt-kodga tarjima qilish mumkin (barcha til xususiyatlari mavjud emas), lekin kelajakda foydalanish uchun mavjud bo'lgan C tili imkoniyatlarini kengaytirish, boshqa tillarni qo'llab-quvvatlash, simulyator yaratish va boshqalar kutilmoqda. yadroga yuklamasdan eBPF dasturlarini disk raskadrovka qilish uchun GCC qo'llab-quvvatlashini qo'shing.
Manba: opennet.ru