Kernel panic

Ekran Kernel Panic w Ubuntu 13.04 (Linux 3.8) uruchomionym na VirtualBox.

Kernel panic – nazwa komunikatu wyświetlanego przez system operacyjny po wykryciu wewnętrznego błędu jądra systemu, którego sam nie jest w stanie obsłużyć. Często komunikat ten dostarcza również niezbędnych do odkrycia przyczyny błędu informacji lub danych potrzebnych do debugowania przez programistów pracujących nad systemem.

Większość błędów jest efektem nieobsługiwanych w kodzie jądra wyjątków procesora, takich jak np. odwołania do nieprawidłowych adresów w pamięci. Istnieje jednak możliwość wywołania tego błędu na żądanie za pomocą funkcji panic zdefiniowanej w pliku nagłówkowym sys/system.h.

Komunikat kernel panic powstał we wczesnych wersjach systemu Unix i stanowił dużą filozoficzną różnicę w stosunku do jego poprzednika, czyli Multicsa. Programista Multiksa, Tom van Vleck, wspomina dyskusję na ten temat z programistą Uniksa Dennisem Ritchie:

Napomknąłem Dennisowi, że przynajmniej połowa kodu, który pisałem w Multiksie, była kodem naprawiającym błędy. Powiedział wtedy: „Daliśmy sobie z tym spokój. Jeśli wystąpi błąd, to mamy procedurę nazwaną panic i jeżeli jest wywoływana, komputer się zawiesza, a ty wrzeszczysz na cały pokój «Hej, zresetuj go»”[1].

Wystąpienie błędu kernel panic powoduje zawieszenie albo przeładowanie komputera. Jest to konieczne, aby chronić sprzęt przed uszkodzeniem. Wystąpienie poważnego błędu powoduje kompletną destabilizację systemu – jego dalsze działanie mogłoby spowodować np. wyczyszczenie twardych dysków, przegrzanie podzespołów (ponieważ zarządzanie energią nie działa) itp.

Linux

Kernel panic w Linuksie 2.6

W Linuksie, po kernel panic system czeka na reakcję użytkownika liczbę sekund zapisaną w wirtualnym pliku: /proc/sys/kernel/panic, po czym przeładowuje system.

Domyślną wartością jest „0” oznaczające nieskończone czekanie na reakcję operatora. Dla komputerów bez stałej obsługi, np. serwerów, oznacza to zawieszenie systemu. Automatyczny restart zapewnia się wpisując „1” komendą:

echo "1" > /proc/sys/kernel/panic

Uwaga: wpisu należy dokonywać automatycznie po każdym restarcie systemu, np. przez dopisanie powyższej komendy do zbioru /etc/rc.d/rc.local albo dodając wiersz:

kernel.panic = 1

do pliku /etc/sysctl.conf.

macOS

Kernel panic w macOS

W systemie macOS kernel panic objawia się za pomocą szarego, przezroczystego kwadratu z informacją o wymaganym restarcie komputera w pięciu językach. System się w tym momencie blokuje i nie nadaje się do dalszej pracy.

Inne użycia nazwy

Kernel Panic jest także nazwą komiksu internetowego tworzonego przez Christophera B. Wrighta. Komiks opowiada o grupie administratorów systemów Unix i Linux.

Inne systemy operacyjne

Kernel panic jest nazwą typową dla systemów uniksowych, inne systemy operacyjne mają własne nazwy dla tego typu komunikatów o błędach:

Przypisy

  1. Unix and Multics (ang.). [dostęp 2013-03-27].

Media użyte na tej stronie

2007-09-20 Linux 2.6 Kernel Panic.png
Autor: Gophi, Licencja: GPL
Linux failing to boot...
Panic10.6.png
Autor: Apple Inc., Licencja: APSL
This is the Kernel Panic in Mac OS X 10.6.
Ubuntu 13.04 VirtualBox Kernel Panic.png
Autor: Gdominik100, Licencja: CC0
Ekran Kernel Panic w Ubuntu 13.04 (Linux 3.8) uruchomionym na VirtualBox.
MacOS wordmark.svg
Wordmark of Apple's macOS operating system