Oracle портирует под Linux системы DTrace и Zones
В представленной на конференции OPENWORLD презентации 0, посвященной грядущим новшествам установочного пакета Oracle Линукс, упомянуто портирование под Линукс технологии динамической отладки DTRACE и системы легковесных изолированных контейнеров Solaris Зоны (в презентации Oracle упоминается только Линукс Containers, однако в блоге одного из девелоперов DTRACE упоминается, что речь о портировании Зоны). Технологии собираются интегрировать в следующий существенный релиз ядра Unbreakable Enterprise Kernel.
Нужно подчеркнуть, что в рамках проекта CRISP с 2008 г. развивается порт DTRACE для Линукс, работающий в виде модуля ядра. Создатели данного проекта встревожены шагом Oracle, однако не исключают того, что это только маркетинговая уловка. Подкрепляет данное предположение и то, что детальной информацией не обладает никто, даже сотрудники Oracle -- такое объявление стало неожиданностью, к примеру, для некоторых девелоперов Solaris.
Интеграцию DTRACE в Линукс усложняла потребность реализации крупного количества контрольных вызовов (probes) в ядре Линукс, что требовало внесения крупного объёма типовых изменений. К примеру, в ядро Solaris для обеспечения полноценной помощи DTRACE внесено возле 20 тыс. таких контрольных вызовов. Oracle поддерживает собственную ветку ядра Линукс для установочного пакета Oracle Линукс, т.е. теоретически может претворить в жизнь нужную функциональность. Однако появляется сложность с поддержкой проделанного объема работы и синхронизацией с основным деревом ядра Линукс, в которое помощь DTRACE не может оказаться принята в силу лицензионной несовместимости. Решить проблему могла бы смена лицензии на DTRACE с CDDL на GPL, однако Oracle не собирается идти на подобный шаг и желает ограничиться применением двойной лицензии для маленький части кода (заголовочные файлы и жёстко прошитый в ядро код), оставив основной код, включая модуль ядра, под CDDL.
Адам Левенталь (Adam Leventhal), 1 из главных девелоперов DTRACE, в прошлом г. покинувший Oracle, в собственном блоге высказал изумление таким поворотом событий. Несколько лет тому назад, в ходе работы в Sun Microsystems, Адам обеспечил возможность эксплуатации DTRACE для Линукс-приложений, работающих в BRANDZ (изолированное Линукс-окружение, работающее поверх ядра Solaris) и разработал стратегию реализации DTRACE на базе ядра Линукс, по этой причине тема портирования DTRACE в Линукс ему близка.
Известно, что работа пока сосредоточена лишь кругом реализации части DTRACE, работающей на уровне ядра системы. К тому же известно, что DTRACE для Линукс пока не проходит тестовый набор DTRACE test suite, т.е. располагается на начальной стадии развития. Явно не упоминается, ведётся ли речь лишь о провайдере fbt (Function Boundary Tracing, отслеживает вход и выход из функций ядра) или уже реализованы провайдеры статической трассировки приложений и провайдеры для планировщика задач).
Примечательно, что для Линукс развивается собственная технология динамической трассировки SYSTEMTAP, по большей части похожая на DTRACE по выполняемым задачам. Из фирм, участвующих в развитии данной системы, за исключением Red Hat, IBM, Интел и Hitachi, к тому же числится и Oracle. Как и DTRACE, SYSTEMTAP дает возможность организовать доскональное наблюдение за работающей системой, производить сбор статистики о работе приложений, исполнять профилирование, контролировать работу системных вызовов. Управление производится ч/з интерфейс командной строки и особый Си-подобный язык сценариев. Так или иначе, в прошлом отдельные известные создатели ядра Линукс, к примеру, Тед Тц'о (Ted Ts’o), автор файловых систем семейства Ext, высказывались с критикой SYSTEMTAP, считая данную систему непригодной к применению, в отличие от DTRACE, которая "просто работает". Кроме того, SYSTEMTAP поставляется лишь в составе Fedora Линукс и RHEL, и не включена в главное ядро Линукс.