改変不可のLinuxデスクトップベースとしてのUbuntu Core

by Canonical on 6 July 2023

写真提供:George Kedenburg III(Unsplash

Canonicalは、IoT向けの完全にコンテナ化されたプラットフォームを構築するため、2014年にUbuntu Coreの開発を始めました。Ubuntu Coreでは、DockerやLXCが構築されるカーネルコンテナ技術と同じ技術を用いて、明確に定義されたアップグレードとロールバックにより、システムのすべてのコンポーネントを安全なサンドボックスに配置します。このような形にした理由は、自律的に接続されたIoT(モノのインターネット)デバイスが人間の介入を必要とせずに適用可能な更新を受信し、エッジでセキュリティとビジネスニーズに対応できるようにするためです。Ubuntu Coreの極めて小さなフットプリントは、厳しい環境でも信頼でき、常に更新される、安全で安定したオペレーティングシステムを実現します。

コンテナ化により、システムの各部分が改ざんされることなく、クリーンかつ個別に更新されます。つまり、信頼していないアプリを実行しながらシステム上のすべてを確認でき、そのアプリが管理すべきデータにのみアクセスを許可するということです。また、古いバージョンのLinuxで新しいバージョンのアプリを使用する柔軟性でも優れています。理想的には、発行者がすべてのデスクトップで適切に動作するアプリを公開できることを意味します。

デスクトップソフトウェアは、デスクトップアプリを適切に連携させようとするために、サーバーやIoT向けのソフトウェアよりもコンテナ化が多くの点で困難になります。また、そのような緊密な統合により、アプリケーションとシステムコンポーネントの間のサンドボックス境界を安全かつ使いやすい方法で定義することも難しくなります。snapはデスクトップよりも粗削りなことで若干有名です🙂。しかしCanonicalは、各コンポーネントが改変不可で隔離された完全なコンテナ化デスクトップのアイデアに期待しています。Canonicalはデスクトップsnapの体験を着実に改善してきました。そして、将来的にシステム全体をこのような方法で提供できると考えると、これらの新機能を備えたUbuntu Desktopのバージョンの提供が楽しみです。

今回のブログ記事では、改変不可のオペレーティングシステムのアーキテクチャ、その利点と欠点、そして改変不可のLinux環境におけるUbuntuCoreの役割を紹介します。また、コンポーザビリティとセキュリティに重点を置くことがIoT、エッジ、ロボティクス、クラウド開発者にどのような利点をもたらすのかを説明します。

また、デスクトップにおける改変不可Linuxの人気、ユーザーにとっての利点、Ubuntu Coreが将来的に果たす可能性のある役割についても説明します。それでは始めましょう!

改変不可のオペレーティングシステムとは

Ubuntu Coreと他の改変不可のオペレーティングシステムとの違いについて説明する前に、改変不可OSの特徴を定義する必要があります。

  1. 読み取り専用:改変不可OSの主な特徴は、実行中のシステムをユーザーやアプリケーションが直接変更できないことです。
  2. アトミック更新:更新はアトミックに適用されます。つまり、更新がすべて一度に正常に適用されるか、まったく適用されません。
  3. 予測可能:コアオペレーティングシステムが変更されないため、デバイスが異なっても動作が予測できます。
  4. アプリケーションの隔離:通常、アプリケーションはコンテナ化によってコアオペレーティングシステムから隔離されます。またアプリケーション間も相互に隔離されます。このため、アプリケーションによって行われた変更がコアシステムやその他のアプリケーションに影響を与えることがありません。

利点

  1. セキュリティ:悪意のあるソフトウェアがシステムに変更を加えたり、あるアプリケーションから別のアプリケーションに拡散したりすることがより困難になります。
  2. 安定性:システムファイルを誤って変更または削除することは不可能です。アトミック更新によって、システム更新でシステムが部分的に更新されることや不安定な状態になることはありません。
  3. 再現性:OSがすべての起動で同一であるため、システムのテスト、監査、検証や、問題の診断とトラブルシューティングが容易になります。
  4. 管理性:OSの各インスタンスが同一であるため、システム管理者は異なるシステム間の予期しない変更や不整合について心配する必要はありません。アトミック更新とロールバックにより、システム更新の適用と問題の修正のプロセスが簡素化されます。

欠点

  1. 柔軟性が低い:改変不可のOSは従来のOSよりも柔軟性が低くなります。ユーザーが従来のようにシステムファイルに変更を加えたりシステムをカスタマイズしたりすることはできません。
  2. 互換性が低い:すべてのアプリケーションやサービスが、改変不可のOSによって提供されるコンテナ化または隔離された環境と互換性を持っているわけではありません。
  3. ストレージ要件:多くの場合、更新メカニズムではイメージのスナップショットのストレージが必要です。アプリケーションの隔離によって、アプリケーションの依存ファイルのストレージの冗長化につながる可能性があります。
  4. 開発者にとっての使い勝手:コンテナ化された開発環境には利点(隔離や再現性の向上など)がありますが、複雑さが増し、使い慣れたツールやワークフローの使用が制限される可能性もあります。

改変不可のオペレーティングシステムが特に適しているのは、サーバー、IoTデバイス、高セキュリティ環境など、安定性、セキュリティ、予測可能性が最優先される環境です。しかし、近年、これらのプロパティは最初はモバイルOSの分野で、そしてPCの分野でもますますユーザー価値を高めています。

改変不可Linux OSのアーキテクチャ

プロパティの定義が完了したので、現在の改変不可のLinuxエコシステムにおける設計の選択肢を見てみましょう。

Chrome OS

モバイル以外では、日常的に利用するユーザーに不変性の価値を最も効果的に普及させたOSは、生産性と開発に対するクラウド主導のアプローチによって設計されたLinuxベースのChrome OSです。

Chrome OSは、読み取り専用のオペレーティングシステム、サンドボックス化されたアプリケーションとプロセス、ハードウェアによる暗号化によりセキュリティを優先しています。確認付きブートはシステムがファームウェアによって変更されていないことを確認し、カーネル署名がブートの各段階をチェックします。

更新は、デバイスが2つのバージョンのオペレーティングシステムが保存する「A/Bプロセス」で処理されます。OSの1つは実行中、もう1つは非アクティブですが、変更や更新をバックグラウンドで適用できます。これらの変更が正常に適用されると、次回の再起動時に新しいバージョンが自動的に選択されます。変更が適用されなかった場合はデバイスは既存のイメージで起動するため、更新の回復性が大幅に向上します。

Fedora SilverblueとOSTree

Fedora Silverblueのような最近の改変不可のLinuxディストリビューションは、OSTreeと呼ばれるツールを介してChrome OSと同様のアップグレードメカニズムに従っています。OSTreeを使用することにより、更新が利用可能になると完全なシステムイメージがバックグラウンドでダウンロードされ、ユーザーはインストール後に簡単に起動できます。

OSTreeは変更が適用されたときにシステムのスナップショットを保存します。起動中にこれらのスナップショットのリストがユーザーに表示され、ユーザーは任意のスナップショットを起動できます。事実上、システムロールバックするのです。この更新とロールバックのメカニズムは、ユーザーによるOSTreeの変更に起因する可能性がある不安定性を軽減します。その結果として、ユーザーはアプリケーション、さらにはグラフィックドライバーをOSのスナップショットに自信を持って階層化できます。OSTreeは、各リビジョンの「デルタ」(差分)のみを提供することにより、システム更新のストレージと帯域幅のオーバーヘッドを最小限に抑えます。

MicroOSとBtrfsスナップショット

openSUSEのMicroOSはUbuntu Coreと同様に、主にIoTやその他の単一目的の用途向けに設計されました。しかし、現在はopenSUSE Aeonという名称で完全なデスクトップ環境に対応しています。MicroOSはBtrfsスナップショットを使用しており、現在実行中のルートファイルシステムのクローンを作成して更新を適用した後に、新しいルートファイルシステムを次回のブートターゲットとしてマークします。このアプローチはOSTreeとは異なりますが、Btrfsスナップショットを使用すると、複数の起動可能なシステムイメージを維持することに伴うストレージ要件も、コピーオンライト動作によって最適化されます。

コンテナ化されたアプリケーション

変更が実行中のアプリケーションやサービスに影響を与える可能性があるため、多くの場合はシステムの更新後に再起動することが推奨されますが、アプリケーションのアップグレードに同じ要件を求めることは、システムの動作が不必要に中断される可能性があるため望ましくありません。

この問題を解決するために、前述の改変不可OSでは、ベースOSから独立して実行され、OSのファイルシステムの一部とは見なされない、コンテナ化されたデスクトップアプリケーション(Docker、Flatpakなど)を利用します。そのようにすることで、システムの起動(および管理)にとって重要であるとはみなされないアプリケーションやサービスに対する可変性のレベルを制御できます。このメカニズムにより、独自の頻度で、再起動を必要とせず、基になるシステムの回復性を損なうことなくアプリケーションを更新できます。

snap

snapも改変不可のアプリケーションです。snapは、インストールされた時点で、アプリケーションと必要なすべての依存ファイルを含む完全な自己完結型パッケージです。これらの要素は、改変不可のsquashfsファイルシステムにバンドルされています。つまり、「snap化された」ソフトウェアはホストシステムのライブラリや設定を変更したりそれらに依存したりしないため、ホスト間の一貫性と予測性をもたらします。

snapのアップグレードプロセス中にパッケージ全体がアトミックに置き換えられ、ユーザーデータがバージョン間でコピーされ、アプリケーションは常に一貫性を維持し、その結果として部分的な更新によって発生することが多い問題のリスクが軽減されます。

また、snapは「厳密な隔離」と堅牢な署名および検証プロセスを通じて、さらなるセキュリティ上の利点も提供します。開発者がSnap Storeにsnapをアップロードする際、snapは詳細なセキュリティレビューの後に、開発者のアカウントに登録されているキーで署名されます。snapdを実行しているLinuxディストリビューションがsnapをダウンロードしてインストールするときに、Snap Storeの公開キーに対して署名が検証されます。このような仕組みによって、snapが改ざんされていないことやsnapが信頼できるソースから提供されていることが保証されます。

Ubuntu Coreで改変不可性とコンポーザビリティを両立する方法

しかし、snapを支える技術はデスクトップアプリケーションのディストリビューションを超えています。Ubuntu Coreにより、このセキュリティと安定性の理念はUbuntuオペレーティングシステム全体を構成するコンポーネントにも同様に応用できます。

Ubuntu Coreでは、OSを単一の改変不可の「BLOB」として扱うのではなく、個別のコンポーネントに分割します。たとえば、Ubuntu Coreのベースは次の4つの主要なsnap上に構築されます。

  • ガジェット:システムのブートローダー、パーティションレイアウト、およびsnapのデフォルト構成を定義します。
  • カーネル:Linuxカーネルとハードウェアドライバーが含まれています。
  • ベース:実行中のアプリケーションをサポートするために必要なサービスとユーティリティのみが含まれている最小限のUbuntu OSイメージです。
  • snapdUbuntu Coreシステム内のすべてのsnapのライフサイクルを管理します。

OS snapをこのイメージ上にレイヤーとして追加して、デスクトップ環境などのオペレーティングシステムの他の要素を有効化できます(この詳細は次のセクションで説明します)。

さらにアトミックに

OSを構築するためのこのような構成可能なアプローチは、多くの重要な利点をもたらします。まず、ユーザーは単一目的のアプリケーションの実行に必要なコンポーネントのみで合理化されたUbuntu Coreイメージをアセンブルでき、OSのフットプリントと潜在的な攻撃対象領域の両方を最小限に抑えることが可能になります。

その他の利点は、あらゆるタイプのsnapを独自の頻度で更新でき、デバイスを再起動する必要性が大幅に下がることです。たとえば、ロールアウト(およびロールバック)をきめ細かく行い、ネットワーキングスタックの更新をカーネルとは異なる頻度で実行するようにできます。

チャネルによって生み出されるさらなる柔軟性

snapのもう1つの特長は、更新を配信するためのチャネルの使用です。各snapには、安定、候補、ベータ、エッジの4つの標準チャネルがあります。これらのチャネルにより、ユーザーはソフトウェアに求める先進性を選択できます。安定チャネルは最もテストが行われており、信頼性が高いものです。その一方で、エッジチャネルにはアプリケーション発行者からの最新の変更が含まれています。このようなモデルを使用することにより、ユーザーは自身に適したリスクレベルを選択できます。

また、チャネルは段階的なロールアウトや簡単なロールバックも可能にします。開発者や管理者は、更新をすべてのユーザーにロールアウトする前に、テストとして一部のユーザーのみにプッシュできます。更新で問題が発見されれば、簡単に以前のバージョンにロールバックできます。snap単位で管理できるため、システムの中断を最小限に抑えることが可能です。

Linuxデスクトップ用Ubuntu Coreの可能性

舞台裏で、CanonicalチームはIoTの領域を超えて、特に開発者や日常的に利用するユーザーの観点からUbuntu Coreの利点を積極的に探求してきました。

セキュアブート、リカバリ状態、ハードウェアによる暗号化などのUbuntu Coreに固有のプロパティによって、ユーザーのPCのセキュリティ体制に大幅に改善をもたらしています。

また、モジュール性の概念がユーザー体験に導入され、ユーザーは安定性の高い署名済みの安全なLTSベースを維持しながら、選択肢としてデスクトップ環境のsnapを試すことができます。

さらに、snapチャネルの使用により、ディストリビューションの特定の要素を「ロール」するという概念も活用されています。たとえば、ゲーマーは、Ubuntu DesktopチームがSteam snapでの取り組みの一部としてMesaに対して行った方法と同じやり方で、利用可能になった時点で最新のNVIDIAドライバーを提供するカーネルチャネルをオプトインできます。

ただし、このような安定性とセキュリティのレベルはプロ開発者やアマチュア開発者にとってトレードオフを伴い、「正常に動作する」体験を優先してベースOSの改変を制限します。デバイスをオープンソース開発のプラットフォームとして考えている開発者にとっての解決策は、LXDベースCrostiniと同様のコンテナベースの環境です。アマチュア開発者にとっては、従来のUbuntuイメージは引き続きシステムの完全な制御(およびシステムに対する責任)を実現するための好ましい手段です。

詳細

今後数か月、Ubuntu Coreの背後にある理念と未来の用途について深く掘り下げていきます。最新情報を入手するには、このページの横にあるセクションでニュースレターにご登録ください。

また、詳細は以下のリンク先をご覧ください。

ニュースレターのサインアップ

Ubuntuニュースレターの配信登録

お客様が購読登録を行われる場合、以下の条件に同意されたことになります。Canonicalのプライバシーに関するお知らせ個人情報保護ポリシー

関連記事

常時接続フリートにおけるOTAとテレメトリの管理

私のブログ記事を過去2年間読んでくださっている方は、自動車業界がおそらく今日の最も革新的な業界であることをご存知でしょう。実際、世界でも極めて価値の高い企業が、電気自動車(EV)、自動運転(AD)、人工知能(AI)に携わっています。他の革新と同様、この革新にも一連の課題が伴います。 私は、理解や習得が最も難しいテクノロジーが、必ずしも最も複雑に見えるテクノロジーとは限らないことに気づきました。OTA(Over-The-Air)更新とフリートのテレメトリの管理は、今日の自動車業界において最も有望なテクノロジーですが、複雑に見えるテクノロジーでもあります。 OTAの隠れた力 OTA更新は、車両の価値を根本的に覆す可能性を持っています。リモートでのソフトウェアとファームウェアの […]

リアルタイムLinuxに関するCTO向けガイド

リアルタイムシステムおよびそのユースケースと仕組みを理解する 最近の予測によると、2025年には世界のデータの30%近くがリアルタイム処理を必要とします。制御システム、産業用エッジサーバー、PLC、ロボット、ドローンなどを駆動する産業用PCとリアルタイム機能への需要は高まる一方です。ワークロードによって必要なリアルタイムパフォーマンスやサイクルタイムは異なりますが、リアルタイムコンピューティングは今後もますます普及するというのがアナリストの見解です。 また、ソフトウェアがハードウェアデバイスや周辺機器を綿密にサポートすることで、Linuxカーネルを介したリアルタイムコンピューティングが活躍しています。カーネルにリアルタイム機能を持たせる多くのアプローチの中で、PREEMP […]

EdgeTech+ 2024にてCanonicalがAIソリューションを展示!

Edge Tech+ 2024がいよいよ開催されます!日本の産業DXとAI技術の最前線を体験できるこのイベントに、Canonicalがスポンサーとして参加いたします。エッジAIやIoTデバイスに最適なオープンソースソリューションを提供する当社のブースは、生成AIゾーンにございますので、ぜひお立ち寄りください。 イベント情報 テーマ別セミナー Canonicalセミナー情報:AI-Readyプラットフォーム – Ubuntu on Nvidia JetsonEdge Tech+では、Canonicalによるテーマ別セミナーも開催します。「AI-Readyプラットフォーム: Ubuntu on Nvidia Jetson」をテーマに、AI対応プラットフォームとエンタープライズ […]