Skip to main content

Your submission was sent successfully! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates from Canonical and upcoming events where you can meet our team.Close

Thank you for contacting us. A member of our team will be in touch shortly. Close

  1. Blog
  2. Article

Canonical
on 6 July 2023

불변의 리눅스 데스크톱 기반으로서의 우분투 코어(Ubuntu Core)


사진: Unsplash, 조지 커덴버그 3세

캐노니컬(Canonical)은 IoT를 위한 완전한 컨테이너 플랫폼을 만들기 위해 2014년에 우분투 코어 개발을 시작했습니다. 우분투 코어에서는 도커(Docker) 및 LXC가 구축된 것과 동일한 커널 컨테이너 기술을 사용하여 잘 정의된 업그레이드 및 롤백을 통해 시스템의 모든 구성 요소를 안전한 샌드박스에 넣습니다. 저희는 자율적으로 연결된 사물 인터넷 장치가 사람의 개입 없이 적용할 수 있는 업데이트를 수신하여 에지에서 보안 및 비즈니스 요구 사항을 해결할 수 있도록 하기 위해 이렇게 했습니다. 우분투 코어의 최소 설치 공간은 가장 까다로운 환경에서도 신뢰할 수 있으며 안전하고 탄력적이며 상시 작동하는 운영 체제를 가능하게 합니다.

컨테이너화된 접근 방식은 시스템의 각 부분의 변조를 방지하고 깨끗하고 독립적으로 업데이트될 수 있음을 의미합니다. 즉, 시스템의 모든 것을 볼 수 있도록 신뢰할 수 없는 앱을 실행할 수 있으며, 관리해야 하는 데이터만 신뢰할 수 있습니다. 이는 이전 버전의 리눅스에서 최신 버전의 앱을 사용할 수 있는 훨씬 더 많은 유연성이 있음을 의미합니다. 이상적으로는 게시자가 모든 데스크톱에서 잘 작동하는 앱을 게시할 수 있음을 의미합니다.

데스크톱 앱이 함께 잘 작동하기를 원하기 때문에 데스크톱 소프트웨어는 서버나 IoT 소프트웨어보다 컨테이너화하기가 여러 면에서 까다롭습니다. 이러한 긴밀한 통합으로 인해 안전하고 사용하기 쉬운 방식으로 애플리케이션과 시스템 구성 요소 간의 샌드박스 경계를 정의하기가 더 어려워집니다. 스냅은 데스크톱에 약간의 거친 가장자리가 있는 것으로 유명합니다. 🙂 그럼에도 불구하고 각 구성 요소가 불변이고 격리되어 완전히 컨테이너화된 데스크톱에 대한 아이디어를 탐구하게 되어 기쁩니다. 저희는 데스크톱 스냅(snap)의 경험을 꾸준히 개선해 왔습니다. 그리고 얼마쯤 시간이 흐른 뒤에 전체 시스템이 이런 방식으로 제공될 수 있다고 생각할 때 이런 새로운 기능을 갖춘 우분투 데스크톱 버전을 제공하게 될 것을 생각하니 기쁩니다.

이 블로그 게시물에서는 불변의 운영 체제의 아키텍처, 그 이점과 단점, 불변의 리눅스 환경에서 우분투 코어의 역할에 대해 논의합니다. 결합성 및 보안에 중점을 두어 IoT, 에지, 로봇 공학, 클라우드 개발자에게 고유한 이점을 제공하는 방법을 보여줍니다.

저희는 또한 데스크톱에서 불변의 리눅스의 부상, 사용자에 대한 이점, 우분투 코어가 미래에 수행할 수 있는 역할을 다룰 것입니다.

불변의 운영 체제란?

