Кіріспе
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 is a comprehensive dynamic tracing framework originally created by Sun Microsystems for troubleshooting kernel and application problems on production systems in real time. Originally developed for Solaris, it has since been released under the free Common Development and Distribution License (CDDL) in OpenSolaris and its descendant illumos, and has been ported to several other Unix like systems. DTrace can be used to get a global overview of a running system, such as the amount of memory, CPU time, filesystem and network resources used by the active processes. It can also provide much more fine grained information, such as a log of the arguments with which a specific function is being called, or a list of the processes accessing a specific file. In 2010, Oracle Corporation acquired Sun Microsystems and announced discontinuing OpenSolaris. As a community effort of some core Solaris engineers to create a truly open source Solaris, illumos operating system was announced via webinar on Thursday, 3 August 2010, as a fork on OpenSolaris OS/Net consolidation, including DTrace technology. In October 2011, Oracle announced the porting of DTrace to Linux, and in 2019 official DTrace for Fedora is available on GitHub. For several years an unofficial DTrace port to Linux was available, with no changes in licensing terms. In August 2017, Oracle released DTrace kernel code under the GPLv2+ license, and user space code under GPLv2 and UPL licensing. In September 2018 Microsoft announced that they had ported DTrace from FreeBSD to Windows. created by Brendan Gregg (author of the DTrace book), which also provides documentation and demonstrations of each.
Қолдауы бар платформалар
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) сыйлығымен марапаттады.