Risposte:
Un " oops " è un problema del kernel Linux abbastanza grave da influire sull'affidabilità del sistema.
Alcuni "oops" sono abbastanza gravi che il kernel decide di smettere immediatamente di funzionare, per evitare la perdita di dati o altri danni. Questi sono chiamati panici del kernel .
Quest'ultimo termine è primordiale, risalendo alle primissime versioni dei predecessori Unix di Linux, che stampano anche un messaggio di "panico" sulla console quando accadono. Viene chiamata la funzione originale del kernel Unix AT&T che gestisce tali condizioni panic()
. Puoi rintracciarlo attraverso le versioni pubbliche del codice sorgente di AT&T Unix fino alle sue prime versioni:
La versione OpenSolaris di èpanic()
stata rilasciata da Sun nel 2005 . È abbastanza elaborato e i suoi commenti di intestazione spiegano molto su ciò che accade in una situazione di panico.
L' implementazione di Unix V4 di è panic()
stata rilasciata nel 1973. Fondamentalmente stampa semplicemente lo stato principale del kernel sulla console e arresta il processore.
Tale funzione è sostanzialmente invariato in Unix V3 secondo l'Amit Singh, che notoriamente sezionato una versione precedente di Mac OS X e spiegato. Questo primo link ti porta a un delizioso articolo che spiega l'approccio di macOS all'implementazione di panic()
, che inizia con una discussione storica pertinente.
Il progetto " unix-jun72 " per resuscitare Unix V1 dalle stampe del codice sorgente scansionate mostra una versione dell'assembly PDP-11 molto precoce di questa funzione, scritta qualche tempo prima del giugno 1972, prima che Unix fosse completamente riscritto in C. A questo punto, la sua implementazione è ridotto a una routine di 6 istruzioni che fa poco più che riavviare il PDP-11.
Un oops è un errore specifico riscontrato dal kernel. Un Oops contiene le seguenti informazioni:
Oops è un modo per eseguire il debug del codice del kernel e ci sono utilità per aiutarlo. Un panico del kernel significa che il sistema non può essere ripristinato e deve essere riavviato. Tuttavia, con un Oops, il sistema può di solito continuare. Puoi configurare klogd e syslogd per registrare i messaggi oops in file, piuttosto che std.