Ответы:
« Упс » - это проблема ядра 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.
Упс - это конкретная ошибка, с которой сталкивается ядро. Oops содержит следующую информацию:
Упс - это способ отладки кода ядра, и для этого есть утилиты. Паника ядра означает, что система не может восстановиться и должна быть перезапущена. Однако, с Oops, система обычно может продолжаться. Вы можете настроить klogd и syslogd для записи сообщений о сообщениях в файлы, а не в std out.