Filesystem in Userspace (FUSE) はUnix系OS用のソフトウェアインタフェースである。権限を持たないユーザがカーネルコードを修正することなく独自のファイルシステムを作成できる機能を提供する。これは、ファイルシステムのコードをユーザ空間で実行することでなされるもので、その際FUSEモジュールは実際のカーネルインタフェースへの「橋渡し」しか提供しない。
FUSEは自由ソフトウェアであり、GNU General Public LicenseとGNU Lesser General Public Licenseに基づきリリースされている。FUSEのシステムは元々A Virtual Filesystem (AVFS) の一部だったが、SourceForge.net上で独立したプロジェクトとして分離された。
FUSEはLinux、FreeBSD、NetBSD (PUFFS)、DragonFly BSD (PUFFS)、OpenSolaris、、Android、およびmacOSで利用できるhttp://osxfuse.github.io/。FUSEはメインストリームLinuxカーネルツリーに、カーネルバージョン2.6.14から公式にマージされたhttp://www.linux.com/archive/feature/47839 。
ISCライセンスに基づきSylvestre Gallonが再実装したFUSEが2013年5月にリリースされhttp://openbsd.7691.n7.nabble.com/Fuse-and-sshfs-support-for-OpenBSD-td224422.html、同年6月にOpenBSDへと組み込まれたhttp://marc.info/?l=openbsd-cvs&m=137027468819965。
仮想ファイルシステム FUSEは仮想ファイルシステムを書くために特に有用である。伝統的なファイルシステムとは異なり、仮想ファイルシステムはディスクに対して実際にデータを読み書きしない。それらは既存のファイルシステムやストレージデバイスのビューや翻訳として振舞う。
原則として、FUSE実装で利用可能なリソースはどれでもファイルシステムとしてエクスポート可能である。
移植 FreeBSD用のFUSE Fuse4XはmacOSへのFUSE移植(現在はOSXFuseへ統合)である。 MacFUSEはmacOSへの古いFUSE移植であるが、既にメンテナンスは終了している。 OSXFuseはmacOSへのFUSE移植で、MacFUSEの後継である。 WindowsユーザモードファイルシステムライブラリであるDokanとfuse4winはWindows用のFUSE APIである。 NetBSDは6.0より基盤システムによるFUSEのサポートを開始した。 MINIX 3はバージョン3.2.0より基盤システムにFUSEのサポートを開始した。
利用例
ネットワーク・リモートファイルシステム : WebDAV、SFTP、FTP、FTPS、およびAmazon S3を実装する商用ファイルシステム。 Transmit : MacFUSEを通じてWebDAV、SFTP、FTP、およびAmazon S3サーバをFinder内のディスクとしてマウントできる機能も追加する商用FTPクライアント。 : FUSEを用いてSFTP/FTP/S3/Swiftを実装した商用ファイルシステム。 SSHFS : SSH経由でリモートファイルシステムへのアクセスを提供する。
CurlFtpFS : FTP/SFTPロケーションにアクセスするためのファイルシステム。 Lessfs : インラインのLinux用データ重複除外ファイルシステム。LZOやQuickLZの圧縮および暗号化をサポートする。 (旧名 Kosmos filesystem): FUSEを通じてマウントすることで、既存のLinuxユーティリティでCloudStoreへの通信できるようになる。 UsiFe : イントラファイルの暗号化を可能とする、柔軟性のあるファイルシステム。ファイルの一部を選んで暗号化と復号を行い、それらを表示できる。 mtpfs : Creative Zen music playersのようなMTPデバイスをマウントする。 djmount : UPnP AVデバイスのメディアコンテンツをマウントする。 PyMMBfuse : PyMMBプロジェクト用FUSEドライバ。MMCフラッシュカード上のBBC Microcomputeディスクイメージへのアクセスが可能となる。
クラウドストレージ・オンラインサービス rclone : Amazon S3、Google Drive、Microsoft OneDrive、Dropboxなど、多数のクラウドストレージに対応し、rclone mountによってこれらをFUSEファイルシステムとしてマウントできる。 copy-fuse : Copy.comに保存されたファイルへのアクセス用のPython FUSEレイヤー。 Wuala : マルチプラットフォームでJavaベースのOS統合分散ファイルシステム。ファイルシステム統合にFUSE、MacFUSE、およびCallback File Systemのいずれかを使う。さらにファイルシステムに加え、Javaが動作するウェブブラウザからアクセス可能な、Javaベースのアプリケーションも統合する。 GmailFS : Gmailのメールとしてデータを保存するファイルシステム。 GAEDrive : Google App Engineベースのネットワークストレージ。 gae-filestore : Google App Engineの仮想ファイルシステムライブラリ。 s3fs-FuseOverAmazonS3 : Amazon S3に裏打ちされたFUSEベースファイルシステム。ローカルファイルシステムの読み書き用にバケットをマウントする。ファイルやフォルダをネイティブにかつAWS上に透過的に保存する。 s3fs-c : Amazon S3に裏打ちされたファイルシステム。s3fsからフォークされAWS Management Consoleのような他のS3クライアントと互換性を保つよう書き換えられている。 SoundCloudFS : LinuxシステムをSoundCloud streamsへマウントするためのオープンソースファイルシステム。ユーザがソフトウェアを選んでファイルを開くことが可能である。 fuse-exfat : オープンソースのexFATファイルシステムの実装。ファイルシステムの作成と読み書きが可能。 LR|FS : Adobe Lightroomカタログ用のmacOSファイルシステム。MacFuseが必要。 boxfs : box.netアカウント上のファイルにアクセスするためのファイルシステム。 UsiFe : イントラファイルの暗号化を可能とする、柔軟性のあるファイルシステム。ファイルの一部を選んで暗号化と復号を行い、それらを表示できる。
分散ファイルシステム GlusterFS : 数ペタバイトまでスケールアップ可能なクラスタ分散ファイルシステム。 Lustre (ファイルシステム) : サン・マイクロシステムズによるクラスタファイルシステム。FUSEを使ってユーザ空間で実行することが可能であり、FreeBSDへも移植されている。ただしLustreのZFS-Linux移植版はユーザ空間内でZFSのDMU (Data Management Unit) を起動する。 HDFS : FUSE bindingsがHadoop分散ファイルシステム用に存在する。 Sector File System : のSectorは大量の商品コンピュータ用に設計された分散ファイルシステムである。Sectorはマウント可能なローカルファイルシステムインタフェースを提供するためにFUSEを使う。 (MooseFS) : 1つのリソースとして見える複数のサーバを拡張する、ペタバイトのデータを保存可能なオープンソース分散フォールトトレラントファイルシステム。 CassandraFS : Cassandra (cassandra.apache.org) 上のファイルシステム。
仮想・特殊用途ファイルシステム WikipediaFS : Wikipediaの記事を実際のファイルのように参照し編集する。 GVfs : GNOME用仮想ファイルシステム。 archivemount fuse-zip : ファイルシステムとしてzipファイルを利用できる(書き込みをサポートする)。 NagiosFS : 値をリモートでモニタリングするファイルシステム表現。 NagusFS : Nagiosサービスのファイルシステム表現。 Lessfs : インラインのLinux用データ重複除外ファイルシステム。LZOやQuickLZの圧縮および暗号化をサポートする。 VolatileFS : FUSEを利用した商用RAMディスク。 jSYS : FUSEを利用したユーザ空間におけるjailsと仮想ファイルシステムを作成する商用ソフトウェア。 mtpfs : Creative Zen music playersのようなMTPデバイスをマウントする。 virtualbox-fuse : VirtualBox VDIイメージのマウントが可能となる。
暗号化・セキュリティ EncFS : 暗号化仮想ファイルシステム。 TrueCrypt : on-the-fly暗号化 (OTFE) を利用したソフトウェアアプリケーション。暗号化パーティションや完全なストレージデバイスの中だけではなく、ファイルの中にも仮想的な暗号化ディスクを作成できる。 Lessfs : インラインのLinux用データ重複除外ファイルシステム。LZOやQuickLZの圧縮および暗号化をサポートする。 UsiFe : イントラファイルの暗号化を可能とする、柔軟性のあるファイルシステム。ファイルの一部を選んで暗号化と復号を行い、それらを表示できる。 LoggedFS : ファイルシステムアクセスのロギング。
既存ファイルシステムの実装・互換レイヤー NTFS-3GとCaptive NTFS : NTFSファイルシステムへのアクセスを可能にする。 fuse-exfat : オープンソースのexFATファイルシステムの実装。ファイルシステムの作成と読み書きが可能。 exFAT : マイクロソフト製で、exFATファイルシステムへの読み書きが可能となる。 fuse-ext2 : オープンソースのext2/ext3ファイルシステム。MacFuseを利用してMac OS X v10.4以降をサポートする (Universal Binary)。 ZFS : ZFS-Fuse-Linux 実装 virtualbox-fuse : Virtualbox VDIイメージのマウントが可能となる。
アーカイブ・バックアップ
fuse-zip : ファイルシステムとしてzipファイルを利用できる(書き込みをサポートする)。
関連項目
9P - Plan 9オペレーティングシステム由来のファイルプロトコルで、FUSEよりも先に産みだされ同様の機能を数多く提供する。 Installable File System
脚注
外部リンク
Develop your own filesystem with FUSE - Sumit Singhによる。 List of FUSE filesystems Crossmeta FUSE Kernel for Windows is a true port of Fuse 2.8 Callback File System - このSDKにより開発者がユーザモードでWindows用の仮想ファイルシステムを作成できるようになる。 Documentation/filesystems/fuse.txt - Linuxソースツリーのドキュメント。