kledgeb UbuntuやLinuxの最新情報を紹介

Ubuntu 24.04 その3 - Ubuntu Core Desktopのアーキテクチャーとその構成

Ubuntu Core Desktopのアーキテクチャーとその構成

2023年8月11日、「Ubuntu Core Desktop」のアーキテクチャーとその構成が以下で紹介されています。


  • Ubuntu Core Desktop - Deep dive

いわゆるSnap版Ubuntu Desktop

以前紹介したように「Ubuntu Core Desktop」はいわゆるSnap版Ubuntu Desktopに相当する「Ubuntu Desktop」です。

  • Snap版Ubuntu Desktop登場・耐改ざん性を高めたもっとセキュアなデスクトップOS

毎年のように機密情報の漏洩など何かしらインシデントやアクシデントが起きている今日昨今ですが、それらは特にエンタープライズの分野で致命的な問題に発展しかねません。
「Ubuntu Core Desktop」はその分野に訴求できるOSになるのではないでしょうか。

Snap

Snapはソフトウェアのパッケージングやデプロイ、そしてそれらを管理するめの仕組みです。
すでに既存の「Ubuntu Desktop」にも導入されており、プリインストールされている「Firefox」はSnap版の「Firefox」になります。


実際にSnapで提供されるソフトウェアを管理しているのは「snapd」というソフトウェアになります。

Snapはそれぞれのソフトウェアを隔離して配置する仕組みを備えており、それぞれのソフトウェアがお互いが影響を与える範囲を最小化しています。
この仕組みをOSレベルで導入しているのが「Ubuntu Core」です。

  • Ubuntu Core


現在「Ubuntu Core」はIoTやエッジデバイスの分野に向けて提供されているOSですが、これをデスクトップOSにまで拡大しようというのが今回紹介する「Ubuntu Core Desktop」の取り組みになります。

OSを構成するためのコンポーネント

OSを構成するには様々な役割を持ったソフトウェアが必要になります。
カーネルやブートマネージャー、システムを管理するソフトウェアやアプリケーションなど、様々なソフトウェアでOSは構成されています。

それぞれの役割を大枠で分類しコンポーネント単位で見てみると、「Ubuntu Core Desktop」のコンポーネント構成は以下のような構成が考えられています。


これらのコンポーネントは目的に応じて中身のソフトウェアを入れ替えることができます。
またすべてのコンポーネントはSnapで提供されます。

1. カーネル

カーネルはOSの中核となるソフトウェアです。
このカーネルもSnapで提供されており、ユーザーの目的にあったカーネルに入れ替えることが可能です。
例えば低遅延カーネルに入れ替えたり、ゲーム向けに最適化されたカーネルが提供されているなら、ゲームユーザーはそのカーネルに入れ替えることが可能です。

2. Snapd

上記でも紹介したとおり、パッケージ及びソフトウェアを管理するためのソフトウェアです。
「Ubuntu Core Desktop」において中核となるソフトウェアです。
コンポーネントの構成変更や入れ替えは、この「Snapd」を通じて行うことになります。

3. ガジェット

ガジェットはブートローダーを提供したり、ファイルシステムやシステムの構成、ポリシーを構築するのに必要な情報を提供します。
例えばカーネルのオプションやファイルシステムの暗号化情報、セキュリティー要件を提供します。

4. ブートベース

ブートベースは最小限のシステムを起動するのに必要なルートファイルシステムを提供します。
加えてブートベースではディスプレイマネージャーも提供します。

ディスプレイマネージャーはユーザーから見ると、ログイン画面を提供するソフトウェアです。
ユーザーから見てログイン画面までを提供するルートファイルシステムあるいはコンポーネントだと思えば分かりやすいでしょう。

5. 追加ベース

追加ベースはそれぞれのSnapアプリが動作するために必要なファイルシステムを提供します。
複数のベースをサポートすることで、Ubuntuの様々バージョン向けにリリースされているソフトウェが期待通りに動作できるようになります。

例えばアプリケーションの実行環境を提供する「base snap」には、「Ubuntu 18.04 LTS」ベースの「core18」や「Ubuntu 22.04 LTS」ベースの「core22」があります。
これらのSnapには多くのSnapアプリが幅広く利用するライブラリーなどソフトウェアやリソースが含まれています。

複数のベースをサポートすることで、「Ubuntu Core Desktop」のバージョンに依存せず「core18」ベースで開発されたSnapアプリでも期待通りに動作できます。

6. Ubuntu デスクトップセッション

デスクトップセッションは、デスクトップユーザーがログインした時にそのログインしたユーザーを管理するための仕組みです。
これは既存の「Ubuntu Desktop」でも同様ですし、他のLinuxディストリビューションでも同様です。

既存の「Ubuntu Desktop」ではWayland環境でログインするWaylandセッションと、従来のX.org環境でログインするX.orgセッションがあります。
現在の「Ubuntu Desktop」のデフォルトのセッションは、Waylandセッションになっています。

この「Ubuntu デスクトップセッション」は既存の「Ubuntu Desktop」で提供しているWaylandセッションと同じデスクトップセッションを提供するコンポーネントです。
またこの「Ubuntu デスクトップセッション」はGNOME環境を提供します。
この「GNOME」は他のSnapアプリと同様にSnapにより隔離された環境に配置され、Snapが求めるセキュリティーの要件を満たせる範囲内で動作します。

「GNOME」がSnapによるセキュリティー上の厳しい制約を受けるため、デスクトップセッションを提供するために様々なデスクトップサービスを統合し連携して動作させる必要があります。
この辺の事情は次の機会に紹介される予定です。

7. アプリケーション

アプリケーションは文字通りユーザーが利用するSnapアプリのことを指します。
このアプリケーションにはデフォルトでプリインストールされるSnapアプリと、ユーザーが後から追加でインストールするSnapアプリがあります。

これらのSnapアプリは既存のアプリと同様に、Snapにより隔離された環境に配置され、Snapが求めるセキュリティーの要件を満たせる範囲内で動作します。
また「Ubuntu デスクトップセッション」が提供するデスクトップサービスと連携して動作します。

モデルアサーション

モデルアサーションとは「Ubuntu Core Desktop」を組み立てるのに必要なコンポーネント構成を定義するものです。
例えばOSに含めるSnap構成がモデルアサーションに含まれています。
このモデルアサーションを変更することで、「Ubuntu Core Desktop」の派生ディストリビューションやフレーバーの作成が可能になります。

Ubuntu Coreファイルシステム

さて各コンポーネントはSnapパッケージで提供されるソフトウェアであり、Snapソフトウェアは圧縮された読み取り専用の「squashfs」イメージで提供されます。
「Ubuntu Core Desktop」ではこれがOS起動時にマウントされ、ソフトウェアが動作できるようになります。

core22-desktopの例

例えばシステムの起動に使用するブートベースに「core22-desktop」Snapパッケージが利用され、「core22-desktop」にはシステムを起動するために必要な最小限の環境を提供します。
この「core22-desktop」の中身は、既存の「Ubuntu」のファイルシステムでよく見かけるファイル構成と似たような中身になっています。

sbin -> usr/sbin
libx32 -> usr/libx32
lib64 -> usr/lib64
lib32 -> usr/lib32
lib -> usr/lib
bin -> usr/bin
srv
opt
writable
root
snap
home
usr
boot
etc
var
meta
sys
proc
host
mnt
media
dev
run
tmp

OSを起動する時に環境によって異なる設定が必要になりますが、Snapは読み取り専用なのでこのままだとシステムに合わせた設定の変更ができなくなります。
もちろんこのままだとユーザーのホームフォルダーも読み込み専用になってしまいます。

