Computer >> 컴퓨터 >  >> 시스템 >> Linux

페도라 실버블루(Fedora Silverblue), 리눅스의 미래가 될 수 있는 이유

페도라 실버블루(Fedora Silverblue), 리눅스의 미래가 될 수 있는 이유

리눅스를 오래 사용해 온 사용자라면 페도라 실버블루(Fedora Silverblue)라는 이름을 한 번쯤 들어보셨을 겁니다. 처음 접하는 분들을 위해 간단히 설명하자면, 실버블루는 페도라 워크스테이션의 불변(Immutable) 변형판입니다. 즉, 핵심 운영체제는 모든 실버블루 설치 환경에서 동일하며 읽기 전용으로 잠겨 있어, 아무리 노력해도 직접 수정할 수 없습니다.

페도라 프로젝트는 실버블루 공식 문서에서 이러한 설계의 장점을 잘 설명하고 있습니다. "실버블루의 불변 설계는 시스템을 더 안정적으로 만들고 버그 발생 가능성을 줄이며, 테스트와 개발을 더 쉽게 해줍니다. 나아가 컨테이너 기반 앱과 소프트웨어 개발에 이상적인 플랫폼이 되도록 합니다. 앱과 컨테이너는 호스트 시스템과 분리되어 유지되므로 안정성과 신뢰성이 향상됩니다." 바로 이런 이유들 때문에 저는 페도라 실버블루가 리눅스의 미래가 될 수 있다고 확신합니다.

불변 운영체제, Fedora Silverblue

불변 운영체제는 생각보다 훨씬 흔합니다. 주류 *nix 기반 OS로 꼽히는 macOS와 크롬OS 역시 어느 정도 불변 구조를 채택하고 있습니다. 변경 가능한(mutable) OS가 자주 고장 나 골치를 썩이던 사용자에게는 매우 매력적인 선택지입니다.

불변 구조는 컨테이너화된 애플리케이션 사용도 자연스럽게 촉진합니다. 예를 들어 실버블루에서는 플랫팩(Flatpak)이 앱 설치의 기본 방식이며, 원하는 앱을 플랫팩 등 컨테이너 형태로 찾지 못할 때에만 RPM 패키지를 베이스 시스템 위에 얹는(레이어링) 것이 최후의 수단이 됩니다.

페도라 실버블루(Fedora Silverblue), 리눅스의 미래가 될 수 있는 이유

원자적(Atomic) OS 업그레이드

원자적 OS 업그레이드란 다른 리눅스 시스템처럼 패키지를 하나씩 따로 업그레이드하는 것이 아니라, 운영체제 이미지 전체를 한 번에 업그레이드하는 방식을 말합니다. 컨테이너화되지 않은 소프트웨어를 설치할 때 반드시 거쳐야 하는 과정이기도 합니다.

rpm-ostree 명령으로 원하는 RPM 패키지를 설치하면 새로운 부팅 가능한 루트 파일시스템이 생성됩니다. 기존의 부팅 가능한 루트 파일시스템은 그대로 보존되므로, 무언가 문제가 생기면 이전 이미지로 재부팅해 되돌아갈 수 있습니다.

Btrfs, ZFS, LVM 등으로 시스템 스냅샷을 찍는 기능과 비슷하지만, ZFS를 통합하기 까다로운 페도라 환경에서 OSTree가 제공하는 GRUB 부팅 옵션은 사용자 경험을 크게 개선해 주는 요소입니다.

페도라 실버블루(Fedora Silverblue), 리눅스의 미래가 될 수 있는 이유

OSTree와 rpm-ostree

OSTree는 실버블루에서 새로운 부팅 가능한 루트를 구성하고, 업데이트하고, 배포하는 기술입니다. "OS 바이너리를 위한 Git"이라고 생각하면 이해하기 쉽습니다. OS 바이너리를 관리하는 놀랍도록 흥미로운 시스템으로, 앞서 언급한 시스템 영역과 사용자 영역의 분리를 가능하게 합니다.

