프로젝트 소개

kumaOS는 Fedora bootc를 기반으로 구축된 선언적이고 원자적이며 불변적인 Linux 배포판입니다. 핵심 아이디어는 전체 시스템이 하나의 짧은 TOML 파일에 기술된다는 것입니다. 데스크톱 환경(Niri 또는 실험적 Cosmic), 사용자, 패키지(RPM, Flatpak, Homebrew), 서비스, 스냅샷, 오버라이드, 백업 구성을 선언합니다. 시스템은 이 파일로부터 이미지로 빌드되며, 업데이트는 원자적으로 적용됩니다. 전체 업데이트가 적용되거나 아무것도 변경되지 않습니다. 이전 배포는 디스크에 남아 있으므로 롤백은 재부팅 한 번이면 됩니다. 새 시스템이 작동하는 데스크톱으로 부팅되지 않으면 이전 시스템이 자동으로 복원됩니다. 주요 기능은 다음과 같습니다: - **선언적 구성**: 단일 TOML 파일이 전체 시스템을 정의합니다. - **원자적 업데이트**: 업데이트는 이미지 전환으로 적용되며, 실행 중인 시스템을 절대 변경하지 않습니다. - **롤백**: 이전 배포가 항상 사용 가능하며, 부팅 실패 시 자동 롤백이 발생합니다. - **로컬 우선**: 이미지 빌드에는 podman만 필요하며, forge 계정, CI, 레지스트리가 필요하지 않습니다. - **자기 설명**: 모든 명령은 상태를 보고하고 다음에 가능한 명령을 제안합니다. - **수렴**: 시스템은 부팅 시와 일일 타이머로 선언에 수렴하며, 드리프트는 보고되고 제안으로 캡처됩니다. - **Nostr 계층**: nostr 키를 위한 선택적 원격 서명자로, 휴대폰과 데스크톱 앱에서 안전한 서명이 가능합니다. 명령에는 `kuma check`, `build`, `switch`, `update`, `rollback`, `sync`, `diff`, `capture`, `add`, `remove`, `doctor`, `snapshot`, `backup`, `hibernate`, `clean`, `completions`이 있습니다. kumaOS는 Fedora를 패키지 소스로 유지하고 패키지나 커널을 빌드하지 않는다는 점에서 NixOS/Guix와 다릅니다. 부팅 시와 타이머로 수렴한다는 점에서 Universal Blue와 다르며, 설치 후에도 선언을 활성 상태로 유지한다는 점에서 BlueBuild와 다릅니다. 이 프로젝트는 초기 상태입니다: 실제 하드웨어에서 빌드, 부팅, 업데이트가 가능하지만 널리 테스트되지는 않았습니다. 약속은 버전 44.0부터 시작하며, 스키마 버전 1은 영구적입니다. 문서는 시작하기, 다른 시스템에서 이동하기, 개념, 계약, 데스크톱, 용어집, 에이전트, 기여를 다룹니다. 아직 구현되지 않음: 기본 세 가지를 넘어서는 사용자 정의 파티션 레이아웃, 그리고 독점 NVIDIA 드라이버(nouveau와 펌웨어만 포함됨).