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 # माउंट + बाइंड वर्चुअल फ़ाइलसिस्टम्स + चरूट शेल में प्रवेश करें
sudo make umount # सब कुछ अनमाउंट करें और लूप डिवाइस को अलग करें


## शून्य से इमेज बनाना

पार्टीशन टेबल और फ़ॉर्मेट किए गए फ़ाइलसिस्टम्स के साथ एक नई खाली डिस्क इमेज (20 GB) बनाने के लिए:

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 (टूलचेन-बिल्डर):** कंपाइलर (gcc/clang), बाइनयूटिल्स, और ग्लिबसी को बूटस्ट्रैप करता है।
- **स्टेज 2 (temp-tools-builder):** सभी क्रॉस-कंपाइल्ड यूटिलिटीज़ (bash, coreutils, python, meson, ninja, आदि) को `/tools` में बिल्ड करता है।

टूलचेन वातावरण को बिल्ड करने के लिए:

```bash
cd docker
make build