Oracle eBPF көмегімен Linux үшін DTrace дизайнын қайта жасамақшы

Oracle компаниясы деп хабарлады DTrace-қа қатысты өзгерістерді жоғары ағынға көшіру жұмыстары және стандартты Linux ядросының инфрақұрылымының үстіне DTrace динамикалық жөндеу технологиясын енгізу жоспарлары туралы, атап айтқанда eBPF сияқты ішкі жүйелерді пайдалану. Бастапқыда DTrace-ті Linux жүйесінде пайдаланудың негізгі проблемасы лицензия деңгейіндегі сәйкессіздік болды, бірақ 2018 жылы Oracle қайта лицензияланған GPLv2 астында DTrace коды.

DTrace қазірдің өзінде ұзақ уақыт Oracle Linux дистрибутивінің кеңейтілген ядросының бөлігі ретінде ұсынылады, бірақ оны басқа дистрибутивтерде пайдалану үшін бұл технологияны пайдалануды шектейтін қосымша ядро ​​патчтарын пайдалану қажет. Мысал ретінде Oracle дайындалған Fedora Linux жүйесінде DTrace орнату және пайдалану бойынша толық нұсқаулар. Орнату үшін жинақ қажет құралдар және қайта құрастырылған Linux ядросын пайдалану патчтар. Oracle және Fedora патчтары арқылы ядро ​​құруды автоматтандыру үшін ұсынылады. сценарий.

eBPF – Linux ядросына кіріктірілген байт-код интерпретаторы, ол желі операциясының өңдеушілерін жасауға, жүйе жұмысын бақылауға, жүйелік қоңырауларды тоқтатуға, қол жеткізуді басқаруға, хронометражмен (perf_event_open) оқиғаларды өңдеуге, операциялардың жиілігі мен орындалу уақытын санауға, kprobes көмегімен бақылауды жүзеге асыруға мүмкіндік береді. /пробтар /бақылау нүктелері. JIT компиляциясын қолданудың арқасында байт код жылдам машина нұсқауларына аударылады және жергілікті кодтың өнімділігімен орындалады. DTrace eBPF үстіне іске асырылуы сияқты, оны eBPF үстіне енгізуге болады. жұмыс істейді бар бақылау құралдары.

DTrace технологиясы Solaris операциялық жүйесі үшін жүйе ядросы мен соңғы қолданбаларды динамикалық бақылау мәселесін шешу үшін әзірленген, бұл пайдаланушыға жүйенің әрекетін егжей-тегжейлі бақылауға және нақты уақытта проблемаларды диагностикалауға мүмкіндік береді. Түзету процесі кезінде DTrace зерттелетін қосымшалардың жұмысына әсер етпейді және олардың жұмысына ешқандай әсер етпейді, бұл жұмыс істеп тұрған жүйелердің талдауын жылдам ұйымдастыруға мүмкіндік береді. DTrace-тің күшті жақтарының бірі AWK-ға ұқсас жоғары деңгейлі D тілі болып табылады, онда сыртқы кітапханалармен C, Python және Lua тілдерінде eBPF өңдегіштерін жазу үшін ұсынылған құралдарды пайдаланудан гөрі бақылау сценарийлерін жасау әлдеқайда оңай.

Oracle инженерлері де GCC үшін eBPF серверін жасау үстінде және қазірдің өзінде жариялады патч жинағы eBPF қолдауын GCC-ге біріктіру және жасадық GNU binutils ішіндегі eBPF қолдау кодын қоса. Бастапқыда eBPF қолдауының сервері LLVM технологияларына негізделген, бірақ Oracle Linux ядросын құру үшін де, бағдарламаларды құру үшін де бір құралдар жинағын пайдалануға мүмкіндік беретін eBPF бағдарламаларын жасаудың стандартты мүмкіндігінің GCC-де пайда болуына мүдделі. eBPF үшін.

Байткодты генерациялау серверіне қоса, GCC үшін ұсынылған патчтар eBPF үшін libgcc портын және ELF файлдарын генерациялауға арналған құралдарды қамтиды, бұл ядромен қамтамасыз етілген жүктеушілер арқылы eBPF виртуалды машинасында кодты орындауға мүмкіндік береді. Әзірге Си тіліндегі кодты байт-кодқа аударуға болады (барлық тіл мүмкіндіктері қол жетімді емес), бірақ болашақта қолдану үшін қол жетімді Си тілінің мүмкіндіктерін кеңейту, басқа тілдерге қолдауды қосу, симулятор жасау және eBPF бағдарламаларын ядроға жүктемей жөндеу үшін GCC қолдауын қосыңыз.

Ақпарат көзі: opennet.ru

пікір қалдыру