Kernel panic
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
![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/50/2007-09-20_Linux_2.6_Kernel_Panic.png/250px-2007-09-20_Linux_2.6_Kernel_Panic.png)
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
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Panic10.6.png/250px-Panic10.6.png)
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:
- Black Screen of Death – OS/2, Windows 3.x i Windows 11;
- Blue Screen of Death – 32- i 64-bitowe wersje systemów Windows (NT, 9x, 2000, 2003, XP, 7, 10);
- Sad Mac, Bomb – starsze systemy Macintosh;
- Guru Meditation – AmigaOS;
- Bombs – Atari ST.
Przypisy
- ↑ Unix and Multics (ang.). [dostęp 2013-03-27].
Media użyte na tej stronie
Autor: Gdominik100, Licencja: CC0
Ekran Kernel Panic w Ubuntu 13.04 (Linux 3.8) uruchomionym na VirtualBox.