NixOS, 작은 시드에서 시작하는 부트스트랩 체인
NixOS 시스템을 구축하기 위한 부트스트랩 체인(Bootstrap Chain)에 대한 기술적 논의가 진행됨
`live-bootstrap`을 시작점으로, 작은 바이너리 시드인 `builder-hex0`을 활용하여 GNU/Linux 시스템을 부트스트랩(Bootstrap)하는 방식임
Fiwix, 32비트 Linux 커널, i686-pc-linux-gnu 툴체인(Toolchain) 등 다양한 구성 요소를 포함하며, NixOS 시스템을 구축함
부트스트랩 과정의 상세 분석
핵심은 `live-bootstrap`을 통해 시작되는 부트스트랩 과정이다. 이 과정은 `builder-hex0`이라는 작은 부트 가능한 바이너리 시드(Binary Seed)에서 시작하여, Fiwix와 같은 유닉스 계열 시스템을 포함한 여러 구성 요소를 순차적으로 부트스트랩한다. 특히, 32비트 Linux 커널, `i686-pc-linux-gnu` 툴체인, 그리고 32비트 및 64비트 `nix`를 포함하는 복잡한 과정을 거친다. 이러한 과정은 시스템의 신뢰성(Reliability)과 재현성(Reproducibility)을 확보하는 데 기여한다.
`builder-hex0` 시드의 역할
`builder-hex0`은 부트스트랩 과정의 핵심 요소로, 시스템 구축의 시작점 역할을 한다. 이 시드는 감사 가능한(Auditable) 작은 바이너리 형태로, 시스템의 초기 신뢰성을 보장한다. 이 시드를 기반으로, Aux Foundation을 통해 `bootstrap-tools`를 포함한 다양한 종속성을 구축한다. 이러한 접근 방식은 시스템의 보안(Security)을 강화하고, 빌드 과정의 투명성을 높이는 데 기여한다.
NixOS 부트 과정의 특징
부트스트랩 체인은 NixOS 시스템의 부트 과정을 독특하게 만든다. 특히 `/etc/NIXOS_LUSTRATE` 파일을 생성하여, 부팅 스크립트가 `/`에 있는 거의 모든 내용을 `/old-root`로 이동시킨다. 이 방식은 시스템의 상태 관리(State Management)를 용이하게 하고, 시스템 업데이트 및 롤백(Rollback)을 효율적으로 수행할 수 있게 한다. 결과적으로, NixOS는 선언적 시스템 구성(Declarative System Configuration)을 통해 시스템의 안정성을 높인다.