「カーネルパニック」とは何ですか?


19

コンピュータに「カーネルパニック」が発生しているとはどういう意味ですか?

Windows BsoDと同等ですか?

また、カーネルパニックが発生した場合、ユーザーはどのような方法、ヒント、トリックを利用できますか?


3
カーネルパニックはBSODよりも優れています。なぜなら、その名前はユーザーがそれを起こしたときにすべきことを暗示しているからです。
amphetamachine

また、青色のウィンドウは情報を提供しますが、ほとんどの場合、あまり役に立ちません。
ott--

回答:


16

カーネルパニックはBSODと同じであり、レスキュー不可能なIIRCです。ただし、小さな障害はOOPSであり、カーネルのエラーを示します。

  1. パニックで新しいカーネルに切り替わるkexecを使用できます(高速リブートとして脅威にさらされる可能性があります)-おそらくシステムの意味のあるダンプを取得して問題をデバッグします
  2. panicn秒後にカーネルを再起動するパラメーターを使用できます。このような場合、フォールバックカーネルに切り替えるようにGRUBに指示できます。
  3. Magic SysRQキーを使用してスタックトレースなどを印刷します。

6
より正確なBSODは、本当に悪いエラーメッセージ画面を持つKPです。
xenoterracide

最も注目に値する魔法のSysRqはemergency sync、バッファをフラッシュすることでした(可能な場合)。
ott--

6

Linuxカーネルパニックは、通常のロジックの継続的な実行を不可能または無責任にする条件が存在するとカーネルロジックが判断したときにカーネルが実行するサブルーチン呼び出しです。

カーネルは、次の場合にパニックを呼び出すことができます。

  1. カーネルコードまたはスタックでソフトウェアエラーを検出します
  2. 強制終了可能なプロセスのないメモリ不足などの実行時条件がある場合
  3. 特権モードの実行中にCPU例外が発生すると、oops状態になります

3.Xカーネルでパニックが呼び出される条件は約950あります。パニックサブルーチンは、最初にカーネルスタックダンプとCPUレジスタをコンソールに出力します。次に、クラッシュkexecカーネルが構成されている場合、kexecカーネルを起動します。それ以外の場合、パニックルーチンはすべてのスピンロックを無効にし、緊急時の再起動を実行します。

oopsは、特権(カーネル)モードで実行中に発生するCPU例外のCPU例外ハンドラーから呼び出されるサブルーチンです。例外は、カーネルコードのエラー、ハードウェア障害、または特定の例外を引き起こす外部条件の結果として発生する可能性があります。例外のハンドラーは、CPUレジスタとモジュールリストを含むカーネルログを出力します。パニック呼び出しとは異なり、カーネルロジック自体は、CPU例外ハンドラーのコンテキスト外でoopsを呼び出すことはありません。

カーネルがkexec用に構成されている場合、oopsによりkexecカーネルがブートされます。それ以外の場合、割り込みハンドラの実行中に例外が発生すると、oopsはカーネルパニックコールになります。それ以外の場合、カーネルに「oops on oops」が設定されていると、oopsはパニックコールになります。それ以外の場合、カーネルは例外ハンドラを終了し、実行を再開します。カーネルが例外ハンドラを終了して実行を再開すると、カーネルの整合性が疑われます。

CPU例外ハンドラはアーキテクチャ固有です。それらは通常arch / * / kernel / traps.cに実装され、割り込みテーブルを設定するアーキテクチャ固有のカーネルエントリコードに設定されます。例arch/powerpc/kernel/traps.cとを参照してくださいarch/powerpc/kernel/head_fsl_booke.S

カーネルパニックとoopsの両方の条件を設定しkmsg_dumpて、クラッシュデバッグ情報をRAMまたはフラッシュメモリに保存するために使用できるルーチンを呼び出すことができます(oopsが割り込みコンテキストで発生しない限り)。この場合、「kmsg_dump」ルーチンはMTDではなくRAMに保存します。RAMに保存する場合、a)使用されるRAM領域がkexecブートまたは緊急時再起動ブート中に上書きされないことを確認し、b)kexecカーネルまたはブートローダーロジックからメモリ領域をハーベストする責任があります。


5

これは、予期しないプログラムフローの動作です(この場合、カーネルはプログラムです)。パニックプログラムが動作しなくなった場合。Windows BsoDと同等です。KPは、カーネルまたはモジュールに問題があることを意味します。カーネルが安定している場合-ドライバーを見てください。特別なものがなく、すべてのドライバーが共通している場合は、ハードウェアの問題である可能性があります。


またはカーネルがピクニックに行く..
uray

安定したカーネルであっても、常にいくつかのバグが残っています。
ott--
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.