URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 90128
[ Назад ]

Исходное сообщение
"Первый выпуск ktap, новой системы динамической трассировки д..."

Отправлено opennews , 22-Май-13 11:26 
Представлен (https://lkml.org/lkml/2013/5/20/691) первый выпуск проекта ktap (https://github.com/ktap/ktap), в рамках которого развивается новая система динамической трассировки работы ядра Linux, предоставляющая собственный скриптовый язык для создания сценариев. Сценарии могут быть использованы как для автоматизации выявления узких мест, так и для изменения параметров работы ядра. При этом возможности не ограничиваются мелким тюнингом, скрипты ktap могут использоваться для изменения поведения систем ядра и даже для реализации дополнительной функциональности.


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


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

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


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

Пример (https://github.com/ktap/ktap/blob/master/doc/examples.txt) простой функции трассировки системных вызовов:

<font color="#461b7e">
  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")
  })


</font>


URL: https://lkml.org/lkml/2013/5/20/691
Новость: http://www.opennet.me/opennews/art.shtml?num=36991


Содержание

Сообщения в этом обсуждении
"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 22-Май-13 11:35 
признавайтесь, кто тут шутил про питон в ядре?

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено anonymous , 22-Май-13 12:35 
Пока там только виртуальная машина, работающая с байткодом, а не полноценный интерпритатор.

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено IMHO , 22-Май-13 13:40 
python не слыхал, а вот про lua в ядре NetBSD слыхал

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено lazyden , 22-Май-13 14:45 
Дык это и есть Lua, только с присобаченным GPL заголовком. Сравни https://github.com/ktap/ktap/blob/master/opcode.c с http://www.lua.org/source/5.1/lopcodes.c.html и найди 10 отличий :)

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 22-Май-13 15:24 
Ого, прикольно, а почему в новости об этом ни слова?

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 22-Май-13 11:35 
Опять новый язык придумали. Могли же просто Lua/LuaJIT интергировать, как NetBSD.

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 22-Май-13 15:18 
> Опять новый язык придумали.

Потому что логично ОС писанную на си отлаживать с использованием си-подобного ЯП :)


"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 23-Май-13 00:49 
А почему не shell-подобного?

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 24-Май-13 00:52 
> А почему не shell-подобного?

Наверное поттому что психов которые бы на этом рискнули написать ядро ОС пока не замечено...


"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено warham , 22-Май-13 11:47 
>Замедление работы ядра при активации ktap не превышает 10%

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


"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Aquarius , 24-Май-13 13:46 
сам спросил - сам ответил

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено anonymous , 22-Май-13 12:40 
>отсутствием необходимости завершения строки знаком ';'.

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


"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 22-Май-13 13:01 
просто парит их постоянно ставить

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Z , 22-Май-13 15:22 
Еще людей парит начинать предложение с большой буквы, ставить в конце точку и другие знаки препинания. В результате текст становится не читаемым, зато писать легко.

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 22-Май-13 15:45 
> Еще людей парит начинать предложение с большой буквы, ставить в конце точку
> и другие знаки препинания. В результате текст становится не читаемым, зато
> писать легко.
>не читаемым

ну ты понел


"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 22-Май-13 17:43 
> Еще людей парит начинать предложение с большой буквы, ставить в конце точку
> и другие знаки препинания. В результате текст становится не читаемым, зато
> писать легко.

А правильно писать частицу "не" вас не парит?


"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Aquarius , 24-Май-13 13:48 
>> Еще людей парит начинать предложение с большой буквы, ставить в конце точку
>> и другие знаки препинания. В результате текст становится не читаемым, зато
>> писать легко.
> А правильно писать частицу "не" вас не парит?

это должно было быть приставкой


"Первый выпуск ktap, новой системы динамической..."
Отправлено arisu , 22-Май-13 21:12 
заглавная буква в начале предложения действительно не нужна. если, конечно, хороший шрифт, и запятая визуально отличается от точки.