rpm-ostree는 RPM의 패키지 관리 기능과 OSTree의 이미지 관리 기능을 결합한 시스템으로, 베이스 실버블루 이미지 위에 RPM을 레이어링할 수 있게 해줍니다. 페도라의 대부분 RPM은 rpm-ostree로 설치할 수 있으며, RPM과 OSTree의 통합 덕분에 패키지 관리자와 이미지 관리자가 서로 잘 맞물려 작동합니다.

그 장점의 예로, 베이스 이미지 위에 얹은 RPM은 베이스 이미지와 별개로 업데이트·관리됩니다. 파이어폭스를 다른 버전으로 업그레이드한 뒤 새 부팅 루트로 재부팅할 수 있고, 만약 이미지 업그레이드가 제대로 진행되지 않았다면 이전 이미지로 롤백하면서도 최신 버전의 파이어폭스는 그대로 유지됩니다. OS 이미지와는 별개의 레이어이며, rpm-ostree가 이 둘을 모두 관리하는 도구입니다.

OSTree, Flatpak, Toolbox 레이어링

이 글에서 계속 '레이어'라는 용어를 언급해 왔습니다. 실버블루는 여러 개의 독립된 공간으로 나뉘어 서로 협력하며 OS를 구동합니다. 불변인 베이스 OS 이미지가 첫 번째 레이어이고, 여기에 RPM을 하나씩 얹을 때마다 동일한 부팅 루트를 공유하되 새 RPM 패키지가 올라간 새로운 레이어가 만들어집니다. 이것들이 모두 OSTree 레이어입니다.

이와 별개로 플랫팩(Flatpak)이 있는데, 플랫팩들은 서로 위에 쌓이며 OSTree 레이어와는 완전히 격리되어 있습니다. 마지막으로 툴박스(Toolbox)라는 또 다른 독립 레이어가 있습니다. 툴박스는 본질적으로 페도라 워크스테이션의 루트 파일시스템을 OSTree 레이어 위에 얹은 것으로, DNF를 사용해 소프트웨어를 테스트하거나 일회성 도구를 활용할 수 있습니다. 예컨대 Copr 저장소의 소프트웨어를 사용해 보거나, 직접 작성한 프로그램을 새 실버블루 배포로 재부팅하지 않고 테스트하는 식입니다. 서로 다른 버전의 페도라 워크스테이션을 사용할 수도 있어, 테스트 시 워크스테이션의 최신 기능이나 기존 기능을 모두 활용할 수 있습니다. 툴박스는 다룰 내용이 많지만 분량상 여기서는 간단히만 짚겠습니다. 아래 영상을 참고하면 더 자세히 알 수 있습니다.

페도라 실버블루(Fedora Silverblue), 리눅스의 미래가 될 수 있는 이유 페도라 실버블루(Fedora Silverblue), 리눅스의 미래가 될 수 있는 이유 페도라 실버블루(Fedora Silverblue), 리눅스의 미래가 될 수 있는 이유

왜 실버블루가 미래인가?

내용의 상당 부분이 개발자를 겨냥한 것처럼 느껴질 수 있습니다. 하지만 노트북이나 데스크톱 워크스테이션용 OS로 사용하기에도 충분히 좋은 선택입니다. libvirt 등 KVM 가상화 도구 같은 필수 패키지만 레이어링하고, 플랫팩과 툴박스로 컨테이너 기반 워크플로를 구축하면 실버블루의 잠재력을 최대한 끌어낼 수 있습니다. 학습 곡선은 존재하지만, 플랫팩을 선호하는 페도라 워크스테이션 사용자라면 대부분의 과정이 낯설지 않게 느껴질 것입니다.

페도라 32로 업그레이드하는 방법, Cockpit으로 페도라 시스템 관리하기, RHEL·CentOS·Fedora의 차이점 등 저희의 다른 페도라 관련 콘텐츠도 함께 확인해 보시기 바랍니다.