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. [dostęp 2013-03-27]. (ang.).


Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.