筆者は考えられる限りのあらゆる「Linux」ディストリビューションを使用してきた。シンプルすぎるものから、見事なまでに複雑なものまで、さまざまなものを使った。OSに実装可能な仕掛けや小技はほぼすべて見てきたが、セキュリティと使いやすさを等しく高めた新しいLinuxがついに登場した。筆者のように、この2つを兼ね備えたLinuxを探していた人は、続きを読んでほしい。
「Vanilla OS」の初の公式リリースが、一般向けに先頃公開された。以前にこのLinuxディストリビューションをテストしたときは、大いに興味をそそられた。そのため、完成版のリリース準備が整ったと開発元が発表したとき、ぜひとも試したいと思ったことは分かってもらえるはずだ。
筆者はテスト体験を終えて、大きな感銘を受けた。その理由を説明しよう。
セキュリティを重視したOS
セキュリティ重視のOSと聞くと、さまざまな考えが頭に浮かぶと思うが、そのうちの1つは「複雑そう」だろう。Vanilla OSの以前のリリースでは、不変性のために「Almost」が使用されていた。これらの初期リリースをテストしたときは、魅力的ではあるが、決してユーザーフレンドリーではないと感じた。
新しいリリースで、開発元はAlmostから「ABRoot」に移行した。Almostが使われていたときは、不変性を有効または無効にするために、2つのコマンドのいずれかを使用する必要があった。以下のようなコマンドだ。
- 読み取り/書き込みの場合:sudo almost enter rw
- 読み取り専用の場合:sudo almost enter ro
Almostの問題は、読み取り専用モードを有効にしても、ルートファイルシステム内にファイルを作成できてしまうことだった。問題は他にもあり、「/home/」「/etc/」「/var/」という3つの重要なディレクトリーは不変性の対象にならない。
そこで開発元は、2つのルートパーティション(A⇔B)間で完全に原子性が担保されたトランザクションを可能にするABRootに切り替えることにした。
開発元はこれを以下のように説明している。
ABRootは、AとBという2つのルートファイルシステム間でのトランザクションによって、(原子性を)実現する。たとえば、新しいパッケージをインストールするとしよう。ABRootは、どのパーティションが現在のルートパーティション(すなわちA)なのかを確認してから、その上にオーバーレイをマウントしてトランザクションを実行する。トランザクションが成功した場合、オーバーレイは未来のルートパーティション(すなわちB)にマージされる。次回の起動時に、システムは自動的に新しいルートパーティション(B)に切り替わる。障害が発生した場合は、このオーバーレイが破棄されて、システムは通常どおり起動し、どちらのパーティションも変更されない。
それを理解できるか確かめるために、htopコマンドをVanilla OSにインストールしてみよう。これには2種類の方法があり、apxパッケージマネージャーを使用するか、ABRootを使用する。apxを使う場合、システムのリソースへのアクセスが制限されたコンテナー内にhtopがインストールされるが、問題なく機能する。
apxでhtopをインストールするには、以下のようなコマンドを実行する。
apx install htop
インストールのために、sudoを使用して権限を昇格させていないことに注目してほしい。これは意図的にやっている。
もう1つのインストール方法は、ABRootを使用するものだ。こちらの方が複雑で、インストール後に再起動が必要になる。たとえば、以下のコマンドでhtopをインストールできる。
sudo abroot exec apt install htop
この方法でhtopをインストールすると、システムを再起動するまでhtopを使用できない。これは、新たにインストールされたアプリケーションを含む新しいルートパーティションにまだ切り替わっていないからだ。
Vanilla OSには「Flatpak」と「AppImage」のサポートも含まれている。Flatpakアプリは「GNOME Software GUI」内からインストールすることもできるため、コマンドラインを使わなくてもアプリケーションをインストールできる。