この記事はPlan 9 Advent Calendar 2019の2日目です。
ベル研の公式ディストリビューションは、2015年1月に最後のメンテナだったGeoff Collyerさんが離職されたことにより、現在活動が停止していますが、代わりにコミュニティで派生したものがいくつかあり、現在はそれらを使う方が主流です。あまり情報がまとまっていないので、個人的に把握しているものについて今から始める人のために様子をまとめてみます。
Plan 9 from User Space (plan9port)
インストール方法は過去に書いたのでこちらを参照ください。
これはOSではなく、Plan 9ツールをUnixに移植したものです。当然、Plan 9カーネルが提供する名前空間の編成などは使えませんが、acme(1)エディタやrc(1)シェルなどをPlan 9ネイティブのものと同じように使えますし、9p(1)コマンドで各9pサービスが提供する名前空間も扱えます。date(1)などUnixと同名のコマンドも含まれていますが、既存のシェルスクリプトなどを壊さないために、通常はUnix側を優先するようになっています。Plan 9側のコマンドを使いたい場合、9 ls
のように9(1)で切り替えます。
おそらく、acme(1)またはrc(1)を使ってもらうのが実用的ですが、どちらも個性的なので最初は全然使い方がわからないと思いますので今後どこかで使い方を紹介する予定です。rc(1)はコマンドライン履歴の機能を持っていないので、rlwrapから起動すると良いでしょう。
開発はGitHubのIssueやPull Requestを使って行います。以前はRuss Coxさんがマージしていましたが、2019年後半あたりからDan Crossさんが主にマージしているようです。(plan9port-dev)
9front
確か2011年ごろ、Plan 9公式の更新が滞り始めた頃にforkしたディストリビューションです。新しいハードウェア、暗号スイートの追加などが行われているので、ネイティブで動作するPlan 9をインストールするには、9frontを使うのが一番簡単だと思います。
ただし現在、公式のPlan 9とは異なる部分がいくつかあります。例えばファイルシステムがcwfsまたはhjfsの2択で、公式が採用しているfossilはディストリビューションに含まれてさえいないので、本来の雰囲気を楽しみたい人には向きません。個人的にもインストールはしたことがありますが、使ってはいないので、参考リンクだけ。
開発は独自のMercurialリポジトリで行なっているようです。
9legacy
ベル研Plan 9からの変更をパッチとして提供しています。当然パッチ集なので、
など、慣れない環境でこれを行うのは大変です。Downloadページで、パッチを適用したISOイメージやディスクイメージも提供されているので、最初はこれらを使うのが良いでしょう。GoのGo Dashboardで稼働しているPlan 9は9legacyのはず。
メンテナはDavid du Colombier(@0intro)さん。 GitHubのplan9-contribにPull Requestを送るとたまに拾ってくれますが、このリポジトリは9legacyと同期されていないので、どういう基準でパッチが採用されているのかは分かりません。
plan9-rpi
Plan 9のRaspberry Pi用ポートです。メンテナはRichard Millerさん。最新のカーネルソースコードは/sources/contrib/miller/9/bcmにあるようです。公式サイト等は特になさそう?でした。
残念ながらRPi持っていないので使ったことはありませんが、RPi 4で動いたとの噂は聞いたことがあります。インストールはPlan9 on raspberry pi 3が良さそうな雰囲気ですが、URLが古いのでplan9.bell-labs.comを9p.ioに置き換えて読みましょう。
Harvey OS
Plan 9のコードをgccやclangでコンパイルできるように変更したディストリビューションです。ANSI/POSIX環境の拡張なども含まれているようです。ソースのビルドには、mkfileの代わりにbuild.jsonが使われます。
いつの間にかDockerイメージも作られるようになっていました。一応起動はしましたが、まだExperimentalなのでうまく動いてくれなかった...
$ docker run -ti --rm harveyos/harvey
ドキュメント
plan9.bell-labs.comのミラーが9p.ioに置かれています。Wikiやインストーラ等もミラーされているので、ドキュメントを参照したい場合はこれか、cat-v.orgを読むといいでしょう。