Immutable OSについて
2025年秋、KDEコミュニティではKubuntu 25.10のリリース、KDE Plasma 6.5のバックポート・リリースとイベントが続きました。
これらを追いかけているうちに、KDE Linuxというディストリビューションを知りました。KDEプロジェクト謹製です。KDE Plasmaのショーケースのようですが、その役割ならすでにKDE Neonが担っています。
(何故今更新しいディストリビューションを)
と情報を手繰っていたところ、Immutable OSという考え方にあたりました。すでにLinuxディストリビューションの世界では珍しくない考え方のようです。
大まかな概念としては「ユーザーとOSの分離を強くすることでセキュリティを強化する」ものようです。そもそもOSとユーザーは実行時こそ保護階層によって分離されていますが、ファイルの視点では現在のLinuxディストリビューションは当たり前のようにユーザーがOSを弄り回す設計になっています。これを改めるわけですね。
Immutable OSという名前は、源流をたどるとプログラミング言語のImmutable変数ブームにたどり着くようです。そしてそれゆえに、この名前に反対する人をよく見かけます。
というのは、Immutable OSと呼ばれるLinuxディストリビューションの多くが目指しているのはOSを不変にすることではないからです。当然ですがOSの内部状態は実行中に変わります。アップデートも行われます。ImmutableOSが目指すことはOSとユーザーの間を明確に分離して、ユーザーがOSを改変できないようにすることです。そして分離に関していえば、Immutable OSではOSコアとパッケージ管理システムの間が一つの境界のようです。
Immutable OSにおいては、パッケージ管理とアプリケーションパッケージはユーザー側に押しやられています。aptのような旧来のパッケージ管理システムはユーザーが操作してOSの機能を変更できますが、ユーザーが操作して恣意的に変更できるようでは不変とは言えません。したがってImmutable OSのパッケージ管理ソフトはユーザー・アプリケーションばかりを扱います。
このようにImmutable OSと呼ばれるLinuxディストリビューションは、おおよそ「分離によってOSコアのモジュール性を高める」方向に向かっています。Fedraはこの点に注目したのか、一連のImmutable OSディストリビューションをFedra ATOMIC DESKTOPSとしてブランド化しています。
私の目に飛び込んできたKDE LinuxはKDEプロジェクトが手掛けるImmutable OSで、どうやら
- KDE Plasmaの最新ショーケース。
- KDE Plasma開発者用のワークステーション。
- 一般ユーザー用の安定した環境。
の全てを担うようです。最新ショーケースと安定した環境という矛盾した要件に対して、OSとデスクトップを含むユーザーの分離によってアプローチするつもりなのでしょう。野心的と言えます。開発リソースがKDE Desktopから分散してしまうことを懸念しているユーザーもいます。
KDE LinuxのOSコアはArchLinuxですが、上に書いた理由でpacmanパッケージ管理システムは意図的に削除されています。代わりにパッケージ管理はKDE DesktopのDiscoverが担っています。DiscoverはFlatpakとSnapに対応しているほか、PackageKitにも対応していて、これらは仮想化を使うなどしてOSコアに影響を与えないインストールを実現しています。
ところで、コアOSという言葉から
(そういえばUbuntu Coreなんてのがあったな)
と思いだしました。IoT向けにCannonicalがやっているプロジェクトです。
調べてみると、改変不可のLinuxデスクトップベースとしてのUbuntu Coreという面白い記事がありました。Ubuntu Coreを使ってImmutable なデスクトップ・ディストリビューションを作るアイデアの考察です。
Immutable OSは安全性と安定性の上で大きなメリットがありますが、一方で見た柔軟性については疑問があります。そしてユーザーから見た柔軟性とは、新しいデバイスへの対応や、機能的のカスタム化であったりもします。この点について考察するために、リンク先ではImmutable OSの実装方法についてサーベイを行っている点が興味深いです。
また、安定性と言う視点では「アップデート時にトラブルがあった場合の対応」についても書いています。具体的にはアップデート時にトラブルがあった際、システムを巻き戻せるか否かです。
モジュール性を高めたOSコアのアップデートは、要するにOS抽象化レイヤー以下をそっくり入れ替える操作です。抽象化レイヤーインターフェースは変わらないので、OSアップデートが可能ならOS巻き戻しも可能なはずです。この点はパッケージ管理をユーザー側に押しやったImmutable OSの強みと言えます。
OSカーネルにユーティリティーツール、果てはそれらのパッケージ管理からデスクトップまでをひっくるめて「ディストリビューション」としたことは、Linuxのユーザーエコシステムの発展に大きく寄与しました。一方で、すべてに対して一貫した管理を要求されるディストリビュータの負担は極めて大きいです。
また、本来rootと一般ユーザーを分離するのがUnixの流儀だったはずなのですが、パーソナル領域に降りてきたLinuxではユーザーが権限昇格してOSをいじり倒すのが当然のような雰囲気になってしまいました。セキュリティ上問題であるのは言うまでもありません。
Immutable OSは、OSコア、パッケージ管理、デスクトップ、ユーザー環境(/home以下)を分離することで管理と更新の負荷を下げ、セキュリティーを強化しています。面白い方向です。
当面の間、私はデスクトップLinuxとしてKubuntuを使いますしそれで困らないでしょう。しかし気が付いたら周りはImmutableOSばかりという時代はそう遠くないかもしれません。
Discussion