Skip to content

Testing

HyperLan edited this page Jun 11, 2022 · 4 revisions

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.

Principe de la vm de test

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.

Compilation du kernel

Étapes de compilation

  1. Un wget télécharge à partir des archives linux officielles la version désirée et l'archive est décompressée
  2. Les commandes make defconfig, make kvm_guest.config et make olddefconfig mettent en place la configuration et les options de compilation supplémentaires sont rajoutés dans le fichier .config
  3. La compilation est lancée avec le makefile dans l'archive.

Création de l'image

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.

Clone this wiki locally