Los principales riesgos al desarrollar módulos del núcleo son que puede colapsar su sistema mucho más fácilmente que con el código normal, y probablemente descubra que a veces crea módulos que no se pueden descargar, lo que significa que tendrá que reiniciar para volver a cargar después de arreglar lo que está mal.
Sí, una máquina virtual está bien para este tipo de desarrollo y es lo que uso cuando trabajo en módulos del kernel. La máquina virtual aísla muy bien su entorno de prueba de su sistema en ejecución.
Si va a tomar y restaurar instantáneas, debe mantener su código fuente registrado en un repositorio de control de versiones externo. la máquina virtual para que no pierda accidentalmente su código más reciente cuando descarte el estado actual de la máquina virtual.
Asumiendo que no está tratando de escribir un controlador para hardware real, esta es una excelente manera de trabajar en módulos. Puede tomar una instantánea del sistema en funcionamiento y, si explota algo, vuelva a la instantánea.
Si puede, haga un duplicado completo de la VM, en caso de que el sistema de instantáneas sea más extraño de lo que creo. :)