web-dev-qa-db-ja.com

Linuxモジュールの開発/テストは仮想マシンを使用して安全ですか?

私はオペレーティングシステムのクラスにいます。次は、カーネルコードを変更するいくつかの作業を行う必要があります。不正なコードを書いて、すべきでない場所に上書きする可能性があるため、テストには個人用のマシンを使用しないことをお勧めします(これはインストールすることを意味します)。安全のために、ラボのマシンにアクセスできます。

VMを使用してテストする場合、安全でない可能性のあるコードからホストシステムを保護できますか?学校のシステムにこだわる必要がないので、スナップショットが役に立ちます。

それでもリスクが高い場合、安全にテストするために何を検討する必要があるかについての提案はありますか?

最初はlinuxmintのようなものを使用します。現在のプロジェクトの内容を知りたい場合: http://www.cs.fsu.edu/~cop4610t/assignments/project2/writeup/specification.pdf

18
entimaniac

カーネルモジュールを開発する主なリスクは、通常のコードを使用するよりもはるかに簡単にシステムをクラッシュさせる可能性があることです。おそらく、アンロードできないモジュールを作成することがあります。つまり、再ロードするには再起動する必要があります。何が悪いのか修正した後.

はい、a VMはこの種の開発には問題なく、カーネルモジュールで作業しているときに使用します。VMはテスト環境を適切に分離します実行中のシステムから。

スナップショットを取得して復元する場合は、ソースコードをバージョン管理リポジトリにチェックインしたままにしてください外部 VMなので、誤って失うことはありませんVMの現在の状態を破棄するときの最新のコード。

28
user4443

実際のハードウェア用のドライバーを作成しようとしていないとすると、これはモジュールで作業するのに最適な方法です。稼働中のシステムのスナップショットを作成できます。何か問題が発生した場合は、スナップショットに戻ってください。

可能であれば、スナップショットシステムが思ったより変な場合に備えて、VMの完全な複製を作成します。 :)

14
Hack Saw