Kernel panic

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

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ę pomiędzy jego poprzednikiem, czyli Multicsem. 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[edytuj | edytuj kod]

Ekran Kernel Panic w Ubuntu 13.04 (Linux 3.8) uruchomionym na VirtualBox.
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 zapewniamy wpisując "1" komendą:

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

Uwaga: wpisu należy dokonać 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.

Kernel panic w OS X

Mac OS X[edytuj | edytuj kod]

W systemie OS X 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[edytuj | edytuj kod]

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[edytuj | edytuj kod]

"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].
Wikimedia Commons