カーネルモジュールのエラーによってシステムが確実にクラッシュしますか?

カーネルモジュールのエラーによってシステムが確実にクラッシュしますか?

それともコードがカーネルの不可欠な部分ではないので、エラーを克服することは可能ですか?

答え1

克服できるここ:

また、モジュールの実験、開発、テストをどこで実行するかを検討する必要があります。サンプルモジュールを安全かつ正確にするために最善を尽くしましたが、常にエラーが発生する可能性があります。カーネルコードのバグが原因でユーザープロセスが終了し、システム全体がシャットダウンすることがあります。通常、ディスクの破損などのより深刻な問題は発生しません。それにもかかわらず、失われてはならないデータが含まれておらず、必須サービスを実行しないシステムでカーネル実験を実行することをお勧めします。カーネルハッカーはしばしば新しいコードをテストするために「犠牲」システムを維持します。

答え2

カーネルモジュールからBUG()またはを呼び出してBUG_ON(condition)システムをクラッシュさせることができます!

答え3

カーネルモジュールの障害により、モジュールがプロセスコンテキストで実行されている場合はプロセスの終了(システムコールなど)が発生し、モジュールが割り込みコンテキストで実行されている場合はシステムシャットダウンが発生する可能性があります。モジュールの登録/登録解除中にエラーが発生すると、insmod / modprobeプロセスが中断される可能性があり、もちろんモジュールを削除できなくなります。無限ループはコア/CPUを最高速度で実行し、他のプロセスでは使用できなくなる可能性があります。

関連情報