web-dev-qa-db-ja.com

カーネルモジュールの障害は必然的にシステムクラッシュを引き起こしますか?

または、コードがカーネルのモノリシック部分にないため、障害を克服することは可能ですか?

ここ から克服することが可能です:

また、モジュールの実験、開発、およびテストをどこで行うかについても考慮する必要があります。サンプルモジュールを安全かつ正確にするために最善を尽くしましたが、バグの可能性は常に存在します。カーネルコードの障害は、ユーザープロセス、場合によってはシステム全体の停止を引き起こす可能性があります。通常、ディスクの破損など、より深刻な問題は発生しません。それでも、失うわけにはいかないデータが含まれておらず、重要なサービスを実行していないシステムでカーネルの実験を行うことをお勧めします。カーネルハッカーは通常、新しいコードをテストする目的で「犠牲」システムを維持します。

1
vfbsilva

カーネルモジュールの障害は、モジュールがプロセスコンテキストで実行されている場合(たとえば、システムコールが原因)にプロセスをダウンさせる可能性があり、モジュールが割り込みコンテキストで実行されている場合はシステムをダウンさせる可能性があります。モジュールの登録/登録解除中に障害が発生すると、insmod/modprobeプロセスがハングする可能性があります。もちろん、モジュールをアンロードすることはできません。無限ループは、コア/ CPUをフルスロットルで実行したままにし、他のプロセスが使用できない場合があります。

1
ninjalj

カーネルモジュールでBUG()またはBUG_ON(condition)を呼び出すと、システムがクラッシュする可能性があります。

1
Edward Shen