カーネルOOPSとカーネルパニックの違いは何ですか?


51

カーネルパニックとは何かを知っていますが、「カーネルオープ」という用語も見ました。いつも同じだと思っていましたが、違うかもしれません。そう:

カーネルOOPSとは何ですか?また、カーネルパニックとはどう違いますか?

回答:


45

おっと」は、システムの信頼性に影響を与えるほどひどいLinuxカーネルの問題です。

一部の「おっと」は、データの損失やその他の損傷がないように、カーネルがすぐに実行を停止することを決定するほど悪いです。これらはカーネルパニックと呼ばれます

後者の用語は原始的であり、LinuxのUnixの先駆者の非常に初期のバージョンに遡り、発生時にコンソールに「パニック」メッセージを出力します。このような状態を処理する元のAT&T Unixカーネル関数はと呼ばれpanic()ます。AT&T Unixの公開ソースコードリリースから最初のリリースまで遡ることができます。

  • OpenSolarisのバージョンは、panic() Sunがリリースされた2005年。それはかなり精巧であり、そのヘッダーのコメントはパニック状態で何が起こるかについて多くを説明しています。

  • UnixのV4のの実装では、panic()それは基本的には、コンソールへのカーネルのコア状態を印刷し、プロセッサを停止して1973年にリリースされました。

  • この関数は、UnixのV3に実質的に変わらないアミット・シン、によると有名なのMac OS Xの古いバージョンを解剖し、それを説明しました。最初のリンクから、macOSの実装へのアプローチを説明する素敵な記事にアクセスできますpanic()。これは、関連する歴史的な議論から始まります。

  • スキャンされたソースコードの印刷物からUnix V1を復活させる「unix-jun72」プロジェクトは、この関数の非常に初期のPDP-11アセンブリバージョンを示しています。 PDP-11を再起動する以上のことはほとんど行わない、6命令のルーチンに削られました。


たまたまあなたの編集を見ただけです(たぶんそれで質問にもう少し賛成票をもらったのでしょうか?)-本当に素晴らしい、これに追加してくれてありがとう:)
strugee

14

oopsは、カーネルが遭遇する特定のエラーです。Oopsには次の情報が含まれています。

  • 簡単な説明
  • おっと #
  • 発生したCPUとCPUが実行していたコード
  • 登録内容

おっと、カーネルコードをデバッグする方法であり、それを支援するユーティリティがあります。カーネルパニックは、システムが回復できず、再起動する必要があることを意味します。ただし、エラーが発生した場合、システムは通常続行できます。std outではなく、oopsメッセージをファイルに記録するようにklogdとsyslogdを構成できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.