The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

22.05.2013 10:42  Первый выпуск ktap, новой системы динамической трассировки для ядра Linux

Представлен первый выпуск проекта ktap, в рамках которого развивается новая система динамической трассировки работы ядра Linux, предоставляющая собственный скриптовый язык для создания сценариев. Сценарии могут быть использованы как для автоматизации выявления узких мест, так и для изменения параметров работы ядра. При этом возможности не ограничиваются мелким тюнингом, скрипты ktap могут использоваться для изменения поведения систем ядра и даже для реализации дополнительной функциональности.

От существующих систем, таких как SystemTap и DTrace, ktap отличается иной архитектурой и другими принципами организации выполнения скриптов трассировки. Скрипты преобразуются в байткод, загружаемый и выполняемый уже работающим центральным модулем ktap, что не требует сборки и загрузки отдельных модулей ядра из расчёта отдельный модуль для каждого из сценариев трассировки. Байткод выполняется внутри специальной регистровой виртуальной машины ktapvm (подобный подход близок к DTrace и отличается от SystemTap, в котором используется транслятор). Байткод является универсальным и может быть использован без пересборки в ядрах на системах с различной архитектурой, т.е. скрипт может быть собран и проверен на ПК разработчика и потом выполнен на встраиваемом устройстве на базе другой процессорной архитектуры.

Синтаксис языка сценариев напоминает язык Си и отличается в основном методом объявления переменных (в ktap используются динамические переменные, без явного объявления), поддержкой вместо массивов табличных структур (хэши ключ/значение, позволяющие указывать t["key"] = 10), отсутствием необходимости завершения строки знаком ';'. Замедление работы ядра при активации ktap не превышает 10%, после интеграции JIT в виртуальную машину ktapvm паразитную нагрузку планируется свести к 3-5%.

Первый выпуск ktap пока доступен только для 32- и 64-разрядных систем x86. Среди поддерживаемых возможностей отмечается поддержка установки точек трассировки (tracepoints), анализ работы системных вызовов, использование контрольных проверок kprobes и kretprobes, отслеживание вызова обработчиков событий от таймера, оценка состояния стека. Для использования в скриптах поставляется встроенная библиотека функций для упрощения работы с различными низкоуровневыми механизмами трассировки.

Код проекта распространяется под лицензией GPL и оформлен в виде модуля для ядра Linux. Система может использоваться с ядрами начиная с версии 3.4 (ядро должно быть собрано с опциями CONFIG_EVENT_TRACING, CONFIG_PERF_EVENTS, CONFIG_KPROBES и CONFIG_KALLSYMS) и не требует применения дополнительный патчей для кода ядра.

