Одной из наиболее ожидаемых функций Mac OS X Leopard среди технического сообщества стал портирование утилиты Sun DTrace для профилирования приложений и систем. DTrace — это мощная низкоуровневая система динамической трассировки, которая позволяет системным администраторам и разработчикам отслеживать приложения для настройки или устранения неполадок.
Недавно Адам Левенталь, один из первых разработчиков DTrace, обнаружил, что реализация Apple предоставляет программе возможность исключить себя из трассировки. В частности, ему не удалось отследить iTunes, и он обнаружил, что Apple добавила метод отключения зондирования для определенных приложений, определенных директивой P_LNOATTACH.
Вау. Значит, Apple явно запрещает DTrace исследовать или записывать данные для процессов, которые не разрешают трассировку. Это противоречит идее системной трассировки, противоречит целям DTrace и духу открытого исходного кода. Я уверен, что это было введено под давлением независимых поставщиков программного обеспечения, но от этого глотать пилюлю не легче.
С момента первоначальной публикации записи в блоге на прошлой неделе эта история начала всплывать везде в мак-вебе.
Эта практика для Apple не является чем-то совершенно новым. Комментатор в блоге Адама Левенталя отметил, что Apple использовала ту же директиву для предотвращения трассировки GDB в iTunes. Кроме того, реализация этой директивы, по-видимому, ограничена iTunes (пока?), поэтому многие предполагают, что этот шаг направлен на защиту DRM FairPlay от Apple.
Представляя альтернативную точку зрения, Apple расширила поддержку DTrace для Java, Ruby, Python и Perl, а также создала графический интерфейс под названием Instruments. Кроме того, проблема может стать несущественной благодаря заявленному желанию Apple перейти к музыке без DRM (хотя видео с DRM по-прежнему остается распространенным).