Какая разница между ядром ой и паникой ядра?

51

Я знаю, что такое паника ядра, но я также видел термин «ядро упс». Я всегда думал, что они были одинаковыми, но, возможно, нет. Так:

Что такое ядро ​​упс, и чем оно отличается от паники ядра?

strugee
источник

Ответы:

45

« Упс » - это проблема ядра Linux, достаточно серьезная, что может повлиять на надежность системы.

Некоторые «упс» настолько плохи, что ядро ​​решает немедленно прекратить работу, чтобы не было потери данных или другого повреждения. Это называется паника ядра .

Последний термин является исконным, возвращаясь к самым ранним версиям предшественников Linux Unix, которые также выдают «паническое» сообщение на консоли, когда они происходят. Вызывается оригинальная функция ядра AT & T Unix, которая обрабатывает такие условия panic(). Вы можете проследить его через публичные выпуски исходного кода AT & T Unix до самых первых его выпусков:

  • Версия OpenSolarispanic() была выпущена Sun в 2005 году . Он довольно сложный, и его заголовочные комментарии многое объясняют о том, что происходит в ситуации паники.

  • Unix V4 реализация panic()была выпущена в 1973 году в основном только печатает ядро состояния ядра на консоль и останавливает процессор.

  • Эта функция практически не изменилась в Unix V3, согласно Амиту Сингху, который классно проанализировал более старую версию Mac OS X и объяснил это. Эта первая ссылка приводит вас к прекрасной статье, объясняющей подход macOS к реализации panic(), которая начинается с соответствующей исторической дискуссии.

  • Проект " unix-jun72 " по возрождению Unix V1 из распечатанных отсканированных исходных кодов показывает очень раннюю версию этой функции на сборке PDP-11 , написанную за некоторое время до июня 1972 года, до того, как Unix был полностью переписан на C. К этому моменту его реализация дошло до процедуры из 6 инструкций, которая делает чуть больше, чем перезапускает PDP-11.

Уоррен Янг
источник
только что увидел ваши правки (возможно, именно поэтому я получил еще несколько голосов по этому вопросу?) - действительно здорово, спасибо за добавление к этому :)
Strugee
14

Упс - это конкретная ошибка, с которой сталкивается ядро. Oops содержит следующую информацию:

  • Краткое описание
  • Упс
  • На каком процессоре это произошло, и код, который выполнял процессор
  • Зарегистрировать содержимое

Упс - это способ отладки кода ядра, и для этого есть утилиты. Паника ядра означает, что система не может восстановиться и должна быть перезапущена. Однако, с Oops, система обычно может продолжаться. Вы можете настроить klogd и syslogd для записи сообщений о сообщениях в файлы, а не в std out.

tdk2fe
источник