Fleur De Lys
Shell

Fleur De Lys

« Si vous souhaitez faire une tarte aux pommes à partir de zéro, commencez par inventer l'univers. » -- Carl Sagan

Structure du disque

L'image utilise une table de partition GPT :

Partition Taille Système de fichiers Étiquette
p1 10 Go F2FS Fleur_de_Lys_Root
p2 20 Go bcachefs Fleur_de_Lys_Sources
p3 10 Go bcachefs Fleur_de_Lys_Home

Prérequis

Un hôte Linux disposant des éléments suivants :

  • losetup, mount, chroot (util-linux)
  • Prise en charge des systèmes de fichiers F2FS et bcachefs (f2fs-tools, bcachefs-tools)
  • Chaîne d'outils de développement standard (gcc, g++, make, binutils, etc.)

Exécutez bash tests/version-check.sh pour vérifier que votre hôte dispose des outils requis.

Utilisation

Toutes les commandes nécessitent des privilèges root.

sudo make mount # Attache l'image et monte les partitions dans mnt_image/
sudo make run # Monte + lie les systèmes de fichiers virtuels + entre dans le shell chroot
sudo make umount # Démonte tout et détache le périphérique loop

Création de l'image à partir de zéro

Pour créer une nouvelle image disque vierge (20 Go) avec la table de partition et les systèmes de fichiers formatés :

sudo bash scripts/build_os.sh

Structure du projet

Fleur_de_Lys.img # L'image disque
mnt_image/ # Point de montage (créé par make mount)
Makefile # Cibles de montage, d'exécution et de démontage
docker/ # Environnement de construction Docker en plusieurs étapes
  Dockerfile # Couches de construction des étapes 1 et 2
  engine/ # Scripts de construction (fleur-build.sh, etc.)
  recipes/ # Instructions de construction logicielle par étape
etc/
  os-release # Identité de la distribution
scripts/
  build_os.sh # Créer et partitionner une nouvelle image disque
  build_img.sh # Assistant de création d'image
  mount.sh # Script de montage hérité
tests/
  version-check.sh    # Vérification des exigences de la chaîne d'outils hôte

Environnement de la chaîne d'outils Docker

La chaîne d'outils et les outils système intermédiaires sont construits à l'aide d'une construction Docker en plusieurs étapes :

  • Étape 1 (toolchain-builder) : Amorçage du compilateur (gcc/clang), de binutils et de glibc.
  • Étape 2 (temp-tools-builder) : Compile tous les utilitaires cross-compilés (bash, coreutils, python, meson, ninja, etc.) dans /tools.

Pour construire l'environnement de la chaîne d'outils :

cd docker
make build