私の質問はかなり大まかですが、私はこれについて長い間疑問に思っていました.
少し背景。私はすべてのラボ コンピューターが Debian (古いバージョンと Lenny の混合) または最近では Ubuntu 10.4 LTS を実行している物理学ラボで働いています。私たちは、実験用ハードウェアや他のコンピューターとのインターフェース用に多くのカスタム ソフトウェアを作成しました。
実験のさまざまな部分を制御する多くの FPGA ボードがあり、これらは USB 経由でさまざまなコンピューターに接続されています。実験を制御するコンピューターをアップグレードした後、すべてのレーザーを実行しているコンピューターのクラッシュ/ロックアップが見られるようになりました。これは以前は完全に安定していました。
私の質問は次のとおりです: a) Python/GTK ソフトウェア gui b) USB デバイス ドライバーまたは c) 実際のデバイスが Linux カーネル (または OS の他のレベル) のせいである可能性があるため、コンピューター全体がロックする場合?
ソフトウェア/ハードウェアの実装を間違えたとしても、Linux カーネルにパニックにならないように頼むのは不公平ですか?
私自身の推測: ユーザーレベルのアプリケーションは、自分のものにしかアクセスできないため、システム全体をクラッシュさせることはできません。
どのデバイス ドライバもカーネル自体の一部になるため、カーネルをクラッシュさせることができます。私の推論は正しいですか?
おまけの質問: デバイスとカーネルを何らかの形で隔離して、ハードウェアでどんなばかげたミスを犯しても Linux が問題なく動作し続ける方法はありますか? これは 2 つの理由で非常に便利です: 1) 実行中のシステムでのデバッグはより簡単です。2) 実験の目的のためには、長いアップタイムが本当に必要であり、システムの一部だけがクラッシュすることは、システムの一部でクラッシュするよりもはるかに優れています。システムが残りに伝播します。
このテーマに関するリンクや読み物をいただければ幸いです。ありがとうございました。