Кіріспе

DTrace – бастапқыда Sun Microsystems компаниясы жасаған, өндіріс жүйелеріндегі ядро мен қолданбалардың проблемаларын нақты уақытта шешуге арналған жан-жақты динамикалық іздеу жүйесі. Алғашқыда Solaris үшін әзірленген, кейіннен OpenSolaris және оның ұрпағы illumos жүйелерінде Common Development and Distribution License (CDDL) лицензиясы бойынша тегін таратылды және басқа Unix-қа ұқсас жүйелерге көшірілді. DTrace жұмыс істеп тұрған жүйенің жадының, CPU уақытының, файлдық жүйе мен желі ресурстарын белсенді процестердің қалай пайдаланатынын анықтауға мүмкіндік береді. Сондай-ақ, ол әлдеқайда егжей-тегжейлі ақпаратты ұсына алады, мысалы, нақты функция шақырылған аргументтердің тізімі немесе белгілі бір файлға қол жеткізген процестердің тізімі. 2010 жылы Oracle корпорациясы Sun Microsystems компаниясын сатып алып, OpenSolaris жобасын тоқтату туралы хабарлады. Сол кездегі негізгі Solaris инженерлерінің күшімен құрылған, толығымен ашық кодты Solaris құру мақсатындағы қауымдастық күш-жігерінің нәтижесінде illumos операциялық жүйесі 2010 жылдың 3 тамызында онлайн-семинар арқылы OpenSolaris OS/Net консолидациясының негізінде жарияланды, оған DTrace технологиясы да кірді. 2011 жылдың қазанында Oracle DTrace-ді Linux-қа көшіруді жариялады, ал 2019 жылы Fedora үшін ресми DTrace GitHub-та қолжетімді болды. Бірнеше жыл бойы лицензиялық шарттары өзгермеген Linux-қа арналған бейресми DTrace порты қолжетімді болды. 2017 жылдың тамызында Oracle DTrace ядролық кодын GPLv2+ лицензиясы бойынша, ал пайдаланушы кеңістігі кодын GPLv2 және UPL лицензиялары бойынша жариялады. 2018 жылдың қыркүйегінде Microsoft DTrace-ді FreeBSD-ден Windows-қа көшіргенін хабарлады. Бұл Brendan Gregg (DTrace кітабының авторы) жасаған, сонымен қатар олардың құжаттамасын және демонстрацияларын ұсынады.

Қолдауы бар платформалар

DTrace алғаш рет 2003 жылдың қараша айында қолдануға берілді, ал 2005 жылдың қаңтар айында Sun Solaris 10 жүйесінің бір бөлігі ретінде ресми түрде жарияланды. DTrace, OpenSolaris жобасының бастапқы коды Common Development and Distribution License (CDDL) лицензиясы бойынша шығарылған алғашқы құралы болды. DTrace, illumos және оған байланысты таратулардың негізгі бөлігі болып табылады. DTrace FreeBSD және NetBSD жүйелерінің стандартты құрамына кіреді. Apple, Mac OS X 10.5 "Leopard" жүйесіне DTrace қолдауын қосты, соның ішінде Instruments деп аталатын графикалық интерфейс те бар. DTraceToolkit-тен 40-тан астам DTrace сценарийлері /usr/bin каталогына енгізілді, олардың ішінде дисктік кіріс-шығысты (iosnoop) және процестердің орындалуын (execsnoop) зерттеуге арналған құралдар бар. DTrace қолдауы бар басқа платформалардан өзгеше, Mac OS X жүйесінде DTrace және gdb сияқты түзету құралдары арқылы осы процестің ізін табуға тыйым салатын (P LNOATTACH) флагты бағдарлама орнатуға болады. Mac OS X DTrace жүйесінің бастапқы нұсқасында бұл басқа жүйелік ақпаратты іздеуге әсер етуі мүмкін, себебі осы флаг орнатылған бағдарлама жұмыс істеп жатқанда іске қосылуға тиіс байланыссыз зондтар жұмыс істемей қалды. OS X 10.5.3 жаңартуы бұл мәселені бірнеше айдан кейін шешті. Дегенмен, El Capitan нұсқасынан бастап, Жүйелік қауіпсіздік қорғауы пайдаланушыға қорғалған екілік кодты DTracing жасауға әдепкі бойынша рұқсат бермейді. DTrace-тің Linux порты 2008 жылдан бері қолжетімді; оны жақсарту және қателерді түзету жұмыстары белсенді түрде жалғасуда. Github-та да белсенді іске асырылуы бар. Стандартты негізгі провайдерлер қолжетімді (fbt, syscall, profile), сонымен қатар арнайы "instr" провайдері де бар (кейбір Solaris провайдерлері әлі қолжетімді емес). Linux DTrace іске асырылуы жүктелетін ядро модулі болып табылады, яғни ядроның өзіне өзгеріс енгізудің қажеті жоқ, сондықтан DTrace CDDL және GPL лицензиялық қақтығыстарын болдырмауға мүмкіндік береді (кем дегенде, бастапқы кодында). Алайда, DTrace жүктелгеннен кейін ядролық инстанция «зақымдалған» деп белгіленеді. 2007 жылы QNX Software Systems компаниясының бір әзірлеушісі өзінің блогында DTrace-ті QNX операциялық жүйесіне енгізу жөніндегі жұмыстарды жүргізіп жатқанын хабарлады. Oracle Corporation 2011 жылы Oracle Linux үшін DTrace бета нұсқасын қосты, ал оның толыққанды қолжетімділігі 2012 жылдың желтоқсанында жарияланды. 2019 жылдың 11 наурызында Microsoft Windows 10 инсайдерлік құрастырулары үшін DTrace құрастырылымын шығарды.

Тіл және қолданба провайдерлері

Қолдау көрсетілген тіл провайдерімен DTrace кодтың контекстін, оның ішінде функцияны, бастапқы файлды және жол нөмірінің орналасқан жерін алуға мүмкіндік береді. Бұдан әрі, тіл қолдаса, динамикалық жадты бөлу және қоқысты жинау қолжетімді болуы мүмкін. Қолдау көрсетілген тіл провайдерлеріне құрастыру тілі, C, C++, Java, Erlang, JavaScript, Perl, PHP, Python, Ruby, shell сценарийі және Tcl жатады. Қолданба провайдерлері DTrace-ке жүйелік шақырулар арқылы және ядроға ену арқылы қолданбалардың жұмысын қадағалауға мүмкіндік береді. DTrace қолданба провайдерлерін ұсынатын қолданбаларға MySQL, PostgreSQL, Oracle Database, Oracle Grid Engine және Firefox кіреді.

Авторлар мен марапаттар

DTrace-ті Брайан Кантрилл, Майк Шапиро және Адам Левентал жобалап, іске асырды. Авторлар 2005 жылы DTrace-тегі жаңалықтары үшін InfoWorld және Technology Review тарапынан мойындылық алды. DTrace 2006 жылы The Wall Street Journal-дың «Технологиялық инновациялар» сыйлықтары байқауында бас жүлдені жеңіп алды. 2008 жылы USENIX авторларды Software Tools User Group (STUG) сыйлығымен марапаттады.