정적 링크, 최소주의, 그리고 부활: Oasis Linux, 2020년의 야심작
Oasis Linux는 정적 링크(Statically Linked)를 통해 라이브러리 호환성 문제를 해결하고, 자체적인 디스플레이 서버(Display Server)를 구축함
빌드 시스템(Build System)은 Lua 스크립트를 활용하여 빠르고 재현 가능한 빌드를 지원하며, 최소한의 의존성을 가짐
패키지 관리자(Package Manager)를 사용하지 않고, Git 저장소를 활용하여 시스템을 구성하는 독특한 방식을 채택함
커뮤니티에서는 정적 링크 방식(Statically Linked)에 대한 높은 기술적 인상과 프로젝트의 지속성에 대한 긍정적 평가가 주를 이룸
정적 링크(Statically Linked) 방식의 장점과 단점
Oasis Linux는 모든 소프트웨어(All Software)를 정적으로 링크하여 배포한다. 이는 라이브러리 업그레이드 문제(Library Upgrade)를 제거하고, 시스템 간의 호환성을 높이는 장점을 제공한다. 하지만, 바이너리 크기가 증가하고, 보안 패치 적용이 어려워질 수 있다는 트레이드오프(Trade-offs)가 존재한다. 특히, 대규모 프로젝트에서는 빌드 시간 증가와 같은 문제도 발생할 수 있다.
최소주의(Minimalism) 디자인 철학
Oasis Linux는 최소주의(Minimalism) 디자인 철학을 기반으로, 시스템의 복잡성을 줄이고자 한다. 이를 위해 glibc 대신 musl, coreutils 대신 sbase와 같은 단순화된 라이브러리(Simplified Libraries)를 사용한다. 이러한 접근 방식은 시스템의 공격 표면(Attack Surface)을 줄이고, 유지 보수성을 향상시키는 데 기여한다. 하지만, 일부 사용자에게는 익숙하지 않은 도구(Unfamiliar Tools)를 사용해야 한다는 단점이 있다.
빌드 시스템(Build System)의 혁신
Oasis Linux는 사무라이(Samurai)를 사용하여 빠르고 재현 가능한 빌드를 지원한다. Lua 스크립트를 통해 생성된 빌드 매니페스트(Build Manifest)를 활용하여, 빌드 시간과 의존성을 최소화한다. 특히, 증분 빌드(Incremental Builds)를 지원하여, 패키지 간의 변경 사항을 효율적으로 처리한다. 이러한 빌드 시스템은 개발 생산성을 향상시키고, 시스템의 안정성을 높이는 데 기여한다.
패키지 관리(Package Management) 방식의 차별성
Oasis Linux는 전통적인 패키지 관리자(Package Manager) 대신, Git 저장소를 활용하여 시스템을 구성한다. 사용자는 포함할 파일의 스펙(Specifications)을 설정하고, 빌드 시스템은 이를 기반으로 파일 시스템 트리를 생성하여 Git 저장소에 저장한다. 이러한 방식은 시스템의 유연성을 높이고, OS-agnostic 패키지 시스템(OS-agnostic Package Systems)과의 통합을 용이하게 한다. 하지만, 초기 설정(Initial Setup)에 대한 학습 비용이 발생할 수 있다.