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

Исходное сообщение
"Реализация дизассемблера для встраивания в ядро Linux"

Отправлено opennews , 03-Апр-12 00:17 
В списке рассылки разработчиков ядра Linux представлен (https://lkml.org/lkml/2012/4/1/102) набор патчей с реализацией дизассемблера для архитектуры x86, который по задумке разработчиков позволит упростить разбор проблем за счёт вывода осмысленного ассемберного кода вместо шестнадцатеричного дампа во время краха ядра. Дополнительно поддерживается дизассемблирование на лету любой выполняемой функции ядра, используя интерфейс Debugfs, а также интеграция функций дизассемблера во встроенный в ядро отладчик KDB.


В ответ на публикацию патча Инго Молнар (Ingo Molnar), известный разработчик  ядра Linux и автор планировщика задач CFS, предложил (https://lkml.org/lkml/2012/4/2/33) несколько неординарных идей по развитию проекта. Например, доработка с реализацией режима ассемблера, который мог бы использоваться для сборки используемых в ядре ассемблерных вставок, или создание дополнительного режима проверки безопасности выполняемого на уровне ядра бинарного кода.

URL: https://lkml.org/lkml/2012/4/1/102
Новость: http://www.opennet.ru/opennews/art.shtml?num=33515


Содержание

Сообщения в этом обсуждении
"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 03-Апр-12 00:17 
Только asm, только kernel, только hardcore!

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено savant , 03-Апр-12 00:58 
А ведь иногда нихрена больше и нет. Только асм, только хардкор.

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 03-Апр-12 01:03 
> А ведь иногда нихрена больше и нет. Только асм, только хардкор.

А для проца в общем то в конечном итоге ничего кроме потока команд и нет. Логично что неплохо бы видеть на чем оно там споткнулось в виде более удобном чем хексдамп. Самому то хексдамп в уме дизасмить - удовольствие ниже среднего...


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено BratSinot , 03-Апр-12 07:58 
Зачем в уме? Кто мешает тот-же дизассемблер использовать?

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Sas , 03-Апр-12 11:03 
потому как хардкор же

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 03-Апр-12 12:42 
> Зачем в уме? Кто мешает тот-же дизассемблер использовать?

Никто, только неудобно в внешнюю прогу то скармливать. А тут оно само дизасмить будет :)


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено rshadow , 03-Апр-12 13:48 
Лучше бы сделали так чтобы оно ссылку на гитхаб давало, на место где упало.

Несколько лет назад сделали так в нашей системе (правда скриптовой, а не компилированный код). Получилось очень удобно.


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Aleks Revo , 03-Апр-12 15:52 
А что, разве не даёт? ))

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 03-Апр-12 05:12 
Эмм, а что - в линуксе отладочных символов для ядра ещё не изобрели, что там дизассемблер нужен? FreeBSD вон полноценный stack trace давно пишет.

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено фтыш , 03-Апр-12 09:08 
Там возможностей отладки побольше чем во фре.
Кроме того, неужели непонятно что не всем охота держать лишние данные в памяти? Это попросту неоправданно, если ты не разработчик ядра. Я например за 10 лет на разных компах его только 3-4 раза видел.
Так что юзайте дальше вашу винду, не отвлекайтесь на рассуждения.

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено фтыш , 03-Апр-12 09:09 
> Я например за 10 лет на разных компах его только 3-4 раза видел.

Имелся в виду кернелпаник.


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено анон , 03-Апр-12 10:43 
Символы не грузятся в память. Впрочем, не буду мешать радоваться новому лисапеду.

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 03-Апр-12 12:46 
> Впрочем, не буду мешать радоваться новому лисапеду.

Да уж. Если вы не понимаете отличий между дизассемблингом кода и символами - лучше валите отсюда. Зачем нам тормоза и ламеры?


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 03-Апр-12 17:52 
> Да уж. Если вы не понимаете отличий между дизассемблингом кода и символами - лучше валите отсюда. Зачем нам тормоза и ламеры?