впрочем, если кому-то без заглавных жизнь не мила, то это легко и автоматически правится элементарным скриптом, который почти никогда не ошибается. в отличие от правописания («не читаемым», ага) и знаков препинания.


"Первый выпуск ktap, новой системы динамической..."
Отправлено Аноним , 22-Май-13 22:39 
А
еще
можно
вместо
пробелов
переводы
строки
использовать.

Скрипт
тоже
элементарно
пишется.


"Первый выпуск ktap, новой системы динамической..."
Отправлено arisu , 22-Май-13 22:42 
(пожимает плечами) можно. используй. разрешаю.

"Первый выпуск ktap, новой системы динамической..."
Отправлено Аноним , 22-Май-13 23:30 
Спасибо!

"Первый выпуск ktap, новой системы динамической..."
Отправлено Аноним , 24-Май-13 00:53 
> (пожимает плечами) можно. используй. разрешаю.

хорошая
однако
идея
надо
будет
взять
на
вооружение


"Первый выпуск ktap, новой системы динамической..."
Отправлено Аноним , 01-Июн-13 23:08 
А еЩе МоЖнО вОт ТаК!11

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 22-Май-13 14:45 
А какие пробы использует systemtap? Те же (kprobes) или собственные?

А то ведь одного языка мало, надо еще во все подсистемы ядра пробы насовать, чтобы он заработал.


"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Мяут , 22-Май-13 17:09 
ftrace, но главное т.н. function boundary tracing - т.е. трассировка границ функции (как правило точки входа). Вокруг него построены алиасы (тапсеты)

Вообще SystemTap умеет любую инструкцию/строчку кода


"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 22-Май-13 17:56 
Т.е. kprobes к systemtap не относятся?

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Мяут , 22-Май-13 18:36 
Да не, вроде бы самостоятельная система, к которой умеет цепляться SystemTap

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Anonymus , 22-Май-13 20:02 
Скоро на этом будут писать кроссплатформенные драйвера для железяк.

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 24-Май-13 00:55 
> Скоро на этом будут писать кроссплатформенные драйвера для железяк.

Драйвера в лине и так кроссплатформенные. В том плане что драйвер какого-нибудь 3G свистка на usb совершенно без проблем взлетит и на ARM или MIPS каком-нибудь. Вообще совсем без переделки, приколитесь? :)


"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 22-Май-13 21:04 
кде баг. Символично

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 22-Май-13 22:41 
Всегда говорил, что плазма падает из-за багов в ядре, а Аарон не виноватый :)

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 01-Июн-13 23:09 
Плазма не падает!

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 22-Май-13 23:46 
Отличная новость, похоже всё-таки будет на Linux система, которую можно хотя бы и с оглядкой, но всё же использовать в production.

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 23-Май-13 17:24 
А Вы все еще вывариваете?

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 26-Май-13 01:04 
Мы не готовы ронять продакшн.
http://dtrace.org/blogs/brendan/2011/10/15/using-systemtap/

"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 01-Июн-13 23:10 
> А Вы все еще вывариваете?

Он уже выварил свой череп до состояния анатомического препарата.


"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено sirGrey , 23-Май-13 00:12 
А какие широкие возможности для руткитописателей.

Теперь и на Lua!

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


"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 24-Май-13 23:49 
Легкий пересказ design.txt проекта

Неожиданно узнаем, что по экспертному мнению создателей сабжа православный SystemTap сливает рассово чуждому DTrace. Но DTrace, гадина такая, совсем не встраивается в Linux. В Solaris встраивается, во FreeBSD встраивается, а в Linux - ну никак. Ясное дело - бясовкая коприрастая на дух не переносит святаго GPL-нага коду. Зато более мощный язык сабжа (внезапно) легко может быть встроен в ядро. Чудеса.


"Первый выпуск ktap, новой системы динамической трассировки д..."
Отправлено Аноним , 26-Май-13 14:13 
Врешь http://ru.wikipedia.org/wiki/Debian_GNU/kFreeBSD