Пример простой функции трассировки системных вызовов:


  function eventfun (e) {
        printf("%d %d\\t%s\\t%s", cpu(), pid(), execname(), e.tostring())
  }
  kdebug.probe("tp:syscalls", eventfun)

  kdebug.probe_end(function () {
         printf("probe end\\n")
  })




  1. Главная ссылка к новости (https://lkml.org/lkml/2013/5/2...)
  2. OpenNews: Релиз системы динамической отладки SystemTap 2.1
  3. OpenNews: Компания Oracle представила первый стабильный релиз DTrace для Linux
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: trace, ktap
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.3, Аноним, 11:35, 22/05/2013 [ответить] [смотреть все]
  • +7 +/
    признавайтесь, кто тут шутил про питон в ядре?
     
     
  • 2.6, anonymous, 12:35, 22/05/2013 [^] [ответить] [смотреть все] [показать ветку]
  • –1 +/
    Пока там только виртуальная машина, работающая с байткодом, а не полноценный инт... весь текст скрыт [показать] [показать ветку]
     
  • 2.9, IMHO, 13:40, 22/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    python не слыхал, а вот про lua в ядре NetBSD слыхал
     
     
  • 3.12, lazyden, 14:45, 22/05/2013 [^] [ответить] [смотреть все]  
  • +5 +/
    Дык это и есть Lua, только с присобаченным GPL заголовком Сравни https github... весь текст скрыт [показать]
     
     
  • 4.22, Аноним, 15:24, 22/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Ого, прикольно, а почему в новости об этом ни слова?
     
  • 1.4, Аноним, 11:35, 22/05/2013 [ответить] [смотреть все]  
  • +4 +/
    Опять новый язык придумали Могли же просто Lua LuaJIT интергировать, как NetBSD... весь текст скрыт [показать]
     
     
  • 2.19, Аноним, 15:18, 22/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Потому что логично ОС писанную на си отлаживать с использованием си-подобного ЯП... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.52, Аноним, 00:49, 23/05/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    А почему не shell-подобного?
     
     
  • 4.54, Аноним, 00:52, 24/05/2013 [^] [ответить] [смотреть все]  
  • +2 +/
    Наверное поттому что психов которые бы на этом рискнули написать ядро ОС пока не... весь текст скрыт [показать]
     
  • 1.5, warham, 11:47, 22/05/2013 [ответить] [смотреть все]  
  • –1 +/
    >Замедление работы ядра при активации ktap не превышает 10%

    А как происходит активация? modprobe ktap?

     
     
  • 2.57, Aquarius, 13:46, 24/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    сам спросил - сам ответил
     
  • 1.7, anonymous, 12:40, 22/05/2013 [ответить] [смотреть все]  
  • +3 +/
    >отсутствием необходимости завершения строки знаком ';'.

    Ну откуда в людях такая ненависть к этому символу, и почему всем так хочется нагрузить перенос смысловым значением, а не оставить просто элементом форматирования?

     
     
  • 2.8, Аноним, 13:01, 22/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    просто парит их постоянно ставить
     
     
  • 3.21, Z, 15:22, 22/05/2013 [^] [ответить] [смотреть все]  
  • +7 +/
    Еще людей парит начинать предложение с большой буквы, ставить в конце точку и другие знаки препинания. В результате текст становится не читаемым, зато писать легко.
     
     
  • 4.25, Аноним, 15:45, 22/05/2013 [^] [ответить] [смотреть все]  
  • +6 +/
    > Еще людей парит начинать предложение с большой буквы, ставить в конце точку
    > и другие знаки препинания. В результате текст становится не читаемым, зато
    > писать легко.
    >не читаемым

    ну ты понел

     
  • 4.33, Аноним, 17:43, 22/05/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    А правильно писать частицу не вас не парит ... весь текст скрыт [показать]
     
     
  • 5.58, Aquarius, 13:48, 24/05/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    это должно было быть приставкой... весь текст скрыт [показать]
     
  • 4.45, arisu, 21:12, 22/05/2013 [^] [ответить] [смотреть все]  
  • –6 +/
    заглавная буква в начале предложения действительно не нужна если, конечно, хоро... весь текст скрыт [показать]
     
     
  • 5.46, Аноним, 22:39, 22/05/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    А еще можно вместо пробелов переводы строки использовать Скрипт тоже элементарн... весь текст скрыт [показать]
     
     
  • 6.48, arisu, 22:42, 22/05/2013 [^] [ответить] [смотреть все]  
  • +/
    (пожимает плечами) можно. используй. разрешаю.
     
     
  • 7.49, Аноним, 23:30, 22/05/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    Спасибо!
     
  • 7.55, Аноним, 00:53, 24/05/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    хорошая однако идея надо будет взять на вооружение... весь текст скрыт [показать]
     
  • 6.62, Аноним, 23:08, 01/06/2013 [^] [ответить] [смотреть все]  
  • +/
    А еЩе МоЖнО вОт ТаК!11
     
  • 1.11, Аноним, 14:45, 22/05/2013 [ответить] [смотреть все]  
  • +/
    А какие пробы использует systemtap Те же kprobes или собственные А то ведь о... весь текст скрыт [показать]
     
     
  • 2.30, Мяут, 17:09, 22/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    ftrace, но главное т н function boundary tracing - т е трассировка границ функ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.38, Аноним, 17:56, 22/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Т.е. kprobes к systemtap не относятся?
     
     
  • 4.41, Мяут, 18:36, 22/05/2013 [^] [ответить] [смотреть все]  
  • +/
    Да не, вроде бы самостоятельная система, к которой умеет цепляться SystemTap
     
  • 1.43, Anonymus, 20:02, 22/05/2013 [ответить] [смотреть все]  
  • +/
    Скоро на этом будут писать кроссплатформенные драйвера для железяк.
     
     
  • 2.56, Аноним, 00:55, 24/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Драйвера в лине и так кроссплатформенные В том плане что драйвер какого-нибудь ... весь текст скрыт [показать] [показать ветку]
     
  • 1.44, Аноним, 21:04, 22/05/2013 [ответить] [смотреть все]  
  • –2 +/
    кде баг. Символично
     
     
  • 2.47, Аноним, 22:41, 22/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Всегда говорил, что плазма падает из-за багов в ядре, а Аарон не виноватый :)
     
     
  • 3.63, Аноним, 23:09, 01/06/2013 [^] [ответить] [смотреть все]  
  • +/
    Плазма не падает!
     
  • 1.50, Аноним, 23:46, 22/05/2013 [ответить] [смотреть все]  
  • –1 +/
    Отличная новость, похоже всё-таки будет на Linux система, которую можно хотя бы ... весь текст скрыт [показать]
     
     
  • 2.53, Аноним, 17:24, 23/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А Вы все еще вывариваете?
     
     
  • 3.60, Аноним, 01:04, 26/05/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    Мы не готовы ронять продакшн http dtrace org blogs brendan 2011 10 15 using-s... весь текст скрыт [показать]
     
  • 3.64, Аноним, 23:10, 01/06/2013 [^] [ответить] [смотреть все]  
  • +/
    Он уже выварил свой череп до состояния анатомического препарата ... весь текст скрыт [показать]
     
  • 1.51, sirGrey, 00:12, 23/05/2013 [ответить] [смотреть все]  
  • +1 +/
    А какие широкие возможности для руткитописателей.

    Теперь и на Lua!

    Про модель безопасности не слова в новости.

     
  • 1.59, Аноним, 23:49, 24/05/2013 [ответить] [смотреть все]  
  • –1 +/
    Легкий пересказ design txt проекта Неожиданно узнаем, что по экспертному мнению ... весь текст скрыт [показать]
     
     
  • 2.61, Аноним, 14:13, 26/05/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Врешь http://ru.wikipedia.org/wiki/Debian_GNU/kFreeBSD
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor