Quelle est la différence entre un noyau oops et une panique du noyau?


51

Je sais ce qu’est une panique du noyau, mais j’ai aussi vu le terme «noyau oops». J'avais toujours pensé qu'ils étaient identiques, mais peut-être pas. Alors:

Qu'est-ce qu'un noyau oups, et en quoi est-il différent d'un noyau panique?

Réponses:


45

Un " oops " est un problème de noyau Linux suffisamment grave pour affecter la fiabilité du système.

Certains "oops" sont suffisamment mauvais pour que le noyau décide de cesser de fonctionner immédiatement, sous peine de perdre des données ou d’autres dommages. Celles-ci sont appelées panics du noyau .

Ce dernier terme est primordial, remontant aux toutes premières versions des ancêtres Unix de Linux, qui affichent également un message "de panique" sur la console quand ils se produisent. La fonction de noyau AT & T Unix d'origine qui gère de telles conditions est appelée panic(). Vous pouvez le retrouver dans les toutes premières versions du code source public d’AT & T Unix:

  • La version OpenSolaris de apanic() été publiée par Sun en 2005 . Il est assez élaboré et ses commentaires en-tête expliquent beaucoup de choses sur ce qui se passe dans une situation de panique.

  • L’ implémentation Unix V4 de a panic()été publiée en 1973. En gros, elle affiche simplement l’état de base du noyau sur la console et arrête le processeur.

  • Cette fonction est sensiblement inchangée sous Unix V3, selon Amit Singh, qui a notamment disséqué une ancienne version de Mac OS X et l'a expliqué. Ce premier lien vous conduit à un bel article expliquant l’approche de macOS en matière de mise en œuvre panic(), qui commence par une discussion historique pertinente.

  • Le projet " unix-jun72 " visant à ressusciter Unix V1 à partir d'imprimés scannés en code source montre une version très ancienne d' assemblage du PDP-11 de cette fonction, écrite peu avant juin 1972, avant qu'Unix soit complètement réécrite en C. réduit à une routine de 6 instructions qui ne fait que redémarrer le PDP-11.


viens de voir vos modifications (je suppose que c’est la raison pour laquelle j’ai eu quelques avis positifs en plus sur la question?) - vraiment génial, merci d’avoir ajouté à cela :)
dimanche

14

Un oops est une erreur spécifique rencontrée par le noyau. Un Oops contient les informations suivantes:

  • Brève description
  • Oops #
  • Quel processeur il est arrivé, et le code que le processeur exécutait
  • Enregistrer le contenu

Oops est un moyen de déboguer le code du noyau, et il existe des utilitaires pour vous aider. Une panique du noyau signifie que le système ne peut pas récupérer et doit être redémarré. Cependant, avec un Oups, le système peut généralement continuer. Vous pouvez configurer klogd et syslogd pour consigner les messages oops dans des fichiers plutôt que pour les sorties standard.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.