Fleur De Lys
Shell

Fleur De Lys

"Si deseas hacer un pastel de manzana desde cero, primero inventa el universo." -- Carl Sagan

Diseño del Disco

La imagen utiliza una tabla de particiones GPT:

Partición Tamaño Sistema de Archivos Etiqueta
p1 10G F2FS Fleur_de_Lys_Root
p2 20G bcachefs Fleur_de_Lys_Sources
p3 10G bcachefs Fleur_de_Lys_Home

Requisitos Previos

Un host Linux con lo siguiente disponible:

  • losetup, mount, chroot (util-linux)
  • Soporte para sistemas de archivos F2FS y bcachefs (f2fs-tools, bcachefs-tools)
  • Cadena de herramientas de desarrollo estándar (gcc, g++, make, binutils, etc.)

Ejecute bash tests/version-check.sh para verificar que su host tenga las herramientas requeridas.

Uso

Todos los comandos requieren privilegios de root.

sudo make mount       # Adjuntar la imagen y montar las particiones en mnt_image/
sudo make run         # Montar + enlazar sistemas de archivos virtuales + entrar al shell chroot
sudo make umount      # Desmontar todo y desconectar el dispositivo loop

Construcción de la Imagen desde Cero

Para crear una nueva imagen de disco en blanco (20 GB) con la tabla de particiones y sistemas de archivos formateados:

sudo bash scripts/build_os.sh

Estructura del Proyecto

Fleur_de_Lys.img      # La imagen de disco
mnt_image/            # Punto de montaje (creado por make mount)
Makefile              # Objetivos de montaje, ejecución y desmontaje
docker/               # Entorno de construcción Docker multi-etapa
  Dockerfile          # Capas de construcción Etapa 1 y 2
  engine/             # Scripts de construcción (fleur-build.sh, etc.)
  recipes/            # Instrucciones de construcción de software por etapa
etc/
  os-release          # Identidad de la distribución
scripts/
  build_os.sh         # Crear y particionar una nueva imagen de disco
  build_img.sh        # Ayudante para creación de imágenes
  mount.sh            # Script de montaje heredado
tests/
  version-check.sh    # Verificar requisitos de la cadena de herramientas del host

Entorno de Cadena de Herramientas Docker

La cadena de herramientas y las herramientas intermedias del sistema se construyen utilizando una compilación Docker multi-etapa:

  • Etapa 1 (toolchain-builder): Inicializa el compilador (gcc/clang), binutils y glibc.
  • Etapa 2 (temp-tools-builder): Construye todas las utilidades compiladas de forma cruzada (bash, coreutils, python, meson, ninja, etc.) en /tools.

Para construir el entorno de la cadena de herramientas:

cd docker
make build