-
Notifications
You must be signed in to change notification settings - Fork 1
Testing
Des sécurités et des outils simples d'utilisation ont été mis en place afin de simplifier le développement du module kernel.
Un module kernel a accès à plus de ressources systémes ainsi que plus de pouvoirs. Les sécurités mises en place par le kernel ne s'appliquent tout simplement pas lors de l'exécution d'un insmod. C'est pour éviter la corruption de l'état du systéme, de l'ensemble des fichiers sur une machine et l'arrivée intempestive de kernel panics destructeurs que nous avons eu l'idée de créer une machine virtuelle dans laquelle tester notre module kernel.
Nous avons eu des difficultés à le mettre en place et il n'est toujours pas parfait, mais devrait suffire pour tout développement futur de module kernel. Avec une recompilation complête du systéme linux et l'activation de fonctions de debugging comme KASAN.
- Un wget télécharge à partir des archives linux officielles la version désirée et l'archive est décompressée
- Les commandes
make defconfig
,make kvm_guest.config
etmake olddefconfig
mettent en place la configuration et les options de compilation supplémentaires sont rajoutés dans le fichier .config - La compilation est lancée avec le makefile dans l'archive.
create-image.sh contiens toutes les informations utiles mais pour simplifier le script utilise debootstrap pour paramétrer l'image, l'accès ssh est préparé. sudo mkfs.ext4
est exécuté et crée le fichier image avant que l'image soit mount
et que les fichiers soient copiés à l'emplacement voulu. La partition précédemment montée peut maintenant être unmount
pour libérer l'espace.
L'image est "minimale" afin de pouvoir être chargée rapidement. Des packages comme gcc, vim ou git sont installés dedans afin de pouvoir faire toutes les opérations voulues.