Нам - и правда незачем. А вот во FreeBSD они - основная ударная сила.


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 03-Апр-12 23:07 
> Нам - и правда незачем. А вот во FreeBSD они - основная ударная сила.

Так пусть туда и валят к тигарам и изенам, там их оценят и поймут.


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено анон , 04-Апр-12 07:06 
И где же ты узрел, что я утверждаю подобное? Придумать глупость за оппонента и звонко ее осмеять - это такой "ловкий" полемический прием. Красноглазые собратья оценят. Уже оценили.

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено arisu , 05-Апр-12 19:41 
> И где же ты узрел, что я утверждаю подобное?

конечно, не утверждаешь. ты как ёжик из анекдота: «я не обгадился, я не обгадился…»


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 04-Апр-12 07:26 
> Там возможностей отладки побольше чем во фре.

Я задал конкретный вопрос, не надо мне маркетинговое фуфло гнать.

> Кроме того, неужели непонятно что не всем охота держать лишние данные в памяти?

А никто и не держит их в памяти.


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено анонимус , 03-Апр-12 11:56 
Еще как изобрели. Они даже зачем-то есть в стоковых Redhat'овских ядрах, которые ынтырпрайз по всему миру импользует в продакшне.

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 03-Апр-12 12:43 
> Эмм, а что - в линуксе отладочных символов

Сравнил ж-у с пальцем... символы лишь метки. А какой там код по факту... бcдшники такие бcдшники.


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено анон , 04-Апр-12 07:08 
А смысл? Все равно дебаггер запускать.

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 04-Апр-12 07:28 
> Сравнил ж-у с пальцем... символы лишь метки. А какой там код по
> факту... бcдшники такие бcдшники.

И-и-и? Вы в ядре ошибки компилятора отлаживаете? Или профайлите его руками?


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 03-Апр-12 17:51 
>  Эмм, а что - в линуксе отладочных символов для ядра ещё не изобрели, что там дизассемблер нужен? FreeBSD вон полноценный stack trace давно пишет.

Таблицы символов и полноценный stack trace в линуксе "изобрели", как обычно, на десять лет раньше, чем во фре. А новость про совершенно другую фичу, которой во фре не будет лет еще двадцать.
Но фанатикам бзди, как обычно, лишь бы ляпнуть.


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 04-Апр-12 07:30 
> Таблицы символов и полноценный stack trace в линуксе "изобрели", как обычно, на
> десять лет раньше, чем во фре. А новость про совершенно другую
> фичу, которой во фре не будет лет еще двадцать.

KDB всегда умел disassemble :))

> Но фaнатикам бзди, как обычно, лишь бы ляпнуть.

Приятно видеть что линyпсовый контингент не меняется.


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Сергей , 03-Апр-12 11:12 
Угу, перейдем в ядре на ассемблерные вставки, переносимость к лешему, зато летать будет....

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено z , 03-Апр-12 11:25 
ВНЕЗАПНО они там всегда были, и будут =)

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено rain87 , 03-Апр-12 11:43 
что, увидел знакомое слово в названии новости, а о чём сама новость - да ну нафиг, читать это для лохов?

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 03-Апр-12 12:44 
>  Угу, перейдем в ядре на ассемблерные вставки,

Пингвин вообще был сначала i386-only :D


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено pavlinux , 04-Апр-12 02:19 
>>  Угу, перейдем в ядре на ассемблерные вставки,
> Пингвин вообще был сначала i386-only :D

А вот и не фига, это у торвальдца просто был i386 =)


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 03-Апр-12 17:53 
>  Угу, перейдем в ядре на ассемблерные вставки

Breaking news! Они там присутствуют с незапамятных времен!


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 03-Апр-12 23:22 
> Breaking news! Они там присутствуют с незапамятных времен!

