Fleur De Lys
Shell

Fleur De Lys

"Se vuoi fare una torta di mele da zero, devi prima inventare l'universo." -- Carl Sagan

Schema del Disco

L'immagine utilizza una tabella delle partizioni GPT:

Partizione Dimensione Filesystem Etichetta
p1 10G F2FS Fleur_de_Lys_Root
p2 20G bcachefs Fleur_de_Lys_Sources
p3 10G bcachefs Fleur_de_Lys_Home

Prerequisiti

Un host Linux con i seguenti strumenti disponibili:

  • losetup, mount, chroot (util-linux)
  • Supporto per filesystem F2FS e bcachefs (f2fs-tools, bcachefs-tools)
  • Toolchain di sviluppo standard (gcc, g++, make, binutils, ecc.)

Esegui bash tests/version-check.sh per verificare che il tuo host abbia gli strumenti richiesti.

Utilizzo

Tutti i comandi richiedono privilegi di root.

sudo make mount       # Monta l'immagine e le partizioni in mnt_image/
sudo make run         # Monta + collega filesystem virtuali + entra nella shell chroot
sudo make umount      # Smonta tutto e scollega il dispositivo loop

Creazione dell'Immagine da Zero

Per creare una nuova immagine disco vuota (20 GB) con la tabella delle partizioni e i filesystem formattati:

sudo bash scripts/build_os.sh

Struttura del Progetto

Fleur_de_Lys.img      # L'immagine del disco
mnt_image/            # Punto di mount (creato da make mount)
Makefile              # Target mount, run e umount
docker/               # Ambiente di build Docker multi-stage
  Dockerfile          # Layer di build Stage 1 e 2
  engine/             # Script di build (fleur-build.sh, ecc.)
  recipes/            # Istruzioni di build del software per stage
etc/
  os-release          # Identità della distribuzione
scripts/
  build_os.sh         # Crea e partiziona una nuova immagine disco
  build_img.sh        # Helper per la creazione dell'immagine
  mount.sh            # Script di mount legacy
tests/
  version-check.sh    # Verifica i requisiti della toolchain host

Ambiente Toolchain Docker

La toolchain e gli strumenti di sistema intermedi sono costruiti utilizzando una build Docker multi-stage:

  • Stage 1 (toolchain-builder): Avvia il compilatore (gcc/clang), binutils e glibc.
  • Stage 2 (temp-tools-builder): Compila tutte le utilità cross-compilate (bash, coreutils, python, meson, ninja, ecc.) in /tools.

Per costruire l'ambiente toolchain:

cd docker
make build