Компания Oracle работает над проектом по интеграции системы динамической отладки DTrace в основное ядро Linux. Для воплощения в жизнь данного шага подготовлен модуль ядра с реализацией DTrace, поставляемый под лицензий GPLv2 вместо CDDL, что снимает барьер по интеграции DTrace в состав основного ядра Linux и устраняет потенциальные проблемы с лицензированием при поставке DTrace в дистрибутивах. Инструментарий dtrace-utils и библиотека libdtrace-ctf переведены на двойную лицензию GPLv2 и UPL (Universal Permissive License, пермиссивная лицензия, совместимая с GPL).

Изначально технология DTrace была разработана для операционной системы Solaris для решения задач по динамической трассировке ядра системы и конечных приложений, давая пользователю возможность детально отслеживать поведение системы и в режиме реального времени производить диагностику проблем. В процессе отладки DTrace не влияет на работу исследуемых приложений и никак не отражается на их производительности, что позволяет организовать анализ работающих систем на лету.

Вопрос включения DTrace в состав ядра Linux в настоящее время потерял былую актуальность, так как средства для анализа производительности на базе BPF в последних выпусках ядра Linux уже достигли уровня функциональности DTrace и признаны готовыми к промышленному применению. Из остающихся актуальными сильных сторон DTrace отмечается высокоуровневый язык D, похожий на AWK, на котором значительно проще создавать сценарии трассировки, чем предлагаемые для BPF средства написания обработчиков на языках C, Python и Lua с внешними библиотеками.

Напомним, что применение лицензии CDDL существенно мешало распространению ZFS и DTrace в составе дистрибутивов Linux. По мнению организации Software Freedom Law Center включение в состав дистрибутивов модулей ядра под лицензией CDDL приемлемо и не нарушает лицензии GPLv2, если компонент поставляется отдельно от ядра в виде загружаемого модуля, так как отдельный модуль нельзя считать производным от ядра продуктом. Организация Software Freedom Conservancy и Фонд СПО не согласны с такой позицией и считают, что поставка бинарного модуля ядра нарушает GPL и ущемляет имущественные права разработчиков ядра, так как и в бинарном виде связка “Linux+модуль под CDDL” подпадает в категорию производной работы.

GPLv2 относится к разряду жестких копилефт-лицензий, требующих обязательного приложения исходного кода и распространения под лицензией GPL всех производных продуктов и комбинаций из нескольких работ. СDDL является мягкой копилефт-лицензией, не ограничивающей связывание исполняемого файла с компонентами под другими лицензиями, но требующей распространения итоговой работы только под CDDL, что приводит к невозможности совмещения кода под GPL и CDDL без получения исключения от владельца имущественных прав на код. Компания Oracle, как владелец прав на DTrace и ZFS, предоставляет для Oracle Linux исключение, снимающее требование по лицензированию комбинированной работы под CDDL, что снимает несовместимость с GPL. Разработчики других дистрибутивов не имеют такой возможности, поэтому конфликт копилефт лицензий сохраняется.