Virtual File System
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Virtual File System(VFS、仮想ファイルシステム)は、実際のファイルシステムの上位に位置する抽象化層である。VFSの目的はクライアントアプリケーションが様々なファイルシステムに同じ方法でアクセスできるようにすることである。例えば VFS を使うと、クライアントアプリケーションはローカルな記憶装置にもネットワーク上の記憶装置にも透過的にアクセスできるため、その違いを意識する必要がない。あるいは、Microsoft Windows、Mac OS、UNIXといったオペレーティングシステムの違いを超えてファイルシステムの違いを意識することなくアクセスすることが可能となる。
VFSは、カーネルと実際のファイルシステムとのインターフェイスあるいは規約を定義している。従って、その規約に従うことで簡単に新たなファイルシステムをカーネルに追加することができる。規約の条件はリリースの度に非互換な変更を加えられる可能性があり、ファイルシステムは新たなリリースに対応するために修正を施したり、再コンパイルする必要がある。あるいは、オペレーティングシステム側で規約変更を下位互換を保つように行っていれば、各ファイルシステムは新たなバージョンのオペレーティングシステムでもそのまま使用可能となる。
[編集] 実装
UNIX系システムでの最初の Virtual File System 機構は、サン・マイクロシステムズが SunOS 2.0 に導入した。その時点で、ローカルなUFSファイルシステムとリモートのNFSファイルシステムを透過的に使用することができた。このため、サンから NFS のコードをライセンス供与されたUNIXベンダー各社は、サンの VFS の設計をコピーすることが多かった。他のファイルシステムを追加することが容易になり、サンは VFS 機構を利用して MS-DOSのFATファイルシステムを実装した(SunOS 4.1 まで出荷されなかった)。SunOS の実装は System V Release 4のVFS機構の基盤となった。
John Heidemann は、実験的な Ficus ファイルシステムのために SunOS 4.0 で 「スタッキング(stacking)」VFS を開発した。この設計は、実装は異なるが意味的には同等のファイルシステム間でコードの再利用を可能にした(例えば、暗号化ファイルシステムは暗号化されていない他のファイルシステムのファイル名管理とストレージ管理のコードを利用することができた)。Heidemann はこの成果を 4.4BSD でも使用した。Mac OS Xを含む BSD 系のOSでは、彼の Stacking VFS のコードが使われている。
その他のUNIX系システムでの VFS 機構として、System V Release 3の File System Switch、Ultrixの Generic File System、Linux の VFS などがある。OS/2とMicrosoft Windowsでは、VFSと同等の機構を Installable File System と呼ぶ。
[編集] 外部リンク
以下、英文