カーネル モジュールを開発する主なリスクは、通常のコードよりもはるかに簡単にシステムをクラッシュさせる可能性があることです。また、アンロードできないモジュールを作成することがあります。つまり、再ロードするには再起動する必要があります。何が問題なのかを修正した後、それらを修正してください。
はい、VM はこの種の開発に適しています。私がカーネル モジュールの作業をしているときに VM を使用しています。 VM は、実行中のシステムからテスト環境を適切に分離します。
スナップショットを取得して復元する場合は、ソース コードを外部のバージョン管理リポジトリにチェックインしておく必要があります VM の現在の状態を破棄するときに、誤って最新のコードを失うことがないようにします。
実際のハードウェア用のドライバーを作成しようとしていないと仮定すると、これはモジュールで作業するための優れた方法です。稼働中のシステムのスナップショットを作成できます。何かを爆破した場合は、スナップショットに戻るだけです。
可能であれば、VM の完全な複製を作成してください。念のため、スナップショット システムが私が思っているよりも奇妙である場合に備えてください。 :)