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

사전 요구사항

다음이 설치된 Linux 호스트가 필요합니다:

  • 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 GB)를 생성하려면:

sudo bash scripts/build_os.sh

프로젝트 구조

Fleur_de_Lys.img      # 디스크 이미지
mnt_image/            # 마운트 지점 (make mount로 생성)
Makefile              # 마운트, 실행, 마운트 해제 대상
docker/               # 멀티 스테이지 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    # 호스트 도구 체인 요구사항 확인

Docker 도구 체인 환경

도구 체인과 중간 시스템 도구는 멀티 스테이지 Docker 빌드를 사용하여 구축됩니다:

  • 스테이지 1 (toolchain-builder): 컴파일러(gcc/clang), binutils, glibc를 부트스트랩합니다.
  • 스테이지 2 (temp-tools-builder): 모든 크로스 컴파일 유틸리티(bash, coreutils, python, meson, ninja 등)를 /tools에 빌드합니다.

도구 체인 환경을 빌드하려면:

cd docker
make build