Kernel panic

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania
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[edytuj | edytuj kod]

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.

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

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