Le script BASH et le Dockerfile sont utilisés pour créer un environnement minimaliste avec Busybox et un initramfs personnalisé pour les besoins du cours de l'École 2600 : "Linux Kernel Programming I - Workshop".
Les étapes suivantes expliquent en détail comment le système est construit.
Une fois que le script BASH a été exécuté avec succès pour créer l'initramfs et configurer le disque image, vous pouvez lancer Qemu avec le disque image pour tester votre environnement minimaliste. Assurez-vous de suivre les étapes du sujet du cours pour configurer Qemu et le système NFS si nécessaire.
N'oubliez pas de personnaliser le script et le Dockerfile en fonction de vos besoins spécifiques et de votre configuration.
chmod +x ./build
sudo ./build
## Utilisation
chmod +x ./build
sudo ./build
Le script BASH est utilisé pour préparer l'initramfs et la configuration du disque image. Voici un aperçu des principales étapes effectuées par le script :
- Vérification des privilèges root.
- Suppression des répertoires et fichiers existants s'ils sont présents.
- Vérification et suppression des périphériques loopback existants.
- Configuration de certaines variables d'environnement.
- Clonage du référentiel Busybox et construction de Busybox.
- Création d'un répertoire
my_init_loop
et d'un programme Cmain.c
. - Création de la structure de répertoires pour l'initramfs.
- Copie des fichiers de Busybox dans l'initramfs.
- Compilation et ajout du programme
my_init_loop
dans l'initramfs. - Copie des bibliothèques nécessaires dans l'initramfs.
- Création du script
init
pour l'initramfs. - Création d'une image CPIO gzippée de l'initramfs.
Le Dockerfile est utilisé pour configurer un système minimaliste Alpine Linux qui sera inclus dans l'initramfs. Voici un aperçu des principales étapes effectuées par le Dockerfile :
- Utilisation d'une image Alpine Linux de base.
- Installation des packages nécessaires tels qu'OpenRC, util-linux, build-base, Vim, etc.
- Configuration de l'accès au port série via QEmu.
- Définition d'un mot de passe pour l'utilisateur root.
- Configuration des systèmes de fichiers pseudo.
- Copie des fichiers de configuration de Docker dans le répertoire monté du disque image.
- Ajouter la possibilité de créer différentes images, telles qu'Ubuntu, Debian, etc.
- Mettre en place un système de génération d'ID aléatoires avec persistance pour supprimer correctement les disques lorsque plusieurs instances QEMU sont créées.
- Autres améliorations et fonctionnalités à venir...