다른 불변의 운영 체제와 우분투 코어의 차이점을 논의하기 전에 먼저 OS를 불변으로 만드는 속성을 정의해야 합니다:

  1. 읽기 전용: 불변의 OS의 주요 특징은 실행 중인 시스템을 사용자나 애플리케이션이 직접 수정할 수 없다는 것입니다.
  2. 원자적 업데이트: 업데이트가 원자적으로 적용됩니다. 한 번에 모두 성공적으로 적용되거나 전혀 적용되지 않음을 의미합니다.
  3. 예측 가능: 핵심 운영 체제는 변경되지 않기 때문에 모든 장치에서 동작을 예측할 수 있습니다.
  4. 격리된 애플리케이션: 애플리케이션은 일반적으로 컨테이너화를 통해 핵심 운영 체제와 서로 격리됩니다. 이렇게 하면 애플리케이션에서 변경한 사항이 코어 시스템이나 다른 애플리케이션에 영향을 미치지 않습니다.

어떤 이점이 있는가?

  1. 보안: 악성 소프트웨어가 시스템을 변경하거나 한 애플리케이션에서 다른 애플리케이션으로 확산되는 것이 더 어렵습니다.
  2. 안정성: 시스템 파일은 우발적으로 변경되거나 삭제될 수 없으며 원자적 업데이트는 시스템 업데이트가 시스템을 부분적으로 업데이트되게 하거나 잠재적으로 불안정한 상태로 두지 않습니다.
  3. 재현성: 부팅할 때마다 OS가 동일하기 때문에 시스템에 대한 테스트, 감사, 확인뿐만 아니라 문제를 진단하고 해결하기가 더 쉽습니다.
  4. 관리 용이성: OS의 각 인스턴스가 동일하기 때문에 시스템 관리자는 서로 다른 시스템 간의 예기치 않은 변경이나 불일치에 대해 걱정할 필요가 없습니다. 원자적 업데이트 및 롤백은 시스템 업데이트 적용 및 문제 수정 프로세스를 단순화합니다.

어떤 단점이 있는가?

  1. 유연성 감소: 불변의 OS는 기존 OS보다 유연성이 떨어집니다. 사용자는 시스템 파일을 수정하거나 같은 수준으로 시스템을 커스터마이즈할 수 없습니다.
  2. 호환성 제한: 애플리케이션과 서비스가 불변의 OS에서 제공하는 컨테이너화된, 또는 격리된 환경과 모두 호환되는 것은 아닙니다.
  3. 스토리지 요구 사항: 업데이트 메커니즘은 종종 이미지 스냅샷 스토리지가 필요합니다. 격리된 애플리케이션은 애플리케이션 종속성 스토리지의 이중화를 야기할 수 있습니다.
  4. 개발자 경험: 컨테이너화된 개발 환경은 이점(예: 향상된 격리 및 재현성)을 제공하는 반면 추가적으로 복잡할 수 있고 익숙한 툴 및 워크플로우 사용을 제한할 수도 있습니다.

불변의 운영 체제는 특히 서버, IoT 장치, 높은 보안 환경과 같이 안정성, 보안, 예측 가능성이 중요한 환경에 적합합니다. 그러나 최근 몇 년 동안 저희는 이러한 속성이 처음에는 모바일 OS 공간에서, 그리고 점점 더 PC 공간에서 상당한 사용자 가치를 보여주는 것을 목격했습니다.

불변의 리눅스 OS 아키텍처

이제 이러한 속성을 정의했으므로 오늘날 불변의 리눅스 생태계에서 만들어진 여러 가지 설계를 검토해 보겠습니다.

Chrome OS

모바일 외에 일상의 사용자에게 불변의 가치를 가장 효과적으로 대중화한 OS는 생산성 및 개발에 대한 클라우드 우선 접근 방식으로 설계된 리눅스 기반 Chrome OS입니다.

Chrome OS는 하드웨어 지원 암호화와 함께 읽기 전용 운영 체제, 샌드박스 애플리케이션 및 프로세스로 보안을 우선시합니다. 인증된 부팅은 부팅 프로세스의 각 단계에서 펌웨어 및 커널 서명 확인을 통해 시스템이 수정되지 않았음을 확인합니다.

