Как отлаживаются операционные системы? - PullRequest
8 голосов
/ 06 марта 2011

Как обычно отлаживаются операционные системы?Их нельзя выполнить с помощью отладчика, такого как простые консольные программы, а время сборки слишком велико, чтобы многократно вносить небольшие изменения и перекомпилировать все это.

Ответы [ 3 ]

6 голосов
/ 06 марта 2011

Они не отлажены как мультигигабайтные программы!:)

Если вы имеете в виду отдельные компоненты пользовательского режима, их можно в основном отлаживать, как обычные программы и библиотеки (поскольку они являются обычными программами / библиотеками!).

Однако для компонентов режима ядра каждая ОС имеет свой собственный механизм; здесь - некоторая информация о том, как мы выполняем отладку ядра в Windows.Это можно сделать с помощью другой машины, подключенной к машине, которую вы отлаживаете, через последовательный порт или что-то еще.Я не знаком с самим процессом, но в этом суть их работы.(Вам нужно установить некоторые параметры загрузчика, чтобы система была готова к тому, чтобы отладчик был подключен как можно раньше.)

5 голосов
/ 06 марта 2011

Это зависит от того, о какой части операционной системы вы говорите. Когда я работал в MSFT, я работал в команде IE. Мы отладили IE и оболочку (Windows Explorer) в Visual Studio и пошагово проходили по ним весь день. Хотя иногда проще отладить с помощью инструмента командной строки , такого как NTSD.

Если, однако, вы хотите отлаживать что-либо на земле ядра, например ядро ​​ОС или драйверы устройств, что, как я подозреваю, действительно то, о чем вы спрашиваете, то вы должны использовать отладчик ядра. Для Windows это инструмент командной строки с именем kd, и обычно вы запускаете отладчик на одной машине и удаленно отлаживаете цель.

1 голос
/ 06 марта 2011

На протяжении всей истории существовал целый ряд методов, от мигающих огней на консоли, до использования аппаратных устройств, таких как ICE, до более современных методов, использующих довольно стандартные отладчики. Одним из методов, который чаще встречается среди разработчиков ОС, чем разработчиков приложений, является анализ дампа ядра. Посмотрите на что-то вроде mdb на солярисе, чтобы узнать, как разработчики ядра Solaris выполняют некоторую отладку. Также используются технологии отслеживания. Везде от довольно простых пакетов регистрации до более современных методов, таких как dtrace.

Также обратите внимание, что используемые методы зависят от уровня программного обеспечения. Начальная загрузка, как правило, является довольно трудным местом для того, чтобы разобраться в этом. Но после этого среда современных операционных систем все больше и больше напоминает настройку приложения, к которой вы привыкли. В конце концов, это весь код:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...