Fleur De Lys
Shell

Fleur De Lys

"إذا أردت صنع فطيرة تفاح من الصفر، فعليك أولاً اختراع الكون." -- كارل ساجان

تخطيط القرص

تستخدم الصورة جدول أقسام GPT:

القسم الحجم نظام الملفات التسمية
p1 10G F2FS Fleur_de_Lys_Root
p2 20G bcachefs Fleur_de_Lys_Sources
p3 10G bcachefs Fleur_de_Lys_Home

المتطلبات الأساسية

مضيف لينكس يتوفر فيه ما يلي:

  • losetup، mount، chroot (util-linux)
  • دعم نظامي الملفات F2FS و bcachefs (f2fs-tools، bcachefs-tools)
  • مجموعة أدوات التطوير القياسية (gcc، g++، make، binutils، إلخ.)

قم بتشغيل bash tests/version-check.sh للتحقق من توفر الأدوات المطلوبة على مضيفك.

الاستخدام

جميع الأوامر تتطلب صلاحيات الجذر.

sudo make mount       # ربط الصورة وتثبيت الأقسام داخل mnt_image/
sudo make run         # تثبيت + ربط أنظمة الملفات الافتراضية + الدخول إلى بيئة chroot
sudo make umount      # فك تثبيت كل شيء وفصل جهاز الحلقة

بناء الصورة من الصفر

لإنشاء صورة قرص فارغة جديدة (20 جيجابايت) مع جدول الأقسام وأنظمة الملفات المنسقة:

sudo bash scripts/build_os.sh

هيكل المشروع

Fleur_de_Lys.img      # صورة القرص
mnt_image/            # نقطة التثبيت (يتم إنشاؤها بواسطة make mount)
Makefile              # أهداف التثبيت والتشغيل والفك
docker/               # بيئة بناء دوكر متعددة المراحل
  Dockerfile          # طبقات البناء للمرحلة 1 و 2
  engine/             # نصوص البناء (fleur-build.sh، إلخ.)
  recipes/            # تعليمات بناء البرمجيات حسب المرحلة
etc/
  os-release          # هوية التوزيعة
scripts/
  build_os.sh         # إنشاء وتقسيم صورة قرص جديدة
  build_img.sh        # مساعد إنشاء الصورة
  mount.sh            # نص تثبيت قديم
tests/
  version-check.sh    # التحقق من متطلبات أدوات المضيف

بيئة أدوات دوكر

يتم بناء سلسلة الأدوات وأدوات النظام الوسيطة باستخدام بناء دوكر متعدد المراحل:

  • المرحلة 1 (toolchain-builder): بناء المترجم (gcc/clang)، binutils، و glibc.
  • المرحلة 2 (temp-tools-builder): بناء جميع الأدوات المساعدة المترجمة بشكل متقاطع (bash، coreutils، python، meson، ninja، إلخ.) داخل /tools.

لبناء بيئة سلسلة الأدوات:

cd docker
make build