Добавление синего экрана смерти в ОС, отличные от Windows

Я собираюсь заняться разработкой ядра операционной системы, прикинул и читал книги об операционных системах (Танненбаум ), а также изучение того, как BSD и Linux решили эту проблему, но я все еще застрял на нескольких концепциях.

  1. Если бы я хотел имитировать синий экран смерти Windows в операционной системе, я бы просто поместил эту логику в panic метод ядра?

  2. Есть ли способы улучшить то, как Windows в настоящее время выполняет эту функцию?


person McGovernTheory    schedule 19.05.2009    source источник


Ответы (3)


Я не совсем уверен, где искать исходный код, но вы, возможно, захотите изучить ReactOS, клон Windows с открытым исходным кодом, в котором уже есть BSOD.

person hannson    schedule 19.05.2009

BSD справлялись с этим намного лучше, чем Windows с помощью DDB :)
Вот еще одна ссылка на Отладка ядра FreeBSD документы

person Nikolai Fetissov    schedule 20.05.2009

  1. Вы можете эмулировать функцию проверки ошибок Windows где угодно. Большинство систем Linux помещают его в XScreenSaver.

    Однако я сомневаюсь, что это именно то, о чем вы действительно спрашиваете. Вы спрашиваете, как создать файл дампа?

  2. Чтобы улучшить проверку ошибок Windows, разработчики драйверов Windows могут использовать KeRegisterBugCheckReasonCallback (), чтобы записывать дополнительную информацию о состоянии своих драйверов в сгенерированный минидамп. Это потенциально может повысить эффективность посмертной отладки, когда не включены полные дампы ядра / памяти.

person bk1e    schedule 19.05.2009
comment
Я полагаю, он спрашивает, где в ядре он должен разместить код, чтобы вызвать панику (BSoD). Опять же, я могу ошибаться - person Crippledsmurf; 11.06.2009