Logo address

Plan 9

2014/11/23 改訂 (Remoty)
2016/01/01 追加 現在やっていること
2016/02/17 補足 http:/u9fs/index.html
2016/05/12 改訂 http:/rc/index.html
2016/05/12 改訂 http:/rc/rc2.html

9logo
Plan 9 第3版ロゴ
me
ここは Plan 9 オペレーティングシステムの専門ホームページです。

古い解説と新しい解説が入り乱れています。さらに、Plan 9 は日々発展しているので、半年前の記事が現在では修正を要する場合もあります。書かれた日付を見て判断してください。

定年退官に備えてミラーサイトを作りました。
http://p9.nyx.linkhttp://plan9.aichi-u.ac.jp のミラーサイトです。
また
http://ar.nyx.linkhttp://ar.aichi-u.ac.jp のミラーサイトです。

1. ホームページの目的

このホームページの目的は、Plan 9 をトライする人の為に生きた情報を提供し、日本での Plan 9 の普及の一助とする事である。
そこで、この Plan 9 ページでは他の Web サーバと一味違った運営の方法をとろう。

2. ニュース

2014/11/23 改訂
Remoty 3.0
2014/10/30 改訂
Remoty 2.1
2014/10/30
Pegasus 2.8 (英文)
2014/09/16
Pegasus 2.7 (英文)
2013/10/30
Kirara
Kirara は Plan9 のためのフルテキスト・デスクトップ・サーチエンジンです。
2012/07/10
/dev/kprint の使い方
2012/10/20
CWFS
9front で採用されているファイルシステム CWFS の解説。
2012/09/11
Plan9, 9front, NIX
9front を巡る Plan9 の最近の動向の解説。
2007/12/21
VIA mini-ITX
PXE Load の解説が含まれています。
2007/10/29
Everything is a file
2007/10/17
Spam Mail
2007/10/17
Pegasus 2.5a をリリースしました。download Pegasus
2007/10/16
Ptt 3.2 と Remoty 1.1 をリリースしました。download ptt download remoty
2007/10/09
Rit 1.5 をリリースしました。テキストの処理範囲を指定できるようになりました。download
2007/10/02
Ptt 3.1 をリリースしました。
Ptt の紹介
Ptt マニュアル
Ptt マニュアル (英文)
2007/09/24
Remoty と Ptt をリリースしました。
Remoty (installation manual)
Ptt マニュアル
2007/09/23
Pegasus 2.5 をリリースしました。
ドキュメント(英文)
ソース
また Pegasus 関連のアプリなどはここをご覧下さい。
2007/09/17
Rit 1.4 をリリースしました。
Rit 1.4 ドキュメント(英文)
Rit 1.4 ソース
2014/10/30 改訂
Remoty
2007/09/06
Tapefs
古いメモですが公開します
2007/09/01
CPU サーバの自動リブート
自動リブートを可能にする手作り回路です
2007/08/29
download u9fs for Mac OSX
Mac OSX 用の u9fs です。「ダ」などが正しく表示されます。
2007/08/29
MacFUSE 9P Bridge
2007/08/26
研究室の空調工事のために停止していたサーバーが再開されました。
2007/05/19
オープン FD とセキュリティ
2007/05/12
CPU サーバ ar を故障のため、交換しました(05/02)。暫くは新しいマシンのチューニングのために、時々サービスを停止します。ご了解ください。
なお、交換のプロセスを日誌風に纏めています。興味のある方はご覧下さい。
2007/02/23
Pegasus 2.4 をリリースしました。ソースは http://plan9.aichi-u.ac.jp/netlib/pegasus/ に置かれています。変更点は http://plan9.aichi-u.ac.jp/pegasus/eman-2.4/ を見てください。なお Pegasus 2.4 では WebDAV がサポートされています。
2007/02/07 追加
WebDAV と OSX クライアント
2007/02/02
Pegasus 2.4 実験運用開始。トラブルがあるかもしれません。またサーバーの動作に変なところがあれば知らせてもらえると幸いです。
2007/01/20
Pegasus 2.4 (draft)
2007/01/20
WebDAV と Windows クライアント
2007/01/20
Pegasus 2.4, CGI/1.1 and WebDAV
2006/12/15
IWP9(International Workshop on Plan 9) の写真を追加
2006/12/18
Pegasus 2.3 をリリースしました。ソースは http://plan9.aichi-u.ac.jp/netlib/pegasus/ に置かれています。またマニュアルは http://plan9.aichi-u.ac.jp/pegasus/eman-2.3/http://plan9.aichi-u.ac.jp/pegasus/eman-2.2/ を見てください。現在のところ英文のみ。
2006/08/26
Pegasus 2.2 をリリースしました。ソースは http://plan9.aichi-u.ac.jp/netlib/pegasus/ に置かれています。またマニュアルは http://plan9.aichi-u.ac.jp/pegasus/eman-2.2/ を見てください。現在のところ英文のみ。下手な英語で申し訳ありません。
2006/08/19
Pegasus 2.2 実験運用中。トラブルがあるかもしれません。またサーバーの動作に変なところがあれば知らせてもらえると幸いです。
2005/06/19
ウェブ頁作成ツール pttを公開します。これは筆者がウェブ頁の作成に使っているツールです。rit の利用も考慮されていて、Pegasus のCGI プログラムも容易に作成できます。
2005/08/06 更新
認証エージェント factotum
2005/08/05 追加
Plan 9 のグリッドツールキット
2005/06/19 追加
ウェブ頁作成ツール ptt
2005/06/19 更新
Plan 9 によるグリッドコンピューティング
2005/05/21 改訂
トラブルとその対策
2005/05/20 改訂
Pipe
2005/05/14 改訂
TCPポートのアクセス制御(2)
2005/05/13 改訂
プロセス管理
2005/05/10 追加
TCPポートのアクセス制御(2)
2005/05/10 改訂
Unix を Plan 9 にマウントする
2005/05/08 改訂
トラブルとその対策
2005/05/07 改訂
Pipe
2005/05/03 改訂
rc - the Plan9 shell -
2005/05/01 追加
Plan 9 によるグリッドコンピューティング
2005/05/01 改訂
Plan 9 CIFS Server Aquarela
2005/04/23 追加
ディレクトリの許可ビット
2005/04/22
Pegasus 2.1 をリリースしました。詳しくは Pegasus 2.1 マニュアル
2004/12/26 改訂
Rit ver.1.2
2004/12/24 追加
Rit ver.1.2
2004/12/22 改訂
Plan 9 Web Servers
2004/12/21 追加
Rit ver.1.1
2004/12/20 追加
Rit ver.1.0
2004/12/11 追加
su ver.1.4
2004/11/07 追加
9fans からの情報
2004/11/07 追加
ユーザ none
2004/11/07 改訂
CAP を使ったプログラム
2004/11/04 改訂
CAP を使ったプログラム
2004/11/02 改訂
CAP を使ったプログラム
2004/10/29 訂正
CAP を使ったプログラム
2004/10/27 改訂
時刻同期
2004/10/25 追加
CAP を使ったプログラム
2004/10/22 追加
スパム対策
2004/10/22 改訂
acme の解説(その1)
2004/10/17 改訂
新しいファイルシステム fossil
2004/10/16 改訂
第5版で予想される fossil の姿
2004/09/28 追加
スクリーンショット
2003/08/25
システムが更新されました。設定などの不備により、トラブルがあるかもしれません。
2003/02/14
Pegasus 2.0a の webm にバグがありました。新しい webm
Microsoft IE は plain text を正しく受け取りません。他のブラウザをご利用ください。
2003/02/06
マニュアル検索を第4版に合わせて改訂しました。(遅ればせながら)
2003/01/11
Pegasus 2.0a がリリースされました。2.0 のバグ訂正です。
Down load: pegasus-2.0a.tgz
2003/01/05
Pegasus 2.0 がリリースされました。詳しくは、Pegasus プロジェクトを見てください。
Down load: pegasus-2.0.tgz
2002/12/15
Pegasus 2.0 実験運用を開始しました。正式リリースは来年になりそうです。
2002/10/04
Pegasu 1.2 の TODO に関してセキュリティ上の問題がありました。Pegasus 1.2a の TODO に従ってください。
Pegasus 1.2a (for Plan 9 v4) released
Down load: pegasus-1.2a.tgz
2002/09/01
Pegasus 1.2 (for Plan 9 v4) released
Down load: pegasus-1.2.tgz
2002/08/06
システムが第四版に改訂されました。また Web のサーバも Pegasus 1.2 の実験運用が開始されました。システム設定の不備のためトラブルがあるかも知れません。
2002/05/26
Pegasus 1.0b (for Plan 9 v3) --- Pegasus 1.0a のバグ修正版
Pegasus 1.1a (for Plan 9 v3) --- Pegasus 1.1 のバグ修正版
Down load:
pegasus-1.0b.tgz
pegasus-1.1a.tgz
2002/05/10
NEXTSTEP のための u9fs パッチ (Plan 9 第4版)。
download u9fs
2002/05/06
Pegasus 1.1 版がリリースされました。これは 1.0a 版をPlan 9第4版に移植しただけのものです。仕様は基本的に 1.0 と同じです。第4版の認証サーバは基本認証をサポートしなくなったらしいので etc/passwd で `*' の指定は行わないで下さい。
download pegasus-1.1.tgz
なお筆者のサーバはまだ第3版です。(夏休みに入らないと第4版に移行できません。)
従って Pegasus 1.1 のテストは充分とは言えません。(問題があれば知らせて下さい。)
Plan 9 第4版の httpd は SSL (TLS) をサポートしているようです。Pegasus も次回の版でサポートする予定です。
2002/04/28
Plan 9 の第4版が2002年4月28日にリリースされました。誰でも以下のサイトから無料で手に入れられます。
http://plan9.bell-labs.com/plan9dist/
筆者のホームページの解説はまだ第4版には対応しておりません。
第3版の解説と第2版の解説の区別は日付で判断して下さい。2000年6月以前の記事は第2版に基づく記事です。
2002/04/26
Pegasus 1.0a 版がリリースされました。これは 1.0 版のバグ修正版です。
download pegasus-1.0a.tgz
サンプルが付いているので設定は分かると思いますが、不明な点はメールで問い合わせて下さい。(多分このホームページで解説されると思います。)

3. Plan 9 とは

3.1. 誕生

Plan 9 は1995 年に Bell 研究所によってリリースされた新しいオペレーティングシステムである。Bell 研究所と言えば UNIX を開発した事で知られている。Plan 9 は UNIX を開発した同じグループが、UNIX の現在抱えている問題点を整理し、問題を克服する為に提唱したオペレーティングシステムである。

彼らは、現在進行しているコンピュータの利用形態 - 分散環境 - に UNIX がもはや適合できなくなったと感じている。

ネットワークには多数の UNIX ワークステーションが繋がっているが、ばらばらに管理され、管理者の私的な好みによってソフトウェアがインストールされ、その結果ワークステーションは事実上特定のユーザによって私物化されている。
かっての UNIX はどの端末にも等しいサービスを行い、ユーザがどの端末から利用しても自分の構築した環境の下で作業できた。この良い面がワークステーションによる分散環境の中で消失している。

UNIX の利用者がホストコンピュータから離れ、ワークステーションを使いたがるのは、
ワークステーションの下にはマウスとグラフィックスを使ったユーザフレンドリな環境があるからである。このような利用法を維持しながら、ネットワークに接続されているコンピュータたちをあたかも1つのコンピュータのように見せ、かっての UNIX のような、均一な、集中化された、しかもユーザの好みの環境を柔軟に構成できるオペレーティングシステムが必要であると彼らは考える。

Plan 9 はそのようなオペレーティングシステムを目指して開発された。

Dennis Ritchie による写真の説明 (2003/06/09 付けの 9fans の記事より)
Description: The Plan 9 system is now available for commercial research and development organizations. Members of the Computing Techniques Research Department, which developed the software, are (foreground, from left) Dennis Ritchie, Dave Presotto, Rob Pike, (background, from left) Tom Killian, Allen Eisdorfer, Tom Duff, Phil Winterbottom, Jim McKie, Howard Trickey and Sean Dorward. 2.Members of the Computing Techniques Research Department are in a lab setting, conversing with one another. BELL LABS NEWS JULY 24, 1995
Plan 9 は UNIX と比べて以下の特徴を持っている。
これらの特徴の多くは Plan 9 の名前空間の特異な性質と結びついている。

3.2. 現在のコミュニティ

2006/12/15 追加
Plan 9 のコミュニティはメーリングリスト 9fans を通じて活動を行っている。今年(2006)初めて国際的なワークショップをスペインのマドリードで開催した。日本からは筆者と佐藤さんが参加し発表を行った。最後に集合写真を撮った。(実際の参加者は 40 名弱である)

拡大写真

もっと多くの写真と参加者の発表論文やスライドは
http://cm.bell-labs.com/sources/contrib/iwp9-2006/
あるいは
http://lsub.org/iwp9/
から手に入る。
現在の Plan 9 開発の中心になっている Russ Cox さんは上から 2 段目の右から 2 人目である。今回初めて顔を合わせて、握手を求められたとき思わず "Oh, you are very young!" と言ってしまった。ちなみに筆者は前から 2 段目の左から 2 人目である。

3.3. Plan 9 のインストールと運用

3.4. Plan 9 の香り

3.5. プログラミング

3.6. UNIX との違い

3.7. Tips

3.8. その他

4. Plan9と他OSとの相互運用性

4.1. 概観

2016/03/29

4.1.1. mount

マウントはリモートマシンのファイル参照、転送の初心者向けのインターフェースを提供する。

mount request 評価 command comment
plan9 → plan9 9fs
plan9 → unix 9fs or srvssh 注1
unix/win → unix sshfs
unix → plan9 9pfuse 注3
他に Plan9 側のファイルシステムのマウントは WebDAV によっても可能であるが、Pegasus のインストールが必要である。WebDAV の設計はいかにも Microsoft 流であって嫌いである。

注1: 9fs の場合 unix 側で u9fs を動かす。srvssh の場合も u9fs のインストールが必要。srvssh は ssh ポート(22番) を利用したファイルシステムである。この点で sshfs と似ているが仕組みが異なる。9atom 付属の ssh2 が良い。
注ふ: Russ の Plan9 port が必要。大きなファイルの転送で不安定。9pfuse の動作を観察していると、unix に Plan9 の動作をシミュレートさせることの難しさがよく分かる。私的な名前空間を形成できないこと、named pipe へのマウントが Plan9 のように柔軟ではないことなどである。

4.1.2. cpu/drawterm

Plan9 の cpu コマンドはリモート実行と共にクライアントのファイルシステムをリモート側にマウントする。ホスト側のポートは 17010 である。また同時に Plan9 の認証サーバーも使われている。unix ホストで同様なサービスはできていない。(実現するのはかなり難しいだろう)

表に、cpu コマンドと類似のツールの有無をまとめる。

mount request 評価 command comment
plan9 → plan9 cpu
plan9 → unix
unix → unix
unix/win → plan9 drawterm 注3
注3: drawterm のオリジナル作成者は Russ であるが、現在では Cinap のものの方が良い。

4.1.3. 9vx

unix 側に Plan9 のミニ環境を構成する方法もある。例えば VirtualBox で Plan9 が動く。(Parallels では動かない)
しかし VirtualBox の場合は、ホストの unix 側とのインターフェースがとりにくい。(ファイル転送や Copy&Paste)
Russ の 9vx を使う方法だとインターフェース問題は解決されるが、Macでは(現在) 9vx は動かない。それに drawterm の方が簡便であろう。

4.2. drawterm

unix/OSX あるいは windows から Plan9 の CPU サーバーにリモートアクセスする。

一時期、OSX に関してよく落ちることがあった。原因は Russ の Drawterm では Mac の Carbon が使用されており、このことが問題を引き起こしていたためである。2015年にAppleはXQuartzプロジェクトを成功させた1。現在では XQuartz の下に美しい X11 アプリケーションが動く。今年(2016)に入って Cinap も drawterm をリリースした。この drawterm では Mac 用は XQuartz が利用されている。これは安定して気持ち良く動く。


注1: XQuartzのインストールが必要である

4.3. u9fs

4.4. FUSE

Plan9 を除く普通のOSではファイルシステムのコードはカーネルの中に存在し、そのことが新しいファイルシステムをOSに組み込むことを困難(開発が困難なばかりか、OSの配布者以外は事実上配布不可能)にしていた。Plan9 ではファイルシステムのコードをカーネルの外に置き、カーネルにはファイルシステムとのインターフェースに関するコードを置く。この考え方はFUSE(Filesystem in Userspace)として他のOSでも採用されつつある1

FUSEに相当する Plan9 のインターフェースは 9P である。FUSEが9Pを話せれば、Plan9 のファイルシステムをマウントできる。FUSEが9Pを話せるためにはカーネルのサポートが必要である。Macではすでにカーネル拡張としてサポートされている2。最近の 9pfuse は気持ち良く動く3
9Pを話すファイルサーバーが Plan9 以外にはなかったが、最近は Qemu でやれるらしい。

u9fs はなぜか 9pfuse ではマウントできない4
現在のu9fsの設計はパーソナルユースの域をでない。
ちゃんとした u9fs を作れば、unix の分散ファイルシステムの主流になれるのに...
クライアント環境はFUSEによって整備されたのだ。
samba は SMB 由来のため unix では使いづらいだろう。


注1: FUSE の技術は文献[1]に詳しい。
注2: /System/Library/Extensions/9p.kext
注3: そうでもない。遅いし不安定なことがある。文献[2]によると、FUSEの内部でのファイル管理に問題があるらしい。Plan9流にはなっていない。path を管理しているとか。このことが問題を起こす場合がある。
注4: 次のエラーメッセージ
-bash$ 9pfuse /srv/mmac /n/mmac
9pfuse: fsmount: fid unknown or out of range

ネットの記事

4.5. 消えゆくプロトコル

LANの中で発達した NFS は消えていくだろう。
CIFSもサポートが打ち切られるだろう[3]。

4.6. References

[1] CS135 FUSE Documentation
https://www.cs.hmc.edu/~geoff/classes/hmc.cs135.201109/homework/fuse/fuse_doc.html
[2] Mounting HDFS
https://wiki.apache.org/hadoop/MountableHDFS
[3] 最新のWindowsはSMB 1.0/CIFSのサポートを削除できる
http://www.atmarkit.co.jp/ait/articles/1501/19/news092.html

5. Mirror of Plan 9 Articles

ATT 分割以降の、Bell-labs が辿った苦難の歴史を簡単に纏めておく

1984	ATT 分割 → Bell-labs は ATT Technologies(= 旧 Western Electric) 傘下に
1992	Plan 9 Operating System (first edition)
1995	Plan 9 Operating System (second edition)
1996	ATT Technologies → Lucent Technologies
2000	Plan 9 Operating System (third edition)
2002	Plan 9 Operating System (fourth edition) 9P2000
2002	Jan Hendrik Schön 事件
2007	Lucent Bell Laboratories and Alcatel Research 合併 → Alcatel-Lucent
2015	Nokia and Alcatel-Lucent 合併へ → Plan 9 page is closed?

現在は Plan9 の開発とサポートは Bell-labs から離れ、9front と 9atom に移っている。
Bell-labs には今やかっての開発スタッフはいない。Google に移ってしまった。そのために Bell-labs の Plan9 関係の Web ページの維持ができなくなっている。(しばらく closed であったが、また再開されている)

他に Net で見かけたミラー

6. 現在やっていること

2016/01/01

Grid Computing をもう一度考え直してみたいと思っています。
Plan9 コミュニティでは 10 年前に Grid Computing で盛り上がっていたのですが、技術的な目標をクリアする目処がはっきりした段階で、熱が冷めてしまったようです。このコミュニティは技術屋さんの集まりですから... 当時、コミュニティが Grid に求めていたのは並列計算ですが、求めるものが悪かったのかもしれません。それでも、マルチドメイン認証など、大きな成果を得ました。

最近はビッグデータが話題になります。データの自動収集が可能になり、記憶装置が安価になった結果、巨大なデータを保存するようになり、その解析が要求されるようになったのですね。問題は、このデータをどこで解析するかです。現在は Web 全盛ですが、Web のように、クライアントにデータをコピーする訳にはいきません。データが大きすぎるのです。しかしプログラムはデータに比べて圧倒的に小さいのです。するとプログラムをサーバーに運んでサーバー側で処理するのが正しい考え方です。これは Web の HTTP とは逆の考え方です。

クライアント側の任意のプログラムをサーバーに運んで実行するので、サーバーのセキュリティが大問題になります。サーバーを守るためには、サーバーには一切の書き込みを許さないのが一番良いのですが、他方ではクライアントのプログラムをサーバーで実行し、結果を受け取れないといけません。そんなことが可能か? あなたならどうします?

Is it possible to accept both requirement?

Plan9流の回答が http:9grid2/index.html にあります。

7. My Softwares for Plan 9

7.1. Pegasus

Pegasus は Plan 9 で動くウェブサーバで、Plan 9 らしい特徴を持っています。
また
など web サーバとしての基本的な能力も持っています。

7.2. Kirara

Kirara は Plan9 のためのフルテキスト・デスクトップ・サーチエンジンです。
詳しくは
を見てください。

7.3. Rit

Rit の名前の由来は Rc In Text である。
Rit はプログラム埋め込み型のテキストプロセッサである。その点で PHP と似ているのだが、埋め込まれるのは Plan9 のシェルスクリプト rc である。
従って Rit を使うには殆ど新しいルールは現れない。唯一つ、ドル記号 "$" が Rit を特徴づけている。
Rit は一般的なテキストプロセッサであるが、Javascript と相性が良く、CGI プログラミングで威力を発揮する。

7.4. Remoty

Remoty はブラウザから操作するホームページ管理ツールです。
ファイル管理だけではなく、テキストファイル(もちろん HTML ファイルも)の編集や、システムコマンドが実行できます。
サーバ上のファイルが直接編集できるので、サーバー環境の下での結果が直ちに確認できます。ftp や scp などを使ってファイルをアップロードする必要がなく、効率良くホームページを作れます。CGI プログラミングで特に威力を発揮します。

7.5. Plisten

A protected listener

7.6. その他

8. Plan 9 関係へのリンク

8.1. 海外(団体)

8.2. 海外(個人)

8.3. 国内(俺のもあるよと言う人は知らせて下さい)

8.4. Web 上の記事

8.5. News Group

現在のメーリングリストのアドレスは 9fans@9fans.net から配布されている。
登録の方法は
に書かれている。

アーカイブは

9. Papers