С самой первой версии :)


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Kodir , 03-Апр-12 12:36 
Конечно, код лучше дампа, но по-моему, в отладочных целях немного в том пользы. Что если порушен IP и переход осуществился в середину инструкции? Что делать с листингом, где непонятно кто и откуда пришёл? Пошаговая отладка - вот что удобно, но как с этим обстоят дела в Линукс - нинай.

"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 03-Апр-12 15:01 
Отладочная печать — вот что удобно. И вся необходимая инфраструктура и свободный исходный код для этого есть.

Студент-выкормыш Visual Studio?


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено arisu , 05-Апр-12 19:42 
> Студент-выкормыш Visual Studio?

натурально: это же почти эталонный вантузоид. не ванятко, конечно, но тоже весьма, весьма.


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 03-Апр-12 23:32 
> Пошаговая отладка - вот что удобно,

Ну покажи мне инструментарий для пошаговой отладки ядер операционок. Кстати а ты не думал, что ядро ОС - это чуть больше чем твой кусок третьесортного кода? Ядро ОС работает в чуть более сложной ситуации. В частности,
1) Может быть несколько потоков на нескольких ядрах. Они могут быть как-то синхронизированы. В этом случае пошаговая отладка как минимум может сильно изменить наблюдаемую картину.
2) Ядро ОС вообще-то должно реагировать на всякие там аппаратные прерывания и прочая. На некоторые - быстро. Игнорирование этого факта - чревато массой глюков и проблем.
3) Ядро может обеспечивать сервисы типа таймеров. Если ты будешь пошагово - а они не выстрелят в срок и опять будут какие-то глюки.
4) В общем случае ядро делает довольно много работы. Постоянно его шагать ты устанешь.

У некоторых платформ бывают аппаратные средства для упрощения и такой активности, но психов готовых шагать по пингвиньему ядру я еще не видел.

> но как с этим обстоят дела в Линукс - нинай.

Естественно, бсдшники же латентные проприетарщики, gcc-бяка, а вот вьюжлстудио... ну а то что им bsd не пересобирается - так такие как вы все равно это bsd на побаловаться брали. А мы в отличие от вас пришли надолго и всерьез.


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено pavlinux , 04-Апр-12 02:54 
>> Пошаговая отладка - вот что удобно,
> Ну покажи мне инструментарий для пошаговой отладки ядер операционок.

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

> Кстати а ты не думал, что ядро ...

А дальше текст теоретически буйного с мех-мата МГУП


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено tester , 11-Апр-12 02:10 
>Ну покажи мне инструментарий для пошаговой отладки ядер операционок.

отладка kgdb

интересно будем посмотреть на такое дизассемблирование поскольку сейчас обычно только с макросами играются а раньше еще утилита crash была


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено pavlinux , 04-Апр-12 02:46 
Надеюсь он будет как Soft-ICE по Ctrl-D выскакивать???
И в командной строке можно будет:
:export vmlinux
:bpх copy_to_user
...
И консолька будет цветастая, для данных, регистров, флагов, стека,... =)

--
Masami Hiramatsu, оу, да это япошка... значит уже можно вовсю юзать...
Японцы сырые бета версии никогда не показывают!


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено Аноним , 04-Апр-12 03:55 
> --
> Masami Hiramatsu, оу, да это япошка... значит уже можно вовсю юзать...
> Японцы сырые бета версии никогда не показывают!

а если все-таки сырая выйдет, то его из японцев исключат? :)


"Реализация дизассемблера для встраивания в ядро Linux"
Отправлено pavlinux , 04-Апр-12 14:57 
>> --
>> Masami Hiramatsu, оу, да это япошка... значит уже можно вовсю юзать...
>> Японцы сырые бета версии никогда не показывают!
> а если все-таки сырая выйдет, то его из японцев исключат? :)

Нет, он должен сам себя исключить - прямая трансляция харакири на багтрекере!