ftpfs
FTPクライアントを考えてみよう.UNIXの場合は独立したアプリケーションであり,コマンドラインインタプリタやコマンドはアプリケーションとして作りこむ必要がある.一方,Plan9は,リソースをファイルとして名前空間にマッピングするファイルサーバとして作るのが作法だ.このようにネットワーク透過にリソースを扱うことで,FTPサーバ上のリソースに対しても,grepやシェルスクリプトを使うことができる.
cpu% ftpfs ftp.ring.gr.jp 220 ring.ip-kyoto.ad.jp FTP server (Version wu-2.6.2(1) Sun Aug 1 15:32:09 JST 2004) ready. User[default = hoge]: anonymous 331 Guest login ok, send your complete e-mail address as password. Password: 230- 230- ################################################## 230- # Welcome to the RingServer FTP service. # 230- ################################################## 230- 230- Localtime [Mon Mar 6 22:52:20 2006 JST+0900] 230- Current [26] users / Max [100] users 230- 230- 230 Guest login ok, access restrictions apply. 215 UNIX Type: L8 Version: BSD-199506 257 "/" is current directory.
これで,/n/ftp/ring以下にFTPサーバが見えるようになった.このように名前空間を枝接ぎすることを,Plan9ではbindと呼ぶ.bindがUNIXのmountと違うのは,名前空間はプロセス毎に異なる点だ.つまり,(rioを使っているなら)あるウィンドウのプロセスには/n/ftp/ringが見えているが,別ウインドウのプロセスには/n/ftp/ringが見えないのだ.
bindを解除するときは,ftpfsをkillすればよい.
cpu% kill ftpfs | rc