The OpenNET Project / Index page

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

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

02.04.2012 23:53

В списке рассылки разработчиков ядра Linux представлен набор патчей с реализацией дизассемблера для архитектуры x86, который по задумке разработчиков позволит упростить разбор проблем за счёт вывода осмысленного ассемберного кода вместо шестнадцатеричного дампа во время краха ядра. Дополнительно поддерживается дизассемблирование на лету любой выполняемой функции ядра, используя интерфейс Debugfs, а также интеграция функций дизассемблера во встроенный в ядро отладчик KDB.

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

  1. Главная ссылка к новости (https://lkml.org/lkml/2012/4/1...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/33515-linux
Ключевые слова: linux, disassembler, kernel
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (40) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 00:17, 03/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +28 +/
    Только asm, только kernel, только hardcore!
     
     
  • 2.3, savant (ok), 00:58, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А ведь иногда нихрена больше и нет. Только асм, только хардкор.
     
     
  • 3.4, Аноним (-), 01:03, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А ведь иногда нихрена больше и нет. Только асм, только хардкор.

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

     
     
  • 4.6, BratSinot (?), 07:58, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем в уме? Кто мешает тот-же дизассемблер использовать?
     
     
  • 5.10, Sas (ok), 11:03, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    потому как хардкор же
     
  • 5.16, Аноним (-), 12:42, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем в уме? Кто мешает тот-же дизассемблер использовать?

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

     
     
  • 6.27, rshadow (ok), 13:48, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше бы сделали так чтобы оно ссылку на гитхаб давало, на место где упало.

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

     
     
  • 7.34, Aleks Revo (ok), 15:52, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А что, разве не даёт? ))
     

  • 1.5, Аноним (-), 05:12, 03/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Эмм, а что - в линуксе отладочных символов для ядра ещё не изобрели, что там дизассемблер нужен? FreeBSD вон полноценный stack trace давно пишет.
     
     
  • 2.7, фтыш (?), 09:08, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Там возможностей отладки побольше чем во фре.
    Кроме того, неужели непонятно что не всем охота держать лишние данные в памяти? Это попросту неоправданно, если ты не разработчик ядра. Я например за 10 лет на разных компах его только 3-4 раза видел.
    Так что юзайте дальше вашу винду, не отвлекайтесь на рассуждения.
     
     
  • 3.8, фтыш (?), 09:09, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Я например за 10 лет на разных компах его только 3-4 раза видел.

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

     
  • 3.9, анон (?), 10:43, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Символы не грузятся в память. Впрочем, не буду мешать радоваться новому лисапеду.
     
     
  • 4.19, Аноним (-), 12:46, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Впрочем, не буду мешать радоваться новому лисапеду.

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

     
     
  • 5.37, Аноним (-), 17:52, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да уж. Если вы не понимаете отличий между дизассемблингом кода и символами - лучше валите отсюда. Зачем нам тормоза и ламеры?

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

     
     
  • 6.40, Аноним (-), 23:07, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Нам - и правда незачем. А вот во FreeBSD они - основная ударная сила.

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

     
  • 5.49, анон (?), 07:06, 04/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    И где же ты узрел, что я утверждаю подобное? Придумать глупость за оппонента и звонко ее осмеять - это такой "ловкий" полемический прием. Красноглазые собратья оценят. Уже оценили.
     
     
  • 6.55, arisu (ok), 19:41, 05/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > И где же ты узрел, что я утверждаю подобное?

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

     
  • 3.51, Аноним (-), 07:26, 04/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Там возможностей отладки побольше чем во фре.

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

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

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

     
  • 2.14, анонимус (??), 11:56, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Еще как изобрели. Они даже зачем-то есть в стоковых Redhat'овских ядрах, которые ынтырпрайз по всему миру импользует в продакшне.
     
  • 2.17, Аноним (-), 12:43, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Эмм, а что - в линуксе отладочных символов

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

     
     
  • 3.50, анон (?), 07:08, 04/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А смысл? Все равно дебаггер запускать.
     
  • 3.52, Аноним (-), 07:28, 04/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Сравнил ж-у с пальцем... символы лишь метки. А какой там код по
    > факту... бcдшники такие бcдшники.

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

     
  • 2.36, Аноним (-), 17:51, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >  Эмм, а что - в линуксе отладочных символов для ядра ещё не изобрели, что там дизассемблер нужен? FreeBSD вон полноценный stack trace давно пишет.

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

     
     
  • 3.53, Аноним (-), 07:30, 04/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Таблицы символов и полноценный stack trace в линуксе "изобрели", как обычно, на
    > десять лет раньше, чем во фре. А новость про совершенно другую
    > фичу, которой во фре не будет лет еще двадцать.

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

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

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

     

  • 1.11, Сергей (??), 11:12, 03/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Угу, перейдем в ядре на ассемблерные вставки, переносимость к лешему, зато летать будет....
     
     
  • 2.12, z (??), 11:25, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    ВНЕЗАПНО они там всегда были, и будут =)
     
  • 2.13, rain87 (?), 11:43, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +7 +/
    что, увидел знакомое слово в названии новости, а о чём сама новость - да ну нафиг, читать это для лохов?
     
  • 2.18, Аноним (-), 12:44, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >  Угу, перейдем в ядре на ассемблерные вставки,

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

     
     
  • 3.45, pavlinux (ok), 02:19, 04/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >>  Угу, перейдем в ядре на ассемблерные вставки,
    > Пингвин вообще был сначала i386-only :D

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

     
  • 2.38, Аноним (-), 17:53, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >  Угу, перейдем в ядре на ассемблерные вставки

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

     
     
  • 3.42, Аноним (-), 23:22, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Breaking news! Они там присутствуют с незапамятных времен!

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

     

  • 1.15, Kodir (ok), 12:36, 03/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Конечно, код лучше дампа, но по-моему, в отладочных целях немного в том пользы. Что если порушен IP и переход осуществился в середину инструкции? Что делать с листингом, где непонятно кто и откуда пришёл? Пошаговая отладка - вот что удобно, но как с этим обстоят дела в Линукс - нинай.
     
     
  • 2.30, Аноним (-), 15:01, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Отладочная печать — вот что удобно. И вся необходимая инфраструктура и свободный исходный код для этого есть.

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

     
     
  • 3.56, arisu (ok), 19:42, 05/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Студент-выкормыш Visual Studio?

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

     
  • 2.43, Аноним (-), 23:32, 03/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну покажи мне инструментарий для пошаговой отладки ядер операционок Кстати а ты... большой текст свёрнут, показать
     
     
  • 3.47, pavlinux (ok), 02:54, 04/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Пошаговая отладка - вот что удобно,
    > Ну покажи мне инструментарий для пошаговой отладки ядер операционок.

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

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

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

     
  • 3.57, tester (??), 02:10, 11/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну покажи мне инструментарий для пошаговой отладки ядер операционок.

    отладка kgdb

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

     

  • 1.46, pavlinux (ok), 02:46, 04/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Надеюсь он будет как Soft-ICE по Ctrl-D выскакивать???
    И в командной строке можно будет:
    :export vmlinux
    :bpх copy_to_user
    ...
    И консолька будет цветастая, для данных, регистров, флагов, стека,... =)

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

     
     
  • 2.48, Аноним (-), 03:55, 04/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > --
    > Masami Hiramatsu, оу, да это япошка... значит уже можно вовсю юзать...
    > Японцы сырые бета версии никогда не показывают!

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

     
     
  • 3.54, pavlinux (ok), 14:57, 04/04/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> --
    >> Masami Hiramatsu, оу, да это япошка... значит уже можно вовсю юзать...
    >> Японцы сырые бета версии никогда не показывают!
    > а если все-таки сырая выйдет, то его из японцев исключат? :)

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

     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру