v9fs
Linuxでもカーネル2.6.14からv9fs(9P2000ファイルシステム)がメインラインにマージされている.
使い方は簡単.ベル研のソースコードリポジトリをmountするときは,こんな感じ.
# modprobe 9p2000 # # mkdir /n/sources # mount -t 9P -o proto=tcp 204.178.31.8 /n/sources
また,Plan9portは,UNIX上でPlan9環境をエミュレートするコマンド群だが,v9fsにも対応している.例えば,Plan9portのacmdを動かすと,acmeプロセスの名前空間をv9fs経由でアクセスできる.
acmeを起動すると,"/tmp/ns.$USER.:0/acme"などというファイルが作られるので,次のようにmountする.namespaceは,"/tmp/ns.$USER.:0"を返すコマンド.先に挙げた例と違い"proto=tcp"じゃなくて,"proto=unix"となっているのは,UNIXドメインソケット経由で9Pをやりとりするから.
# mount -t 9P -o proto=unix,name=$USER,uid=`id -u`,gid=`id -g` `namespace`/acme /mnt/9
% lc /mnt/9 1 acme cons consctl draw editout index label new
で,
% echo Hello, world! >> /mnt/9/1/body
とか実行すると,acmeのウィンドウに"Hello, world!"の文字が表示される"じゃなくて">>"であることに注意.しばらくこれでハマった.">*1.もう少し詳しくは,acmeとwinを参照.
*1:">"じゃなくて">>"であることに注意.しばらくこれでハマった.