Was ist der Unterschied zwischen einem Kernel-Hoppla und einer Kernel-Panik?

51

Ich weiß, was eine Kernel-Panik ist, aber ich habe auch den Begriff "Kernel-Panik" gesehen. Ich hatte immer gedacht, dass sie gleich sind, aber vielleicht auch nicht. Damit:

Was ist ein Kernel, und wie unterscheidet er sich von einer Kernel-Panik?

strugee
quelle

Antworten:

45

Ein " oops " ist ein Linux-Kernel-Problem, das die Systemzuverlässigkeit beeinträchtigen kann.

Einige "Hoppla" -Es sind so schlimm, dass der Kernel beschließt, die Ausführung sofort einzustellen, damit es nicht zu Datenverlust oder anderen Schäden kommt. Diese werden als Kernel-Panics bezeichnet .

Der letztgenannte Begriff ist vorrangig und geht auf die allerersten Versionen der Linux-Vorfahren zurück, die auch eine "Panik" -Meldung auf der Konsole ausgeben, wenn sie auftreten. Die ursprüngliche AT & T-Unix-Kernelfunktion, die solche Bedingungen verarbeitet, wird aufgerufen panic(). Sie können es durch die Veröffentlichungen des öffentlichen Quellcodes von AT & T Unix bis zu den ersten Veröffentlichungen zurückverfolgen:

  • Die OpenSolaris-Version vonpanic() wurde 2005 von Sun veröffentlicht . Es ist ziemlich aufwändig und seine Kopfbemerkungen erklären viel darüber, was in einer Paniksituation passiert.

  • Die Unix V4- Implementierung von panic()wurde 1973 veröffentlicht. Sie gibt im Grunde nur den Kernzustand des Kernels auf die Konsole aus und stoppt den Prozessor.

  • Diese Funktion ist im wesentlichen unverändert in Unix V3 nach Amit Singh, der bekanntlich eine ältere Version von Mac OS X seziert und erklärt sie. Dieser erste Link führt Sie zu einem schönen Artikel, der den Ansatz von macOS bei der Implementierung von erklärt panic()und mit einer relevanten historischen Diskussion beginnt.

  • Das " unix-jun72 " -Projekt zur Wiederherstellung von Unix V1 aus gescannten Quellcode-Ausdrucken zeigt eine sehr frühe PDP-11-Assembly-Version dieser Funktion, die vor Juni 1972 geschrieben wurde, bevor Unix vollständig in C umgeschrieben wurde Es wurde auf eine Routine mit 6 Befehlen reduziert, die nur einen Neustart des PDP-11 ermöglicht.

Warren Young
quelle
Ich habe gerade deine Änderungen gesehen (vermutlich habe ich deshalb noch mehr Stimmen für die Frage erhalten?) - wirklich großartig, danke, dass
du das
14

Ein oops ist ein spezifischer Fehler, auf den der Kernel stößt. Ein Hoppla enthält die folgenden Informationen:

  • Kurze Beschreibung
  • Hoppla #
  • Auf welcher CPU es geschah und welchen Code die CPU ausführte
  • Registrieren Sie Inhalte

Ups, es gibt eine Möglichkeit, Kernel-Code zu debuggen, und es gibt Hilfsprogramme, die dabei helfen. Eine Kernel-Panik bedeutet, dass das System nicht wiederhergestellt werden kann und neu gestartet werden muss. Mit einem Hoppla kann das System jedoch normalerweise fortgesetzt werden. Sie können klogd und syslogd so konfigurieren, dass oops-Nachrichten in Dateien protokolliert werden, anstatt std-out.

tdk2fe
quelle