GNU/Linux >> Linux の 問題 >  >> Linux

カーネル パニックについて誤解を招く Linux Kernel.org

信頼できるソースはカーネル内の実装であるため、最初にそれを見てみましょう。

panic sysctl のエントリ panic_timeout というカーネル変数に対応 .これは符号付き整数であり、次のようにパニック時の動作を制御するために使用されます:

  • if panic_timeout 厳密に正の場合、カーネルはパニック後に panic_timeout 待機します 秒;
  • if panic_timeout ゼロ以外の場合、カーネルはパニック後に再起動します (適切な場合は待機後);
  • カーネルが再起動していない場合、メッセージが出力され、永遠にループします。

したがって、マンページは正しく、カーネル自体のドキュメントは不完全でした。しかし sysctl/kernel.rst panic を文書化するようになりました さらに詳細に。これは、カーネルのバージョン 5.7-rc1 で修正されました。


<ブロック引用>

なぜそんなのか 信頼できる情報源は そのような 誤解を招く情報?

まず、誤解を招くというよりも、誤解を招く可能性があります。結論に飛びつきます。 kernel.org は特別なケース「0」を無視していると思います。

kernel.org の詳細がわからない 、しかし本質的には公式のカーネル Documentation/ の混合です (ウェブ形式、グループ化)、およびいくつかの追加情報。最良の例は、彼らが言うように、さまざまな場所から「収集」されたブートパラメーターリストです。

「kernel.org」では、「その他のリソース」の下に「ドキュメント」リンクがリストされています。 doc/html/latest/ に移動します . /doc の下に、さまざまなリンクの袋もあります。 .

(スフィンクス形式の) ドキュメントの冒頭で、次のように書かれています:

<ブロック引用>

カーネル ドキュメントは、カーネル自体と同様、進行中です。;多くの散在するドキュメントを統合する作業を行っているため、これは特に当てはまります。 一貫した全体に。ドキュメントの改善は大歓迎です。;...

man 5 proc man-pages の一部です プロジェクト (またはパッケージ) であり、それを維持している book-to-stun-an-ox を持ったこの男がいます。これらのページはすべて末尾にサブタイトル(セクション)として「COLOPHON」があります。それらはまた異種であり、一部は収集されたばかり (すべての POSIX "1p" ページ) であり、一部はギャップを埋めるために書かれています。

ma​​n7.org で Kerrisk 氏の作品を直接見ることができます -- 私は彼が良い仕事をしていると思います。彼の本は販売していますが、オープン ソースのマニュアル ページのコレクションを維持しています。

この場合、彼はより正確です。もちろん、どちらも関連しているように見えます ("When you...device driver... 60")。

<ブロック引用>

私たち 私たちのを統合するために働きます 多くの散らばったドキュメントを一貫した全体にまとめます。

これは半分の意味しかありません。誰の書類が散らばっていた 、そして誰によって?

私の疑似コードは次のようになります:

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

つまり、負の値はすぐに再起動し、正の値は両方の ifs が true であることを意味します。そして、ゼロは最終ループに直接つながります。


Linux
  1. Linux –異なるLinux / UNIXカーネルは交換可能ですか?

  2. Linux カーネル パニックを読み取り、理解し、分析し、デバッグする方法は?

  3. パニック時にリブートするように Linux カーネルを早期に構成する方法は?

  1. Linuxカーネルについて知らなかった30のこと

  2. Linuxカーネルテストのライフサイクル

  3. 「カーネルパニック」?

  1. Linux –カーネル:名前空間のサポート?

  2. Linux –カーネルIP転送?

  3. Linux – Linuxの汚染されたカーネル?