unionfs

似たような仕掛けは昔からUNIXにもあって,unionfsというファイルシステムが知られている.もともとはサンが開発したTranslucentファイルシステム(で提案されたアイデア)を4.4BSDのスタッカブルファイルシステム機構上に実装したのがunionfs.基本的なアイデアファイルシステムの階層を重ねて,変更があった場合はcopy on writeセマンティクスで扱うというもの.つまり,下位層はread onlyにして,変更があった場合は最上位層だけに反映する.この仕組みを使えば,前エントリで書いた/binの例や,さらに削除したファイルを復活させることも可能である.unlink(2)を実行した段階では,最上位層のディレクトリエントリにファイルが消えたというマーク(ホワイトアウト)を付けるだけで,上位層がunmountされるまで,下位層のファイルはそのままにしておく.ここで,ホワイトアウトのマークをクリアすれば,ユーザからは消したはずのファイルが見えるという具合だ.
Plan9のユニオンディレクトリの場合は,copy on writeセマンティクスではないので,削除したファイルの復活という用途には使えないな.
あと,4.4BSD系のUNIXにはnullfsってのもあるけど,bind(2)っぽいな.