Jaka jest różnica między brakiem jądra a paniką jądra?

51

Wiem, co to jest panika jądra, ale widziałem również termin „jądro nie działa”. Zawsze myślałem, że są takie same, ale może nie. Więc:

Co to jest jądro, a czym różni się od paniki jądra?

strugee
źródło

Odpowiedzi:

45

Ups ” to problem jądra Linuksa na tyle poważny, że może wpłynąć na niezawodność systemu.

Niektóre „ups” są na tyle złe, że jądro postanawia natychmiast przestać działać, aby nie nastąpiła utrata danych lub inne uszkodzenia. Są to tak zwane paniki jądra .

Ten drugi termin jest pierwotny, sięgając do najwcześniejszych wersji przodków Unixa Linuksa, które również wypisują komunikat „paniki” na konsoli, kiedy się zdarzają. Nazywa się oryginalną funkcję jądra AT&T Unix, która obsługuje takie warunki panic(). Możesz prześledzić go z powrotem poprzez publiczne wydania kodu źródłowego AT&T Unix do jego pierwszych wydań:

  • Wersja OpenSolarispanic() została wydana przez firmę Sun w 2005 roku . Jest dość skomplikowany, a jego komentarze w nagłówku wyjaśniają wiele o tym, co dzieje się w sytuacji paniki.

  • Unix V4 realizacja panic()została wydana w 1973 roku w zasadzie tylko wypisuje stan rdzenia jądra do konsoli i zatrzymuje procesor.

  • Ta funkcja jest zasadniczo niezmieniona w Uniksie V3 według Amita Singha, który słynie dokonał analizy starszej wersji Mac OS X i wyjaśnił ją. Ten pierwszy link prowadzi do pięknego artykułu wyjaśniającego podejście macOS do implementacji panic(), które rozpoczyna się od odpowiedniej dyskusji historycznej.

  • Projekt „ unix-jun72 ” mający na celu wskrzeszenie Uniksa V1 na podstawie zeskanowanych wydruków kodu źródłowego pokazuje bardzo wczesną wersję tej funkcji PDP-11 , napisaną przed czerwcem 1972 r., Zanim Unix został w pełni przepisany w C. Do tego momentu jego implementacja jest zmniejszone do rutyny 6 instrukcji, która robi niewiele więcej niż restart PDP-11.

Warren Young
źródło
akurat zobaczyłem twoje zmiany (przypuszczalnie dlatego dostałem więcej głosów pozytywnych na to pytanie?) - naprawdę niesamowite, dziękuję za dodanie tego :)
strugee
14

Ups to konkretny błąd, który napotyka jądro. Ups zawiera następujące informacje:

  • Krótki opis
  • Ups #
  • Na którym procesorze się to wydarzyło i kod wykonywany przez procesor
  • Zarejestruj zawartość

Ups to sposób na debugowanie kodu jądra i istnieją narzędzia do pomocy w tym. Panika jądra oznacza, że ​​system nie może się zregenerować i należy go zrestartować. Jednak przy Ups, system zwykle może kontynuować. Możesz skonfigurować klogd i syslogd, aby rejestrowały komunikaty oops w plikach, a nie były ustawione na standardowe wyjście.

tdk2fe
źródło