OSDev
http://osdev.su/

Разработка отладчика
http://osdev.su/viewtopic.php?f=18&t=565
Страница 1 из 3

Автор:  Golan [ 28 май 2012, 14:08 ]
Заголовок сообщения:  Разработка отладчика

Как вы считаете, разработка универсального, то есть не зависящего от программной платформы, отладчика, это стоящее дело? Мне кажется, что отладчик на основе аппаратной виртуализации, под которым можно отлаживать и Windows и Linux
приложения, по своей сути это мини-операционная система. Тут есть возможности для применения ума и знаний. Абстрактная ОС по сути ведь никому не нужна. Даже если кто-то и создаст вменяемую операционку, шансов повторить успех Л.Торвальдса у него немного, пока под нее не будет прикладного софта. Зато хороший отладчик может быть полезен многим даже без сопутствующего програмного обеспечения.

Автор:  grindars [ 28 май 2012, 14:18 ]
Заголовок сообщения:  Re: Разработка отладчика

А зачем? В винде есть KD, в линуксе тоже есть ядерный отладчик (но, насколько мне известно, полудоделанном состоянии). Не говоря уже о том, что полноценному ядерному отладчику должны быть известны множество деталей реализации ядра, а значит, он уже не универсальный.

Автор:  Станислав [ 28 май 2012, 14:21 ]
Заголовок сообщения:  Re: Разработка отладчика

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

Автор:  Golan [ 28 май 2012, 14:39 ]
Заголовок сообщения:  Re: Разработка отладчика

grindars писал(а):
А зачем? В винде есть KD, в линуксе тоже есть ядерный отладчик (но, насколько мне известно, полудоделанном состоянии). Не говоря уже о том, что полноценному ядерному отладчику должны быть известны множество деталей реализации ядра, а значит, он уже не универсальный.

Реализованные в Windows и Linux отладчики не устраивают многих. Если отлаживаемый драйвер напрямую работает с дескрипторами и таблицами страниц, то отладить его у вас не получится без плясок и прочего шаманства. Отладчик должен быть "ниже" ОС, это мое глубокое и обоснованное мнение.А детали реализации ядра отлаживаемой ОС можно вынести за скобки, реализовав это как плагин. Сам отладчик управляет процессором и памятью, а внутренности и интерпретация памяти пусть лягут на плечи соответствующих плагинов

Автор:  valeri [ 28 май 2012, 14:45 ]
Заголовок сообщения:  Re: Разработка отладчика

Golan писал(а):
Реализованные в Windows и Linux отладчики не устраивают многих. Если отлаживаемый драйвер напрямую работает с дескрипторами и таблицами страниц, то отладить его у вас не получится без плясок и прочего шаманства. Отладчик должен быть "ниже" ОС, это мое глубокое и обоснованное мнение.А детали реализации ядра отлаживаемой ОС можно вынести за скобки, реализовав это как плагин. Сам отладчик управляет процессором и памятью, а внутренности и интерпретация памяти пусть лягут на плечи соответствующих плагинов


Вы представляете что из себя будет представлять данный "плагин"?
Это ж целое ядро придется в него впихивать, т.к. драйверы Windows, например, активно импортируют функциии ядра и работают с ними. И что, все эти функции реализовывать у себя в "плагине"?
Да и какой процент драйверов напрямую работает с дескрипторами и таблицами страниц?

Автор:  SII [ 28 май 2012, 14:51 ]
Заголовок сообщения:  Re: Разработка отладчика

grindars писал(а):
А зачем? В винде есть KD, в линуксе тоже есть ядерный отладчик (но, насколько мне известно, полудоделанном состоянии). Не говоря уже о том, что полноценному ядерному отладчику должны быть известны множество деталей реализации ядра, а значит, он уже не универсальный.


Тут не совсем соглашусь. Весьма удобной была б возможность отладки чего угодно, причём так, чтобы это "что-то" и не знало, что его отлаживают (ну, за исключением возможности определить сам факт отладки по показаниям таймеров и т.п. "хитрыми" способами) -- т.е. внешним по отношению к нему инструментом. На мэйнфреймах такая возможность была и есть -- это система виртуальных машин :) Грузишь в ней любую операционку (в том числе саму СВМ) и отлаживай, как будто с пульта управления. Было весьма удобно. На ПК же все имеющиеся виртуальные машины, насколько знаю, начисто лишены возможности отладки.

В общем, был бы смысл создать именно СВМ, но на ПК это крайне сложная задача ввиду его дикой архитектуры, множества недокументированных вещей и т.д. и т.п.

Автор:  grindars [ 28 май 2012, 14:53 ]
Заголовок сообщения:  Re: Разработка отладчика

valeri писал(а):
Да и какой процент драйверов напрямую работает с дескрипторами и таблицами страниц?


По моему мнению, авторам драйверов, лезущих в дескрипторы и таблицы страниц, следует отрывать руки.

Golan, я понял вашу мысль. В общем, идея достаточно интересная, и попробовать сделать такой отладчик стоит.

P.S. А вот на ARM-ах с внутрисхемной отладкой вообще кайф :)

Автор:  grindars [ 28 май 2012, 14:54 ]
Заголовок сообщения:  Re: Разработка отладчика

SII писал(а):
Тут не совсем соглашусь. Весьма удобной была б возможность отладки чего угодно, причём так, чтобы это "что-то" и не знало, что его отлаживают (ну, за исключением возможности определить сам факт отладки по показаниям таймеров и т.п. "хитрыми" способами) -- т.е. внешним по отношению к нему инструментом.


Как минимум управляющие блоки разбирать надо, без этого отлаживать всю систему, а не само ядро, несколько туго: как различать потоки, например?

Автор:  Golan [ 28 май 2012, 14:57 ]
Заголовок сообщения:  Re: Разработка отладчика

Если память меня не подводит, то драйвер HASP напрямую работал с таблицей дескрипторов прерываний. А используется HASP весьма и весьма широко. Может разработчикам из Alladin и стоит оторвать руки, только сам факт это не изменит.

Автор:  Golan [ 28 май 2012, 15:00 ]
Заголовок сообщения:  Re: Разработка отладчика

valeri писал(а):
Это ж целое ядро придется в него впихивать, т.к. драйверы Windows, например, активно импортируют функциии ядра и работают с ними. И что, все эти функции реализовывать у себя в "плагине"?

А почему нет? SoftIce и Syser могут себе это позволит как часть основного функционала. Почему бы этот же функционал не вынести в плагин?

Страница 1 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/