Fleur De Lys
Shell

Fleur De Lys

GitHub|

"Якщо ви хочете зробити яблучний пиріг з нуля, спочатку винайдіть всесвіт." -- Карл Саган

Розмітка диска

Розділ Розмір Файлова система Мітка
p1 10G F2FS Fleur_de_Lys_Root
p2 20G bcachefs Fleur_de_Lys_Sources
p3 10G bcachefs Fleur_de_Lys_Home

Передумови

Linux-хост з наступними доступними інструментами:

  • losetup, mount, chroot (util-linux)
  • Підтримка файлових систем F2FS та bcachefs (f2fs-tools, bcachefs-tools)
  • Стандартний набір інструментів розробки (gcc, g++, make, binutils, тощо)

Запустіть bash tests/version-check.sh, щоб перевірити, що ваш хост має потрібні інструменти.

Використання

Усі команди потребують прав root.

sudo make mount       # Attach the image and mount partitions into mnt_image/
sudo make run         # Mount + bind virtual filesystems + enter chroot shell
sudo make umount      # Unmount everything and detach the loop device

Створення образу з нуля

Щоб створити новий порожній образ диска (20 ГБ) з таблицею розділів і форматованими файловими системами:

sudo bash scripts/build_os.sh

Структура проекту

Fleur_de_Lys.img      # The disk image
mnt_image/            # Mount point (created by make mount)
Makefile              # Mount, run, and unmount targets
docker/               # Multi-stage Docker build environment
  Dockerfile          # Stage 1 & 2 build layers
  engine/             # Build scripts (fleur-build.sh, etc.)
  recipes/            # Software build instructions by stage
etc/
  os-release          # Distribution identity
scripts/
  build_os.sh         # Create and partition a new disk image
  build_img.sh        # Image creation helper
  mount.sh            # Legacy mount script
tests/
  version-check.sh    # Verify host toolchain requirements

Середовище Docker Toolchain

Набір інструментів та проміжні системні інструменти створюються за допомогою багатоступеневого Docker-білду:

  • Stage 1 (toolchain-builder): Ініціалізує компілятор (gcc/clang), binutils та glibc.
  • Stage 2 (temp-tools-builder): Створює всі крос-компільовані утиліти (bash, coreutils, python, meson, ninja, тощо) у /tools.

Щоб побудувати середовище інструментів:

cd docker
make build