PC-BSDからTrueOSへ
PC-BSDプロジェクトは2016年9月1日(米国時間)、「PC-BSD Evolves into TrueOS」において、PC-BSDプロジェクトの取り組みを「TrueOS」へ発展させた(evolve)と発表しました。技術的にはこれまでPC-BSDで取り組んできた開発を継続しているといったもので、どちらかというとブランディング的な意味合いの強い名称変更ではないかと思います。
FreeBSDベースのディストリビューションはいくつかありますが、PC-BSDはiXsystems社という強力なサポートがあり、さらにPC-BSDの開発者がFreeBSDプロジェクトとも仲の良い関係にあるなど、かなり本命というか、FreeBSDベースのデスクトップ向けディストリビューションとして高いクオリティとサービスを実現してきました。
PC-BSDの開発は当初はデスクトップ向けのディストリビューションでしたが、途中からはサーバ向けのディストリビューションとしての色も帯びていきます。UbuntuやCentOSといったディストリビューションがデスクトップ版もサーバ版も提供しているように、PC-BSDもデスクトップ版とサーバ版の双方を提供するようになります。
当初はサーバ版を指してTrueOSといった言葉が使われる傾向にありましたが、今回名称をTrueOSに一本化することになったようです。このあたりの詳しい説明は11月にバークレーで開催予定のMeetBSDで詳しい説明があると思うので、その時にまた取り上げたいと思います。今回はTrueOSの主な特徴をまとめておこうと思います。
FreeBSD-CURRENTベース
TrueOSはFreeBSDの開発版ブランチであるFreeBSD-CURRENTをベースにしています。カーネルもベースシステムもパッケージもローリングリリースがベースとなります。企業が支援しているディストリビューションでここまで積極的に開発版をベースとしてローリングリリースを採用するのはなかなか珍しいのではないかと思います。
PC-BSDはこれまでPBIおよびPBI2と呼ばれるパッケージ管理システムを開発してきました。これはWindowsやMac OS Xのパッケージに近い性質のもので、単一のパッケージになるべくすべての関連物を同梱するというアプローチです。パッケージ単体のサイズは大きくなりがちですが、独立性が高いためバージョンアップもロールバックも簡単にできるという特徴があります。PBI2はPBIの短所である容量を食うといった点をいくつかの方法で解消しています。
その後、FreeBSDプロジェクトがパッケージ管理システムをpkg(8)へ移行させると、PC-BSDプロジェクトもpkg(8)に高い関心を示すようになります。開発当初はこのあたりのパッケージ管理システムに関しては結構な議論があった(サミットやカンファレンスで議論しているところを見ました)ようですが、最終的にpkg(8)を全面採用することになったようです。
FreeBSDプロジェクトはパッケージはpkg(8)、システムはfreebsd-update(8)でアップデートを実施しています。システムもpkg(8)にしようという取り組みは現在進められている途中にあって、FreeBSD 11.1-RELEASE以降での採用が予定されています。一方、TrueOSではすでにシステムのアップデートもpkg(8)で行うようになっています。ローリングリリースで細かくシステムをアップデートするにあたって、システムもpkg(8)で扱った方が良かったためだと見られます。
細かい制御もできるようですが、最終的にはシステムもパッケージも自動アップグレードが有効で、一旦インストールしたらアプリケーションやシステムを再起動するごとに自動的に最新のものにあがっていくといったスタイルになっていくものと見られます。この方法はすでにChromeやFirefoxなどの主要ブラウザが採用していますが、PC-BSDはもっと細かい周期でさらにオペレーティンスシステムも含めてこれを実現することになります。
ここまでアグレッシブにアップデートすると、しかもFreeBSD-CURRENTがベースですし、なにか問題があってシステムが起動しなくなることがあるんじゃないかと思われますが、これに関しては「Boot Environments」という仕組みを導入することで回避しているようです。問題があった場合にはフェールセーフできるようにしているようですし、そのあたりも考えてあるようです。
Luminaデスクトップ
デスクトップを利用するユーザからみた場合にもっとも注目を引かれるのがデスクトップ環境としてLuminaを採用していることでしょう。こういった場合にはGNOMEやKDE、軽量な環境を求める場合にはXFce4やFluxboxなどを採用することが多いのですが、TrueOSの開発者はPC-BSD時代に次の考えに至っています。
「KDEやGNOMEはどんどんLinuxに依存した機能を使うようになってきていて、移植し続けるのが多大な努力を要するようになっている。作業は膨大だが、Linuxと完全に同じ機能を有効にすることは難しく、労力の割に合っていない。しかも、必要としていないソフトウェアの移植も行わないといけないし、もっと軽量で自分の使いたい機能が使える環境が欲しいが存在していない」
そこで開発者らは最近のデスクトッププロトコルに対応しつつ、軽量で、さまざまな機能をプラグイン的に組み合わせて利用できるフレームワークの開発に着手します。GNOMEやKDEは全部ビルドして利用することになりますので膨大です。Luminaではコア部分はすべて実装し、それ以外の部分は必要に応じて組み合わせて利用できるようにしています。こうすることで軽量でありながら個々の要望には応えられる環境の実現を目指してきたというわけです。
LuminaはTrueOSに限らず、ほかのディストリビューションでも有力な候補になる可能性があります。まず、ほかの*BSD系ディストリビューションで採用できますし、Linux系ディストリビューションでも軽量高速でカスタマイズ性の高いデスクトップフレームワークとしてかなり有力な候補といえます。Linux特有の機能に依存しないので、そのあたりもさまざまなシーンで扱いやすくなっています。
LibreSSLをデフォルト採用
OpenSSLに重大なセキュリティ脆弱性が発見されてから、OpenBSDプロジェクトはOpenSSLをフォークしてLibreSSLを発足させます。OpenSSLから不要なコードを削除し、セキュアではないコーディングをセキュアに書き換え、小さく、見通しのよいライブラリに書き換えを進めるというものです。その後LibreSSLは着実に開発を続け、OpenSSLプロジェクトが継続してセキュリティ脆弱性の修正を発表する中、すでにLibreSSLにはそのセキュリティ脆弱性は存在していないといった状況が続きました。
TrueOSではシステムデフォルトのライブラリにOpenSSLではなくLibreSSLを採用しています。ベースとしているFreeBSD-CURRENTは依然としてOpenSSLをデフォルトのライブラリとして採用していますので、この部分はTrueOS独自の取り組みということになります。すでにFreeBSDから派生したHardenedBSDやDragonFly BSDもLibreSSLをデフォルト採用にしています。FreeBSDプロジェクトは*BSDプロジェクトとしては規模が大きいプロジェクトですが、互換性を重視しこうしたベースシステムの変更には慎重なところがあります。TrueOSやほかの*BSDの取り組みがFreeBSDプロジェクトの取り組みに影響を与えることも考えられます。
SysAdmとAppCafe
システムの管理はSysAdm、アプリケーション管理はAppCafeから実施できます。このあたりは主要なLinuxディストリビューションとよく似ていますが、注目されるのはSysAdmです。TrueOSをサーバとしてセットアップした場合、サーバ側のSysAdmをデスクトップ側から管理できる点です。複数台のTrueOSサーバを1台のTrueOSデスクトップから管理できることを意味しています。
趨勢を見て変わり続けるPC-BSD/TrueOS
PC-BSD/TrueOSは時代の流れを見て積極的に新しい取り組みを進めているように見えます。特にジョーダン氏がiXsystemsに就任してから、この取り組みが活発化しているように見えます。TrueOSの優れたところは、そうした取り組みがベンダ独断で進むのではなく、FreeBSDプロジェクトと積極的に関係を持ちながら進めていることでしょう。プロジェクトもベンダもいい関係を築くことでよりよいものが生み出せるというひとつのサンプルを見ているようです。