Kernpanik

Eine Kernpanik ist eine Handlung, die von einem Betriebssystem nach dem Ermitteln eines inneren tödlichen Fehlers genommen ist, von dem es nicht sicher genesen kann. Der Begriff ist zu Systemen von Unix und Unix-like größtenteils spezifisch; für Windows von Microsoft Betriebssysteme ist der gleichwertige Begriff "Programmfehler-Kontrolle" (oder, umgangssprachlich, "Blauer Schirm des Todes").

Die Kernroutinen, die Panik, bekannt als in AT&T-derived und BSD Unix Quellcode behandeln, werden allgemein zur Produktion eine Fehlermeldung zur Konsole entworfen, laden ein Image des Kerngedächtnisses zur Platte für das Leichenbeseitigen und dann ab entweder warten auf das System, das manuell neu zu starten ist, oder beginnen einen automatischen Neustart. Die gegebene Auskunft ist einer hoch technischen Natur und hat zum Ziel, einem Systemverwalter oder Softwareentwickler im Diagnostizieren des Problems zu helfen.

Geschichte

Der Unix Kern erhält innere Konsistenz und Laufzeitgenauigkeit mit Behauptungen als der Schuld-Entdeckungsmechanismus aufrecht. Die grundlegende Annahme ist, dass die Hardware und die Software richtig leisten sollten und ein Misserfolg einer Behauptung eine Panik, d. h. ein freiwilliger Halt zur ganzen Systemtätigkeit resultiert. Die Kernpanik wurde in einer frühen Version von Unix eingeführt und hat einen Hauptunterschied zwischen den Designphilosophien von Unix und seinem Vorgänger Multics demonstriert. Entwickler von Multics Tom van Vleck ruft eine Diskussion dieser Änderung mit dem Entwickler von Unix Dennis Ritchie zurück:

Die ursprüngliche Funktion war aus der Fünften Ausgabe UNIX zum VAX-basierten UNIX 32V und Produktion nur eine Fehlermeldung ohne andere Information im Wesentlichen unverändert, hat dann das System in eine endlose müßige Schleife fallen lassen.

Quellcode der Funktion in UNIX V6:

/ *

*, Im Falle dass Konsole, aus

ist

* enthält panicstr Argument, um zu dauern

* rufen Panik zu.

*/

Rotforelle *panicstr;

/ *

* wird Panik auf unauflösbarem genannt

* tödliche Fehler.

* synchronisiert Es, Drucke "Panik: mesg" und

* dann Schleifen.

*/

Panik (s)

Rotforelle *s;

{\

panicstr = s;

Aktualisierung ;

printf ("Panik: %s\n", s);

für

müßig ;

}\

</Quelle>

Da Unix codebase erhöht wurde, wurde die Funktion auch erhöht, um verschiedene Formen abzuladen, bei Information zur Konsole die Fehler zu beseitigen.

Ursachen

Eine Panik kann infolge eines Hardware-Misserfolgs oder eines Softwareprogrammfehlers im Betriebssystem vorkommen. In vielen Fällen ist das Betriebssystem zur fortlaufenden Operation fähig, nachdem ein Fehler vorgekommen ist. Jedoch ist das System in einem nicht stabilen Staat und anstatt Sicherheitsbruch- und Datenbestechung, der Betriebssystemhalt zu riskieren, um weiteren Schaden zu verhindern und Diagnose des Fehlers zu erleichtern.

Nach dem Wiederkompilieren eines binären Kernimages aus dem Quellcode ist eine Kernpanik während des Startens des resultierenden Kerns ein häufiges Problem, wenn der Kern nicht richtig konfiguriert, kompiliert oder installiert wurde. Erweiterungshardware oder schlecht funktionierender RAM konnten auch Quellen von tödlichen Kernfehlern während sein, springen wegen der Inkompatibilität mit dem OS oder einem fehlenden Gerät-Fahrer auf. Ein Kern kann auch mit einer panischen Nachricht sterben, wenn es unfähig ist, ein Wurzeldateisystem ausfindig zu machen. Während der Endstufen des Kerns userspace Initialisierung wird eine Panik normalerweise ausgelöst, wenn das Laichen von init scheitert, weil das System dann unbrauchbar sein würde.

Der folgende ist eine Durchführung des Kerns von Linux Endinitialisierung in:

statische noinline interne Nummer init_post (Leere)

{\

...

/ *

* versuchen Wir jeden von diesen, bis man erfolgreich ist.

*

* kann Die Bach-Schale statt init verwendet werden, wenn wir sind

* versuchend, eine wirklich gebrochene Maschine wieder zu erlangen.

*/

wenn (execute_command) {\

run_init_process (execute_command);

printk (KERN_WARNING "Gefehlt, um %s durchzuführen. Versuch"

"Verzug...\n", execute_command);

}\

run_init_process ("/sbin/init");

run_init_process ("/etc/init");

run_init_process ("/bin/init");

run_init_process ("/bin/sh");

Panik ("Kein init gefunden. Versuchen Sie, init = Auswahl zum Kern zu passieren."

"Sieh Linux Documentation/init.txt für die Leitung.");

}\

</Quelle>

Betriebsanlagenabhängige Details

Linux

Kernpanik erscheint in Linux wie andere Unix ähnliche Systeme, aber kann auch eine andere Art der Fehlerbedingung erzeugen, die als ein Kern oops bekannt ist. In diesem Fall setzt der Kern normalerweise fort, hinter Tötung des verstoßenden Prozesses herzulaufen. Da ein oops einige Subsysteme oder Mittel verursachen konnte, nicht verfügbar zu werden, können sie später zu einer vollen Kernpanik führen.

Mac OS X

Wenn eine Kernpanik in Mac OS X vorkommt, zeigt der Computer eine mehrsprachige Nachricht, die den Benutzer informiert, dass sie das System neu starten müssen. Das Format ändert sich von der Version bis Version:

  • 10.0 10.1: Der Systemdrucktext, der über den Fehler Bildschirm- und dann das System ausführlich berichtet, wird unempfänglich.
  • 10.2: Ähnlich den jetzigen Versionen der Kernpanik außer dem Text ist mehr breit, und der Hintergrund ist weiß.
  • 10.3 - 10.5: Der Hintergrund ist jetzt, aber mit denselben Sprachübersetzungen und demselben Text wie Version 10.2 schwarz.
  • 10.6 - 10.7: Der Text ist verschieden und schließt jetzt eine spanische Übersetzung ein.

In allen Versionen oben 10.2 ist der Text im überlagerten auf einem Hilfssymbol und ist nicht voller Schirm. Das Beseitigen bei Information wird in NVRAM gespart und einer Protokolldatei auf dem Neustart geschrieben. In 10.7 gibt es eine Eigenschaft, um nach einer Kernpanik automatisch wiederanzufangen.

Image:Mac OS X 10.0 10.1 Panische jpg|Mac Kern-OS X 10.0 - 10.1 Kernpanik

Image:Mac OS X 10.2 Panische jpg|Mac Kern-OS X 10.2 Kernpanik

Image:MacOSX Kernpanik png|Mac OS X 10.3 - 10.5 Kernpanik

Image:Panic10.6.png|Mac OS X 10.6 Kernpanik.

</Galerie>

Siehe auch

  • Tödlicher Systemfehler
  • Schirm des Todes

Showstopper / Lawrence Ferlinghetti
Impressum & Datenschutz