Che cosa significa quando il tuo computer ha un "panico nel kernel" ?
Inoltre, quali metodi, suggerimenti, trucchi sono disponibili per l'utente quando si verifica un panico nel kernel ?
Che cosa significa quando il tuo computer ha un "panico nel kernel" ?
Inoltre, quali metodi, suggerimenti, trucchi sono disponibili per l'utente quando si verifica un panico nel kernel ?
Risposte:
Il panico del kernel è lo stesso di BSOD ed è IIRC non salvabile. Comunque un fallimento minore è OOPS che denota qualche errore nel kernel.
panic
parametro che riavvia il kernel dopo n secondi. In questo caso è possibile indicare a GRUB di passare al kernel di fallbackemergency sync
di svuotare i buffer (quando è ancora possibile).
Un panico del kernel Linux è una chiamata di subroutine che il kernel esegue quando la logica del kernel determina l'esistenza di una condizione che rende impossibile o irresponsabile l'esecuzione continua della logica normale.
Il kernel può chiamare il panico quando:
Ci sono circa 950 condizioni distinte in cui viene chiamato un panico nei kernel 3.X. La subroutine di panico prima stampa il dump dello stack del kernel e i registri della CPU sulla console. Quindi, se è stato configurato un kernel kexec crash, avvia il kernel kexec. Altrimenti la routine di panico sballa tutti gli spinlock ed esegue un riavvio di emergenza.
Un oops è una subroutine chiamata da un gestore di eccezioni CPU per un'eccezione CPU che si verifica durante l'esecuzione in modalità privilegiata (ovvero kernel). L'eccezione può verificarsi a causa di un errore nel codice del kernel o a causa di un errore hardware o come risultato di una condizione esterna che causa un'eccezione specifica. Il gestore per l'eccezione stampa un registro del kernel con i registri della CPU e l'elenco dei moduli. A differenza delle chiamate di panico, la logica del kernel non chiama mai un oops al di fuori del contesto dei gestori di eccezioni della CPU.
Se il kernel è configurato per kexec, un oops comporterà l'avvio del kernel kexec. Altrimenti, se l'eccezione si verifica durante l'esecuzione di un gestore di interrupt, l'oops si traduce in una chiamata di panico del kernel. Altrimenti, se il kernel è configurato con "panic on oops", allora oops genererà una chiamata di panico. Altrimenti il kernel esce dal gestore delle eccezioni e riprende l'esecuzione. Quando il kernel esce dal gestore delle eccezioni e riprende l'esecuzione, l'integrità del kernel è sospetta.
I gestori di eccezioni CPU sono specifici dell'architettura. Di solito sono implementati in arch / * / kernel / traps.c e impostati nel codice di entrata del kernel specifico dell'architettura che imposta la tabella di interrupt. Vedi per esempio arch/powerpc/kernel/traps.c
e arch/powerpc/kernel/head_fsl_booke.S
.
Entrambe le condizioni di panico del kernel e oops possono essere configurate per richiamare una kmsg_dump
routine che è possibile utilizzare per salvare le informazioni di debug degli arresti anomali nella RAM o nella memoria flash a meno che gli oops si siano verificati nel contesto di interruzione, nel qual caso la routine "kmsg_dump" può essere utilizzata solo per salva su RAM, non su MTD. Quando si salva su RAM, è responsabilità dell'utente a) assicurarsi che l'area RAM utilizzata non venga sovrascritta durante l'avvio di kexec o l'avvio di riavvio di emergenza eb) per raccogliere l'area di memoria dal kernel di Kexec o dalla logica del caricatore di avvio.
È il comportamento inaspettato del flusso di programma (in questo caso il kernel è un programma). In caso di panico il programma smette di funzionare. È uguale al BsoD di Windows. KP significa qualcosa di sbagliato nel kernel o nei moduli. Se è un kernel stabile, guarda i driver. Se nulla di speciale e tutti i driver sono comuni potrebbe essere un problema hardware.