bind

Plan9ファイルシステムには,ハードリンクもシンボリックリンクもない.名前空間のトポロジはbindを使って動的に変更できる.つまり,トポロジの情報はファイルシステムではなく*1カーネルが把握している.

現在の名前空間の構成はnsで調べることができる.例えば,/binはどうなっているんだろう?

cpu% ns | grep /bin
bind  /386/bin /bin 
bind -a /rc/bin /bin 
bind -a /usr/oraccha/bin/rc /bin 
bind -a /usr/oraccha/bin/386 /bin 

/386/binは名前から想像できるように,IA32用の実行バイナリである.この辺に複数のアーキテクチャを想定した分散OSっぽいところが垣間見られるが,その話はまた後で.

*1:静的にinodeやディスクブロックに記録されているのではなく.