업데이트는 장치가 두 가지 버전의 운영 체제를 저장하는 ‘A/B 프로세스’를 통해 처리됩니다. 하나는 활성 상태이고 다른 하나는 비활성 상태이지만 백그라운드에서 수정 및 업데이트를 적용할 수 있습니다. 이러한 수정 사항이 성공적으로 적용되면 다음에 다시 부팅할 때 새 버전이 자동으로 선택됩니다. 그렇지 않으면 장치가 기존 이미지로 다시 부팅되어 훨씬 더 탄력적인 업데이트가 이루어집니다.

페도라 실버블루(Fedora Silverblue)와 OSTree

페도라 실버블루와 같은 최근의 불변의 리눅스 배포판은 OSTree라는 도구를 통해 Chrome OS와 유사한 업그레이드 메커니즘을 따릅니다. OSTree를 사용하면 업데이트를 사용할 수 있을 때 전체 시스템 이미지가 백그라운드에서 다운로드되며, 한번 설치되면 사용자는 간단히 부팅할 수 있습니다.

OSTree는 변경 사항이 적용될 때 시스템의 스냅샷을 저장합니다. 부팅하는 동안 사용자에게 이러한 스냅샷 목록이 표시되어 스냅샷 중 하나로 부팅하여 효과적으로 시스템을 롤백할 수 있습니다. 이 업데이트 및 롤백 메커니즘은 사용자가 OSTree를 수정하여 발생할 수 있는 불안정성을 완화합니다. 그 결과로 사용자는 자신 있게 애플리케이션 또는 그래픽 드라이버를 OS 스냅샷에 계층화할 수 있습니다. OSTree는 각 개정판에서 “델타”(차이점)만 전달하여 시스템 업데이트의 스토리지 및 대역폭 오버헤드를 최소화합니다.

MicroOS 및 Btrfs 스냅샷

우분투 코어와 같은 openSUSE의 MicroOS는 주로 IoT 및 기타 단일 목적 사용 사례를 위해 설계되었습니다. 그러나 이제 openSUSE Aeon이라는 전체 데스크톱 환경을 지원합니다. MicroOS는 Btrfs 스냅샷을 사용하여 현재 실행 중인 루트 파일 시스템을 복제하여 업데이트를 적용한 다음 새 루트 파일 시스템을 다음 부팅 대상으로 표시합니다. 이것은 OSTree에 대한 다른 접근 방식이지만 Btrfs 스냅샷을 사용하면 쓰기 시 복사 작업으로 인해 여러 부팅 가능한 시스템 이미지를 유지 관리하는 데 필요한 스토리지 요구 사항도 최적화됩니다.

컨테이너화된 애플리케이션

근본적인 변경 사항은 실행 중인 애플리케이션이나 서비스에 영향을 미칠 수 있기 때문에 시스템 업데이트 후에는 재부팅이 선호되는 경우가 많지만 애플리케이션 업그레이드에 동일한 요구 사항을 적용하는 것은 시스템 작동에 불필요한 중단을 초래할 수 있으므로 바람직하지 않습니다.

이를 해결하기 위해 위에서 언급한 불변의 OS는 기본 OS와 독립적으로 실행되고 OS 파일 시스템의 일부로 간주되지 않는 컨테이너화된 데스크톱 애플리케이션(도커, Flatpak 등)을 활용합니다. 이를 통해 시스템의 부팅(및 관리)에 중요하지 않은 애플리케이션 및 서비스에 대해 제어된 수준의 가변성을 사용할 수 있습니다. 이러한 메커니즘을 통해 애플리케이션은 재부팅할 필요 없이 기본 시스템의 복원력을 손상시키지 않고 자체 주기에 따라 업데이트할 수 있습니다.

스냅

스냅도 불변의 애플리케이션입니다. 스냅이 설치되면 애플리케이션과 필요한 모든 종속성을 포함하는 완전한 셀프 컨테인드 패키지로 제공됩니다. 이러한 요소는 불변의 squashfs 파일 시스템에 함께 번들로 제공됩니다. 즉, “스냅된” 소프트웨어는 호스트 시스템의 라이브러리나 설정을 수정하거나 의존하지 않으므로 호스트 전체에서 일관성과 예측 가능성이 유지됩니다.

