Les principaux risques liés au développement de modules du noyau sont que vous pouvez planter votre système beaucoup plus facilement qu'avec du code normal, et vous constaterez probablement que vous créez parfois des modules qui ne peuvent pas être déchargés, ce qui signifie que vous devrez redémarrer pour recharger après avoir corrigé ce qui ne va pas.
Oui, une machine virtuelle convient à ce type de développement et c'est ce que j'utilise lorsque je travaille sur des modules du noyau. La VM isole parfaitement votre environnement de test de votre système en cours d'exécution.
Si vous souhaitez prendre et restaurer des instantanés, vous devez conserver votre code source archivé dans un référentiel de contrôle de version extérieur la VM afin de ne pas perdre accidentellement votre dernier code lorsque vous supprimez l'état actuel de la VM.
En supposant que vous n'essayez pas d'écrire un pilote pour du matériel réel, c'est une excellente façon de travailler sur des modules. Vous pouvez prendre un instantané du système de travail, et si vous faites exploser quelque chose, revenez simplement à l'instantané.
Si vous le pouvez, faites une copie complète de la machine virtuelle, juste au cas où le système d'instantané serait plus étrange que je ne le pense. :)