KernelScript 0.1.0

Tanishtirdi KernelScript — eBPF dasturlarini, foydalanuvchi yuklovchilarini va yadro kengaytmalarini ishlab chiqish uchun eksperimental dasturlash tili Linux yagona kod bazasidan. Loyiha ishlab chiqilmoqda Ko'p yadroli texnologiyalar, split-yadro/multi-yadroli arxitekturani targ'ib qiluvchi kompaniya LinuxKompaniya asoschisi Kong Vang KernelScript haqida gapirdi Linux Jamg'arma Ochiq kodli sammiti; loyiha kodi GitHub'da litsenziya asosida nashr etilgan Apache 2.0.


eBPF (kengaytirilgan Berkeley paket filtri) - bu kichik dasturlarning to'g'ridan-to'g'ri yadroda ishlashiga imkon beruvchi texnologiya. Linux, kodiga tegmasdan yoki tizim barqarorligiga putur yetkazmasdan. eBPF ishlashni monitoring qilishdan tortib xavfsizlik va tarmoqni optimallashtirishgacha bo'lgan turli vazifalarni bajarishda yordam beradi. Masalan, eBPF tizim qo'ng'iroqlarini, tarmoq trafikini va boshqa hodisalarni real vaqt rejimida kuzatishi mumkin. Bu sizga ishlashdagi to'siqlarni aniqlash va tizimingizni optimallashtirish imkonini beradi.Habr).

KernelScript ortidagi g'oya eBPF ni ishlab chiqishni C + libbpf kombinatsiyasidan foydalanishga qaraganda kamroq og'riqli qilish, shu bilan birga bpftrace kabi shunchaki kuzatishdan tashqariga chiqishdir. Ishlab chiquvchilar tilni integratsiyalashgan turdagi xavfsiz DSL sifatida ta'riflaydilar. eGMP, userspace va kernelspace ishlab chiqish: bitta manbali fayldan kompilyator eBPF dasturlari, userspace qismi va kfunc orqali yadro modullari bilan integratsiya uchun kod yaratishi kerak.

KernelScriptning bildirilgan imkoniyatlari:

  • Bitta fayldan turli maqsadlar uchun kompilyatsiya qilish — @xdp, @tc, @helper va @kfunc kabi atributlarga ega funksiyalar avtomatik ravishda to'g'ri qismga tayinlanadi: XDP/TC dasturi, yordamchi funksiya, yadro funksiyasi yoki oddiy foydalanuvchi maydoni kodi.

  • Quyruq qo'ng'iroqlarini avtomatlashtirish — dastur massivini qo'lda sozlash va bpf_tail_call() ni chaqirish o'rniga, ishlab chiquvchidan boshqa funksiyaga oddiy chaqiruv yozish va past darajadagi eBPF kodini yaratishni kompilyatorga qoldirish so'raladi.

  • Dynptr va eBPF xaritalari bilan soddalashtirilgan ish — til bpf_ringbuf_reserve_dynptr, bpf_dynptr_write va shunga o'xshash APIlar bilan qo'lda bajariladigan ishlarning bir qismini yashiradi. eBPF xaritalaridan turli dasturlar tomonidan kirish mumkin bo'lgan global o'zgaruvchilar sifatida foydalanish mumkin.

  • Dasturiy ta'minot hayot aylanishini boshqarish — eBPF dasturlari tiplangan qiymatlar sifatida ifodalanadi, bu mualliflarning fikriga ko'ra, kompilyatsiya vaqtida xatolarning oldini olishga imkon beradi, masalan, muvaffaqiyatli yuklash() dan oldin attach() ni bajarishga urinish.

  • kfunc qo'llab-quvvatlashi — KernelScript sizga yadro maydonida bajariladigan va eBPF dasturlaridan chaqirilishi mumkin bo'lgan @kfunc atributi bilan funksiyalarni e'lon qilish imkonini beradi; ular uchun yadro moduli va BTF registratsiyalarini avtomatik ravishda yaratish va'da qilingan.

  • Asosiy eBPF dastur turlarini qo'llab-quvvatlash — README da XDP, TC, probe dasturlari va perf_event uchun misollar, jumladan, apparat unumdorligini hisoblagichlar bilan ishlash ko'rsatilgan.

Mualliflar KernelScript yadro o'rnini bosuvchi emasligini alohida ta'kidlaydilar. Linux yoki yangi eBPF ish vaqti. Bu ko'proq kompilyator va yuqori darajadagi til bo'lib, u tanish past darajadagi komponentlarni yaratishi kerak: eBPF kodi, foydalanuvchi maydoni yuklagichlari, Makefiles va agar kerak bo'lsa, yadro moduli.

Hozircha, loyiha dastlabki tajriba deb hisoblanishi kerak. Repozitoriyada KernelScript ishlab chiqish bosqichida ekanligi aniq ko'rsatilgan. beta, sintaksis va API orqaga qarab moslikni saqlamasdan o'zgarishi mumkin va uni ishlab chiqarishda qo'llash hali tavsiya etilmaydi.

Manba: linux.org.ru

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster