GNU/Linux >> Linux Esercitazione >  >> Linux

Linux Kernel.org fuorviante sul kernel panic

La fonte autorevole è l'implementazione nel kernel, quindi diamo prima un'occhiata.

Il panic voce in sysctl corrisponde a una variabile del kernel chiamata panic_timeout . Questo è un numero intero con segno, utilizzato per controllare il comportamento in caso di panico come segue:

  • se panic_timeout è strettamente positivo, il kernel attende dopo un panico, per panic_timeout secondi;
  • se panic_timeout è diverso da zero, il kernel si riavvia dopo un errore di panico (dopo aver atteso, se appropriato);
  • se il kernel non si è riavviato, stampa un messaggio e si ripete per sempre.

Quindi la manpage è corretta e la documentazione del kernel era incompleta; ma sysctl/kernel.rst ora documenta panic più in dettaglio. Questo problema è stato risolto nella versione 5.7-rc1 del kernel.


Allora perché così una fonte attendibile fornisce tale un'informazione fuorviante?

Innanzitutto è solo leggermente fuorviante - preferisci saltare alla tua conclusione - piuttosto che un errore. Direi che kernel.org trascura il caso speciale "0".

Non conosco i dettagli di kernel.org , ma in sostanza è un mix del kernel ufficiale Documentation/ (formattato web, raggruppato), oltre ad alcune informazioni aggiuntive. Il miglior esempio è l'elenco dei parametri di avvio, che viene "raccolto" da luoghi diversi, come dicono loro.

"kernel.org" elenca il link "Documentazione" sotto "Altre risorse". Ti porta a doc/html/latest/ . C'è anche un miscuglio di link sotto /doc .

Proprio all'inizio la documentazione (in formato sfinge) dice:

La documentazione del kernel, come il kernel stesso, è un work in progress; questo è particolarmente vero mentre lavoriamo per integrare i nostri numerosi documenti sparsi in un insieme coerente. Tieni presente che i miglioramenti alla documentazione sono ben accetti;...

Il man 5 proc fa parte di man-pages progetto (o pacchetto), e c'è questo ragazzo con il libro-per-stordire-un-bue che lo sta mantenendo. Queste pagine hanno tutte "COLOPHON" come sottotitolo (sezione) alla fine. Sono anche eterogenei, alcuni appena raccolti (tutte le pagine POSIX "1p"), e alcuni scritti per colmare le lacune.

Su man7.org vedi direttamente l'opera di Mr. Kerrisk - penso che faccia un buon lavoro, vendendo il suo libro ma mantenendo una raccolta di pagine man open source.

In questo caso, è più preciso. Entrambi sembrano correlati, ovviamente ("Quando tu...device driver... 60").

noi lavorare per integrare il nostro molti documenti sparsi in un insieme coerente.

Questo ha senso solo a metà. I cui documenti sono stati sparsi , e da chi?

Il mio pseudocodice va così:

if timeout > 0   then loop for 'timeout' seconds
if timeout != 0  then reboot
loop for ever

Il che significa che un valore negativo è il riavvio immediato e uno positivo ha entrambi i se veri. E zero porta direttamente al ciclo finale.


Linux
  1. 30 cose che non sapevi del kernel Linux

  2. Linux – Kernel:supporto per gli spazi dei nomi?

  3. Linux:un kernel contaminato in Linux?

  4. Linux – I diversi kernel Linux/unix sono intercambiabili?

  5. Come leggere, comprendere, analizzare ed eseguire il debug di un kernel panic di Linux?

Comando Sysctl in Linux

30 fatti sorprendenti su Linux che dovresti sapere

Linux è un sistema operativo o un kernel?

Kernel Linux vs. Kernel Mac

Kernel Linux e le sue funzioni

Cosa fare in caso di panico del kernel Linux