読み書き可能な仕組み

そこで読み書き可能な仕組みが必要になります。
上記のファイルシステムの中に「/writable」ディレクトリーがありますが、これが読み書き可能な仕組みに利用されます。
「/writable」ディレクトリーの中身は以下のようになります。

lost+found
system-data
user-data

「/writable/system-data」ディレクトリーには、システムの設定や構成に必要な読み書き可能なファイルが配置されます。
例えば従来の「/etc」ディレクトリー内に配置されているファイル群がこれに相当します。

「/writable/user-data」ディレクトリーは、ユーザーのホームフォルダーに利用されます。
例えば「/writable/user-data/ユーザー名」は従来と同じように「/home/ユーザー名」にマウントされ、そのユーザーのホームフォルダーとして利用されます。

Bind mountで読み書き可能なファイルシステムを実現

読み書き可能なファイルは読み込み専用の「/writable」ディレクトリーの上にBind mountされ、ユーザーに読み書き可能なファイル群を透過的に提供します。

例えばマシンのホスト名を設定する「/etc/hostname」は、「/etc/hostname」の上に「/writable/system-data/etc/writable/hostname」がマウントされるため、ユーザーは違和感を覚えることなく読み書き可能な「/etc/hostname」にアクセスできます。

Ubuntu
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Linux その450 - Canonical LXD や MicroCloud にクライアントなりすましの脆弱性・アップデートを
    Canonical LXD や MicroCloud に重大な脆弱性 2026年10月28日、Canonical LXD や MicroCloud に重大な脆弱性がみつかりました。
  • Ubuntu 26.04 その82 - Linux kernel の脆弱性 CVE-2026-98432 の対応状況
    CVE-2026-98432 の対応状況 2026年11月2日、Linux kernel の脆弱性である CVE-2026-98432 の対応状況がアナウンスされました。
  • Linux Mint その294 - Linux Mint 27 の開発とリリース方針の変更・アラーム管理アプリの開発
    Linux Mint 月刊ニュース Linux Mint 開発チームは Linux Mint 月刊ニュースにて、Linux Mint の開発状況や取り組みを紹介しています。
  • Ubuntu 26.04 その76 - CVE-2026-92392 含む curl の脆弱性22件修正・アップデートを
    curl の脆弱性22件修正 CVE-2026-92392 含む22件の curl の脆弱性に対応したセキュリティーアップデートがリリースされました。
  • Ubuntu 26.10 その38 - Ubuntu 26.10 がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.10 リリース 2026年10月15日、Ubuntu 26.10 がリリースされました。
  • Ubuntu 26.04 その78 - eMudhra 認証局の秘密鍵の侵害・アップデートを
    eMudhra 認証局の秘密鍵の侵害 2026年10月20日、eMudhra 認証局(eMudhra CA)の秘密鍵の侵害が発覚しました。
  • Ubuntu 26.04 その79 - CVE-2026-111497 に対応した Brotli のリリース・アップデートを
    Brotli のセキュリティーアップデート 2026年10月26日、CVE-2026-111497 に対応した Brotli がリリースされました。
  • Ubuntu 26.10 その39 - Ubuntu 26.10 の新機能と変更点・既知の問題
    Ubuntu 26.10 の新機能と変更点・既知の問題 リリースノートから、Ubuntu 26.10 の新機能と変更点を紹介します。
  • Ubuntu 26.04 その77 - PHP に php2shell(CVE-2026-109618/CVE-2026-109619)の脆弱性・アップデートを
    PHP に php2shell の脆弱性 PHP に php2shell と呼ばれる致命的な脆弱性が見つかりました。
  • Ubuntu 26.04 その80 - Ubuntu 26.04.2 LTS のリリーススケジュール
    Ubuntu 26.04.2 LTSのリリーススケジュール Ubuntu 26.04.2 LTS のリリーススケジュールを紹介します。
記事のピックアップ
オプション