Oracle eBPF istifadə edərək Linux üçün DTrace-i yenidən işləmək niyyətindədir

Oracle şirkəti xəbərdar etdi DTrace ilə bağlı dəyişikliklərin yuxarı axınına ötürülməsi üzrə işlər və standart Linux kernel infrastrukturunun üstündə, daha doğrusu eBPF kimi alt sistemlərdən istifadə etməklə DTrace dinamik sazlama texnologiyasını tətbiq etməyi planlaşdırır. Əvvəlcə Linux-da DTrace-dən istifadə ilə bağlı əsas problem lisenziya səviyyəsində uyğunsuzluq idi, lakin 2018-ci ildə Oracle yenidən lisenziyalaşdırılıb GPLv2 altında DTrace kodu.

Artıq DTrace uzun müddət Oracle Linux paylanması üçün genişləndirilmiş nüvənin bir hissəsi kimi təklif olunur, lakin onun digər paylanmalarda istifadəsi üçün bu texnologiyanın istifadəsini məhdudlaşdıran əlavə kernel yamaqlarının istifadəsini tələb edir. Məsələn, Oracle hazırlanmışdır Fedora Linux-da DTrace-in quraşdırılması və istifadəsi üçün ətraflı təlimatlar. Quraşdırma üçün montaj tələb olunur alətlər və yenidən qurulmuş Linux nüvəsinin istifadəsi yamaqlar. Oracle və Fedora yamaqları ilə nüvə binasının icrasını avtomatlaşdırmaq üçün təklif olunur. ssenari.

eBPF Linux nüvəsində quraşdırılmış bayt kodu tərcüməçisidir ki, bu da sizə şəbəkə əməliyyat idarəçiləri yaratmağa, sistemin işinə nəzarət etməyə, sistem zənglərini ələ keçirməyə, girişi idarə etməyə, vaxtın hesablanması (perf_event_open) ilə hadisələri prosesə salmağa, əməliyyatların tezliyini və icra vaxtını saymağa, kproblardan istifadə edərək izləmə aparmağa imkan verir. / problar / iz nöqtələri. JIT kompilyasiyasının istifadəsi sayəsində bayt kodu tez bir zamanda maşın təlimatlarına çevrilir və yerli kodun icrası ilə yerinə yetirilir. DTrace, eBPF üzərində necə həyata keçirildiyi kimi, eBPF-nin üstündə də həyata keçirilə bilər. işləyirik mövcud izləmə vasitələri.

DTrace texnologiyası Solaris əməliyyat sistemi üçün sistem nüvəsinin və son proqramların dinamik izlənilməsi problemini həll etmək üçün hazırlanmışdır, istifadəçiyə sistem davranışını ətraflı şəkildə izləmək və real vaxt rejimində problemlərin diaqnostikasını aparmaq imkanı verir. Sazlama prosesi zamanı DTrace tədqiq olunan proqramların işinə təsir göstərmir və heç bir şəkildə onların işinə təsir göstərmir, bu da işləyən sistemlərin təhlilini tez bir zamanda təşkil etməyə imkan verir. DTrace-in güclü tərəflərindən biri AWK-ya bənzər yüksək səviyyəli D dilidir ki, burada xarici kitabxanalarla C, Python və Lua dillərində eBPF işləyicilərini yazmaq üçün təklif olunan vasitələrdən istifadə etməkdənsə, izləmə skriptləri yaratmaq daha asandır.

Oracle mühəndisləri də GCC üçün eBPF backend yaratmaq üzərində işləyirlər və artıq nəşr ediblər yamaq dəsti eBPF dəstəyini GCC-yə inteqrasiya etmək və etdik GNU binutils-də eBPF-ni dəstəkləmək üçün kod daxil olmaqla. Əvvəlcə eBPF dəstəyinin arxa hissəsi LLVM texnologiyalarına əsaslanır, lakin Oracle GCC-də eBPF üçün proqramlar yaratmaq üçün standart qabiliyyətin görünüşü ilə maraqlanır, bu, həm Linux nüvəsini qurmaq, həm də proqramlar qurmaq üçün bir alət dəstindən istifadə etməyə imkan verəcəkdir. eBPF üçün.

Bayt kodu yaratmaq üçün arxa plana əlavə olaraq, GCC üçün təklif olunan yamaqlara eBPF üçün libgcc portu və ELF faylları yaratmaq üçün alətlər də daxildir ki, bu da nüvə ilə təmin edilmiş yükləyicilərdən istifadə edərək eBPF virtual maşınında kodu icra etməyə imkan verir. Hələlik, C dilindəki kod baytkoda çevrilə bilər (bütün dil xüsusiyyətləri mövcud deyil), lakin gələcəkdə istifadə üçün mövcud olan C dili imkanlarının genişləndirilməsi, digər dillər üçün dəstəyin əlavə edilməsi, simulyatorun yaradılması və nüvəyə yükləmədən eBPF proqramlarının sazlanması üçün GCC dəstəyi əlavə edin.

Mənbə: opennet.ru

Добавить комментарий