스냅에 대한 업그레이드 프로세스 중에 전체 패키지가 원자적으로 교체되고 사용자 데이터가 버전 간에 복사되므로 애플리케이션이 항상 일관된 상태로 유지되기 때문에 부분 업데이트로 인해 자주 발생하는 문제의 위험이 줄어듭니다.

스냅은 또한 ‘엄격한 제한’과 강력한 서명 및 확인 프로세스를 통해 추가적인 보안 이점을 제공합니다. 개발자가 스냅 스토어에 스냅을 업로드하면 상세한 보안 검토 후 개발자 계정에 등록된 키로 서명됩니다. snapd를 실행하는 리눅스 배포판이 스냅을 다운로드하고 설치할 때 스냅 스토어의 공개 키에 대해 서명을 확인합니다. 이렇게 하여 스냅이 변조되지 않았으며 신뢰할 수 있는 소스에서 생성되었음을 확인할 수 있습니다.

우분투 코어가 불변성과 결합성을 결합하는 방법

그러나 스냅 이면의 기술은 데스크톱 애플리케이션의 배포를 넘어 확장됩니다. 우분투 코어를 사용하면 이러한 보안 및 안정성의 철학이 전체 우분투 운영 체제를 구성하는 구성 요소에 동일하게 적용됩니다.

OS를 불변의 단일 ‘블롭’으로 취급하는 대신 우분투 코어는 OS를 개별 구성 요소로 나눕니다. 예를 들어 우분투 코어의 기반은 4개의 기본 스냅을 기반으로 합니다:

  • 가젯: 스냅에 대한 시스템의 부트로더, 파티션 레이아웃, 기본 구성을 정의합니다.
  • 커널: 리눅스 커널 및 하드웨어 드라이버를 포함합니다.
  • 베이스: 상위에서 실행되는 애플리케이션을 지원하는 데 필요한 서비스와 유틸리티만 포함된 최소 우분투 OS 이미지입니다.
  • Snapd: 우분투 코어 시스템에서 모든 스냅의 수명 주기를 관리합니다.

그런 다음 추가적인 OS 스냅을 이 이미지에 계층화하여 데스크톱 환경과 같은 운영 체제의 다른 요소를 활성화할 수 있습니다(자세한 내용은 다음 섹션 참조).

더욱 원자적으로

OS 구축에 대한 이런 구성 가능한 접근 방식은 여러 주요 이점을 제공합니다. 첫 번째 인스턴스에서 사용자는 단일 목적 애플리케이션을 실행하는 데 필요한 구성 요소만으로 간소화된 우분투 코어 이미지를 조합하여 OS 설치 공간과 잠재적인 공격 표면을 모두 최소화할 수 있습니다.

다른 이점은 모든 스냅 유형이 자체 주기에 따라 업데이트될 수 있으므로 장치를 재부팅할 필요성이 크게 줄어듭니다. 롤아웃(및 롤백)이 보다 세분화되어 예를 들어 네트워킹 스택에 대한 업데이트가 커널에 대해 다른 주기로 실행될 수 있습니다.

채널이 추가적인 유연성을 창출하는 방법

스냅의 또 다른 기능은 업데이트를 제공하기 위해 채널을 사용하는 것입니다. 각 스냅에는 4개의 표준 채널(안정, 후보, 베타, 에지)이 있습니다. 이러한 채널을 통해 사용자는 자신의 소프트웨어가 얼마나 최첨단이 되기를 원하는지 선택할 수 있습니다. 안정 채널은 가장 테스트되고 신뢰할 수 있는 반면 에지 채널에는 애플리케이션 게시자의 최신 변경 사항이 포함됩니다. 이 모델을 통해 사용자는 자신이 편한 위험 수준을 선택할 수 있습니다.

