Plan 9
http:/remoty3/
2016/01/01 追加 現在やっていること
2016/02/17 補足 u9fs
http:/u9fs/index.html
2016/05/12 改訂 rc
http:/rc/index.html
2016/05/12 改訂 rc
http:/rc/rc2.html
2017/06/08 改訂 MacFUSE 9P Bridge
http:/fuse/index.html
2017/06/12 追加 Plan9port
http:/p9p/index.html
2017/06/13 改訂 u9fs
http:/u9fs/index.html
2017/06/17 改訂 Plan9 のインストール
http:/install/index.html
Plan 9 第3版ロゴ |
---|
古い解説と新しい解説が入り乱れています。 --- そのうちに整理しましょう
さらに、半年前の記事が現在では修正を要する場合もあります。書かれた日付を見て判断してください。
定年退職の結果、引越ししました。
http://p9.nyx.link
(旧 http://plan9.aichi-u.ac.jp)
http://ar.nyx.link
(旧 http://ar.aichi-u.ac.jp)
1. Plan 9 とは
1.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
- Filing Subject: Computer Plan 9
- date: 07/24/1995
- Classification: cleared
- Collection Name: AT&T Corporate
- エンドユーザの自由度が飛躍的に向上した事
- 分散配置されたマシンを高度に統合性できる事
- システム編成が柔軟に行える事
- 高度なセキュリティ機構を備えている事
- 新しいバックアップメカニズムを備えている事
1.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 人目である。
1.3. Plan 9 のインストールと運用
- ハードウェアガイド(2014/04/30 改訂)
- インストール (2017/06/17)
- トラブルとその対策 (2017/06/17 改訂)
- Plan 9 システム(2002/08/28 改訂)
- Step by step システムアップ(2001/06/10)
- 配布ファイルの更新 (2002/07/29)
- システム管理(2005/05/14 改訂)
- FTP サービス (2001/06/12 改訂)
- ssh の設定 (2002/08/28)
- Plan 9 Web Server Pegasus (2014/11/23 改訂)
- カーネルの再構成(2002/08/31)
1.4. Plan 9 の香り
- Dumpfs - 魔法の箱 - (1998/06/14)
- DOSSRV - DOS File Interface - (1998/08/08)
- 名前空間 ( namespace ) (2001/06/09 改訂)
- ファイルシステム (2001/06/09 改訂)
- Plan 9 のセキュリティ (2001/06/28 改訂)
- プロセス(process) (2002/03/10)
- Rc - the Plan 9 shell (1)- (2016/05/12 改訂)
- Rc - the Plan 9 shell (2)- (2016/05/12 改訂)
- リモートログイン (2002/08/28)
- Plan 9 版の make (2003/11/05)
- venti - a Plan 9 new archiver - (2003/10/26 追加)
- 新しいファイルシステム fossil (2004/10/17 改訂)
- 第5版で予想される fossil の姿 (2004/10/16)
- 認証エージェント factotum (2005/08/06 改訂)
- スパム対策 (2004/10/22)
- ユーザ none (2004/11/07)
- Plan 9 Web Servers (2004/12/22)
- ネットワーク (2005/05/13)
- パイプ(pipe) (2005/05/20 改訂)
- Plan 9 によるグリッドコンピューティング (2005/08/05 更新)
- オープン FD とセキュリティ (2007/05/19)
- Tarfs (2007/09/06)
1.5. プログラミング
1.6. UNIX との違い
- UNIX 基礎講座(98/08/23 追加)
- Unix とのコマンドの違い
- Plan 9 の実際
- Unix との違い (2002/02/13)
- ディレクトリの許可ビット (2005/04/23)
- Apache の sandbox 化が困難な理由の解説 (2014/09/07)
1.7. Tips
1.8. その他
- 研究室のサーバを自宅からマウントする(import の解説) (2001/07/01)
- Panasonic CF-C33 に Plan 9 をインストール (2002/07/05)
- Plan 9 について(2002/08/31)
- 9fans からの情報 (2007/10/13)
- 筆者のシステム(2007/05/19 改訂)
- Fversion (2007/10/10)
- Spam Mail (2007/10/17)
- VIA mini-ITX (2007/12/21)
- Plan9, 9front, NIX (2012/09/11)
- CWFS (2012/10/20)
- EeePC 901 にPlan 9 をインストール (2016/02/01)
2. Plan9と他OSとの相互運用性
2.1. 概観
2016/03/29
2.1.1. mount
マウントはリモートマシンのファイル参照、転送の初心者向けのインターフェースを提供する。
mount request | 評価 | command | comment |
---|---|---|---|
plan9 → plan9 | ◎ | 9fs |
|
plan9 → unix | ◎ | 9fs or srvssh |
注1 |
unix/win → unix | ◎ | sshfs |
|
unix → plan9 | ◯ | 9pfuse |
注3 |
9fs
の場合 unix 側で u9fs
を動かす。srvssh
の場合も u9fs
のインストールが必要。srvssh
は ssh ポート(22番) を利用したファイルシステムである。この点で sshfs
と似ているが仕組みが異なる。9atom 付属の ssh2
が良い。注3: Plan9 port が必要。ただし Mac の場合、コードの修正が必要。
http:/fuse/
を見よ。(他の OS でも同様な修正が必要かも...)
2.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 |
2.1.3. 9vx
unix 側に Plan9 のミニ環境を構成する方法もある。例えば VirtualBox で Plan9 が動く。(Parallels では動かない)
しかし VirtualBox の場合は、ホストの unix 側とのインターフェースがとりにくい。(ファイル転送や Copy&Paste)
Russ の 9vx を使う方法だとインターフェース問題は解決されるが、Macでは(現在) 9vx は動かない。それに drawterm の方が簡便であろう。
2.2. Drawterm
unix/OSX あるいは windows から Plan9 の CPU サーバーにリモートアクセスする。GUI ベースの端末であり、サーバーのファイルがマウスを使って編集できる。
一時期、OSX に関してよく落ちることがあった。原因は Russ の Drawterm では Mac の Carbon が使用されており、このことが問題を引き起こしていたためである。2015年にAppleはXQuartzプロジェクトを成功させた1。現在では XQuartz の下に美しい X11 アプリケーションが動く。今年(2016)に入って Cinap も Drawterm をリリースした。この drawterm では Mac 用は XQuartz が利用されている。これは安定して気持ち良く動く。
なお、Russ の Drawterm は現在 David du Colombier がメンテしている。
注1: XQuartzのインストールが必要である
- X11 および OS X について
https://support.apple.com/ja-jp/HT201341
- drawterm by Russ
https://swtch.com/drawterm/
- drawterm from David du Colombier
httpd://github.com/0intro/drawterm
- drawterm by Cinap
https://code.9front.org/hg/drawterm
2.3. u9fs
Unix を Plan 9 にマウントする (2017/06/13 改訂)
U9fs is a file server that can run on Linux, FreeBSD and MacOS. U9fs is used for mounting unix file system on Plan9. It is easy to install U9fs to Linux and FreeBSD. However MacOS is somewhat different and need much more instructions. In addition, utf-8 encoding of file and directory names of MacOS is called UTF8-MAC, which makes some problems. The fix is also instructed.
u9fs は Linux、FreeBSD、MacOS など unix 系の OS で動く簡易ファイルサーバーである。unix のファイルを Plan9 にマウントするのに使われる。LInux と FreeBSD では設定が簡単なのだが、MacOS は曲者で、詳しい解説が要求される。
ここでは特に MacOS の u9fs に焦点が当てられている。また、MacOS の UTF8:MAC の文字コードを Plan9 側に出さないためのパッチが含まれている。
2.4. 9PFUSE
2017/05/28 更新
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。
最新の OSXFUSE(osxfuse-3.5.8.dmg) の下で 9PFUSE を使う場合にはパッチが必要である。この点に関して筆者の詳しい記事が次にある。(2017/05/28)
- MacFUSE 9P Brigde
http:fuse/index.html
注1: FUSE の技術は文献[1]に詳しい。
注2: /System/Library/Extensions/9p.kext
注3: コマンドで使う場合は十分に実用になっていると思う。Finder では、ファイルを生成する操作で問題が発生している。また数千あるいは数万のファイルを次々とサーバーにアップロードした場合に Busy 状態になる。原因不明。
注4: これは正しくないらしい。マウントができた。(2017/06/16)
ネットの記事
- v9fs: Plan 9 Resource Sharing for Linux
http://landley.net/kdocs/Documentation/filesystems/9p.txt
- The 9p filesystem
http://landley.livejournal.com/48698.html
- Venkateswararao Jujjuri, Eric Van Hensbergen, Anthony Liguori, Badari Pulavarty
VirtFS—A virtualization aware File System pass-through
https://www.kernel.org/doc/ols/2010/ols2010-pages-109-120.pdf
(2010)
http://www.slideshare.net/ericvh/virtfs
(slide)
- Example Sharing Host files with the Guest
http://www.linux-kvm.org/page/9p_virtio
- 9pfuse
https://swtch.com/plan9port/man/man4/9pfuse.html
2.5. Plan9port
2017/06/13
Plan9port とは unix への Plan9 ソフトウェアの移植集である。作者は Russ Cox。勿論、Plan9 のソフトウェアの中には移植不能のものも存在するが、それでもかなり多数のソフトウェアが移植されている。直ちに役立つ有益なツールは Plan9 の標準シェルとエディタではないかと思う。
Plan9port のインストールの方法を紹介する。
Plan9port http:p9p/index.html
2.6. 消えゆくプロトコル
LANの中で発達した NFS は消えていくだろう。
CIFSもサポートが打ち切られるだろう[3]。
- Plan 9 NFS Server (2003/01/11 改訂)
http:nfs/
- Plan 9 CIFS Server Aquarela (2005/05/24 改訂)
http:aquarela/
2.7. 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
3. 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 であったが、また再開されている)
- マニュアル検索 (Plan 9 from 9front)
- Bell Labs Plan 9 Page
- Web Archive Plan9 Page
- Bell-labs Page (from web-archives)
- Alef User's Guid (only for history)
- Alef Language Reference Manual (only for history)
- Plan 9 Wiki
- Sources from Bell-labs
他に Net で見かけたミラー
https://9p.io/
(David du Colombier)
4. 現在やっていること
2016/01/01
Grid Computing をもう一度考え直してみたいと思っています。
Plan9 コミュニティでは 10 年前に Grid Computing で盛り上がっていたのですが、技術的な目標をクリアする目処がはっきりした段階で、熱が冷めてしまったようです。このコミュニティは技術屋さんの集まりですから... 当時、コミュニティが Grid に求めていたのは並列計算ですが、求めるものが悪かったのかもしれません。それでも、マルチドメイン認証など、大きな成果を得ました。
最近はビッグデータが話題になります。データの自動収集が可能になり、記憶装置が安価になった結果、巨大なデータを保存するようになり、その解析が要求されるようになったのですね。問題は、このデータをどこで解析するかです。現在は Web 全盛ですが、Web のように、クライアントにデータをコピーする訳にはいきません。データが大きすぎるのです。しかしプログラムはデータに比べて圧倒的に小さいのです。するとプログラムをサーバーに運んでサーバー側で処理するのが正しい考え方です。これは Web の HTTP とは逆の考え方です。
クライアント側の任意のプログラムをサーバーに運んで実行するので、サーバーのセキュリティが大問題になります。サーバーを守るためには、サーバーには一切の書き込みを許さないのが一番良いのですが、他方ではクライアントのプログラムをサーバーで実行し、結果を受け取れないといけません。そんなことが可能か? あなたならどうします?
Plan9流の回答が http:9grid2/index.html
にあります。
5. My Softwares for Plan 9
5.1. Pegasus
Pegasus は Plan 9 で動くウェブサーバで、Plan 9 らしい特徴を持っています。- ユーザ毎の名前空間のカプセル化
- 強力な CGI 環境
- 柔軟な編成手段
- 実ホスト、仮想ホスト(IP base and name base)、実ホストのユーザー
- SSL サポート
- 基本認証/ダイジェスト認証
- WebDAV サポート
5.2. Kirara
Kirara は Plan9 のためのフルテキスト・デスクトップ・サーチエンジンです。詳しくは
を見てください。
5.3. Rit
Rit の名前の由来は Rc In Text である。Rit はプログラム埋め込み型のテキストプロセッサである。その点で PHP と似ているのだが、埋め込まれるのは Plan9 のシェルスクリプト rc である。
従って Rit を使うには殆ど新しいルールは現れない。唯一つ、ドル記号 "$" が Rit を特徴づけている。
Rit は一般的なテキストプロセッサであるが、Javascript と相性が良く、CGI プログラミングで威力を発揮する。
5.4. Remoty
Remoty はブラウザから操作するホームページ管理ツールです。ファイル管理だけではなく、テキストファイル(もちろん HTML ファイルも)の編集や、システムコマンドが実行できます。
サーバ上のファイルが直接編集できるので、サーバー環境の下での結果が直ちに確認できます。ftp や scp などを使ってファイルをアップロードする必要がなく、効率良くホームページを作れます。CGI プログラミングで特に威力を発揮します。
5.5. Plisten
A protected listener5.6. その他
6. Plan 9 関係へのリンク
6.1. 海外(団体)
http://plan9.bell-labs.com/plan9/
Bell Labs Plan 9 Page
http://www.vitanuova.com
Vita Nouva
http://v9fs.sourceforge.net/rfc/
Rfc 9p2000 (draft)
http://9front.org/
9front
http://www.9atom.org/
9atom
http://www.9legacy.org/intro.html
9legacy
http://lsub.org/ls/research.html
LABORATORIO DE SISTEMAS
http://cat-v.org
CAT-V
6.2. 海外(個人)
http://research.google.com/pubs/r.html
Robe Pike
http://swtch.com/plan9port/
Plan 9 port to other OS by Russ Cox
http://swtch.com/
Russ Cox
http://www.terzarima.net/plan9/
Charles Forsyth
http://www.fywss.com/plan9/
Steve Kotsopoulos
http://lsub.org/who/nemo/
Fco.J.Ballesteros
http://ants.9gridchan.org/
ANTS by Mycroftiv
http://www.9gridchan.org/antfarm/
ANTS by Mycroftiv
http://www.collyer.net/who/geoff/9/
Geoff Collyer's Plan 9 software
http://9front.org/cinap.html
Cinap Lenrek
http://www.9netics.com/
Skip Tavakkolian
http://mirtchovski.com/p9/
Mirtchovski
http://mirtchovski.com/p9/thesis.pdf
学位論文 (Mirtchovski)
https://www.kix.in/plan9/
Anant
http://9grid.net/
John Floren
6.3. 国内(俺のもあるよと言う人は知らせて下さい)
http://d.hatena.ne.jp/oraccha/
Plan9 日記
http://www.geocities.co.jp/SiliconValley/6131/plan9/
http://plan9.aichi-u.ac.jp/netlib/
(My netlib for Plan 9)
6.4. Web 上の記事
- Plan 9 (MIT での講義ノートらしい)
http://pdos.csail.mit.edu/6.828/2007/lec/l-plan9.html
- Plan 9 From Bell Labs (学生のプレゼンテーション用らしいが良くできている)
http://www.kix.in/plan9/freed07-plan9.pdf
- A filesystem from Plan 9 space
http://lwn.net/Articles/137439/
- Why Plan 9 is not dead yet And What we can learn from it (Ron Minnich)
http://www.cs.unm.edu/~fastos/05meeting/PLAN9NOTDEADYET.pdf
- Security in Plan 9 (Russ Cox,Eric Grosse,Rob Pike,Dave Presotto,Sean Quinlan)
http://swtch.com/~rsc/talks/nauth.pdf
6.5. News Group
現在のメーリングリストのアドレスは9fans@9fans.net
から配布されている。登録の方法は
http://plan9.bell-labs.com/wiki/plan9/mailing_lists/
http://p9.nyx.link/wiki/mailing_lists/
(mirror)
http://mail.9fans.net/listinfo/9fans
(recommend)
アーカイブは
7. Papers