FUSE(Filesystem in Userspace)とは,一般のアプリケーションと同じように「ユーザー空間」で稼働するプログラムとしてファイル・システムを実装するための仕組みです。ファイル・システムを比較的簡単に実装できるので,実用性を度外視したような実験的なファイル・システムの作成や,特殊用途向けのファイル・システムの作成などに向いています。

 例えば,百科事典サイト「Wikipedia」の記事やWebメール・サービス「Gmail」のメールを通常のファイルのように読み書き可能にする「WikipediaFS」や「GmailFS」などがFUSE上に実装されています。

 実用的なファイル・システムも多数開発されています。Linuxで「NTFS」の読み書きに利用する「ntfs-3g」は,FUSE上に実装されたファイル・システムです。

 カーネルのライセンスに縛られず,好きなライセンスでファイル・システムを開発できるのもFUSEの利点です。例えば,米Sun Microsystems社が開発した高機能ファイル・システム「ZFS」は,Linuxカーネルのライセンス(GPLv2に例外条項を加えたもの)と適合しないため,カーネル内には取りこめません。しかし,FUSE上に実装された「ZFS on FUSE」を利用すれば,LinuxでもZFSを利用できます。

 これらの利点がある半面,処理速度的にはどうしても不利になります。カーネル内に実装されたファイル・システムを利用する場合に比べ,CPUに割り当てる実行空間(ユーザー空間とカーネル空間のいずれか)を切り替える「コンテキスト・スイッチ」が発生する回数が増えるからです。

 コンテキスト・スイッチには,CPUのレジスタ情報の保存や復帰など多くの処理が必要です。そのために本来のファイル・システム処理に割く時間が相対的に少なくなってしまいます。入出力性能が半分以下になるケースも珍しくありません。ただし,HDDなどの比較的処理速度の遅いデバイスを利用する場合は,性能差は小さくなります。

 FUSEは,2005年10月に公開されたLinuxカーネル「2.6.14」以降で利用可能です。