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やディスクブロックに記録されているのではなく.