채널은 또한 단계적 롤아웃과 손쉬운 롤백을 가능하게 합니다. 개발자 또는 관리자는 업데이트를 모든 사용자에게 롤아웃하기 전에 테스트를 위해 일부 사용자에게 업데이트를 푸시할 수 있습니다. 업데이트에서 문제가 발견되면 이전 버전으로 쉽게 롤백할 수 있습니다. 이 작업은 스냅 단위로 수행되어 시스템 중단을 최소화할 수 있습니다.

리눅스 데스크톱용 우분투 코어의 잠재력

이면에 캐노니컬 팀은 특히 개발자와 일상 사용자의 맥락에서 IoT 영역을 넘어 우분투 코어의 이점을 적극적으로 탐색해 왔습니다.

보안 부팅, 복구 상태, 하드웨어 지원 암호화와 같은 우분투 코어 고유의 속성은 사용자 PC의 보안 태세를 크게 개선할 것입니다.

또한 사용자 경험에 모듈 방식 개념을 도입하여 사용자가 매우 안정적이고 서명되고 안전한 LTS 기반을 유지하면서 대체 데스크톱 환경 스냅을 실험할 수 있습니다.

또한 스냅 채널 사용은 배포의 특정 요소를 ‘롤링’하는 개념을 활용합니다. 예를 들어 게이머는 최신 NVIDIA 드라이버가 출시되는 즉시 제공하는 커널 채널을 선택할 수 있습니다. 이는 우분투 데스크톱 팀이 스팀 스냅 작업의 일부로 Mesa를 위해 수행한 것과 같은 방식입니다.

그러나 이러한 수준의 안정성과 보안에는 ‘정상적인 작동’ 경험을 위해 기본 OS의 수정을 제한하는 개발자와 땜장이 간의 상호 절충이 따릅니다. 장치를 오픈 소스 개발을 위한 플랫폼으로 보는 개발자에게 솔루션은 LXD 기반크로스티니(Crostini)와 유사한 컨테이너 기반 환경입니다. 땜장이의 경우 클래식 우분투 이미지는 시스템을 완전히 제어(및 책임)할 수 있도록 선호하는 경로로 남을 것입니다.

추가 정보

앞으로 몇 달 동안 저희는 우분투 코어와 향후 애플리케이션의 철학에 대해 더 깊이 파고들 것입니다. 최신 정보를 얻으려면 이 페이지 측면에 있는 뉴스레터에 가입하십시오.

그동안 자세한 내용은 다음 링크를 확인하세요:

  • ubuntu.com/core는 우분투 코어의 기능 요약을 제공합니다.
  • ubuntu.com/core/stories에서 오늘날 네트워킹, 농업, 로봇 공학, 드론 애플리케이션에서 우분투 코어가 어떻게 사용되는지 읽을 수 있습니다.
  • ubuntu.com/tutorials를 통해 우분투 코어를 직접 시험해 보세요.

Related posts


Rhys Knipe
12 June 2024

Space pioneers: Lonestar gears up to create a data centre on the Moon

Canonical announcements Article

Why establish a data centre on the Moon? Find out in our blog. ...


Gabriel Aguiar Noury
6 June 2024

A look into Ubuntu Core 24: Your first Linux-powered Matter device

Internet of Things Article

Welcome to this blog series which explores innovative uses of Ubuntu Core. Throughout this series, Canonical’s Engineers will show what you can build with this Core 24 release, highlighting the features and tools available to you.  In this third blog, Farshid Tavakolizadeh, engineering manager from our Industrial team, will show you how t ...


Gabriel Aguiar Noury
5 June 2024

A look into Ubuntu Core 24: Robotics telemetry for your fleet

Internet of Things Article

Welcome to this blog series which explores innovative uses of Ubuntu Core. Throughout this series, Canonical’s Engineers will show what you can build with this Core 24 release, highlighting the features and tools available to you.  In this fourth blog, Mirko Ferrati, engineering manager from our Robotics team, will show you how to deploy ...