Filesystem in Userspace

Filesystem in Userspace
FUSEの動作を図にしたフローチャートダイアグラム
最新版
3.9.1 / 2020年3月20日 (4年前) (2020-03-20)
リポジトリ ウィキデータを編集
プログラミング
言語
C
対応OS Unix系
種別 ファイルシステムドライバ
ライセンス カーネル部はGPL、LibfuseはLGPL
公式サイト fuse.sourceforge.net
テンプレートを表示

Filesystem in Userspace (FUSE) はUnix系OS用のソフトウェアインタフェースである。権限を持たないユーザがカーネルコードを修正することなく独自のファイルシステムを作成できる機能を提供する。これは、ファイルシステムのコードをユーザ空間で実行することでなされるもので、その際FUSEモジュールは実際のカーネルインタフェースへの「橋渡し」しか提供しない。

FUSEはフリーソフトウェアであり、GNU General Public LicenseGNU Lesser General Public Licenseに基づきリリースされている。FUSEのシステムは元々A Virtual Filesystem (AVFS) の一部だったが、SourceForge.net上で独立したプロジェクトとして分離された。

FUSEはLinuxFreeBSDNetBSD (PUFFS)、DragonFly BSD (PUFFS)、OpenSolarisMINIX 3英語版Android、およびmacOSで利用できる[1]。FUSEはメインストリームLinuxカーネルツリーに、カーネルバージョン2.6.14から公式にマージされた[2]

ISCライセンスに基づきSylvestre Gallonが再実装したFUSEが2013年5月にリリースされ[3]、同年6月OpenBSDへと組み込まれた[4]

仮想ファイルシステム

FUSEは仮想ファイルシステムを書くために特に有用である。伝統的なファイルシステムとは異なり、仮想ファイルシステムはディスクに対して実際にデータを読み書きしない。それらは既存のファイルシステムやストレージデバイスのビューや翻訳として振舞う。

原則として、FUSE実装で利用可能なリソースはどれでもファイルシステムとしてエクスポート可能である。

移植

  • FreeBSD用のFUSE
  • Fuse4XはmacOSへのFUSE移植(現在はOSXFuseへ統合)である。
  • MacFUSEはmacOSへの古いFUSE移植であるが、既にメンテナンスは終了している。
  • OSXFuseはmacOSへのFUSE移植で、MacFUSEの後継である。
  • WindowsユーザモードファイルシステムライブラリであるDokanfuse4winはWindows用のFUSE APIである。
  • NetBSDは6.0より基盤システムによるFUSEのサポートを開始した。
  • MINIX 3はバージョン3.2.0より基盤システムにFUSEのサポートを開始した。

利用例

  • copy-fuse : Copy.comに保存されたファイルへのアクセス用のPython FUSEレイヤー。
  • Wuala : マルチプラットフォームでJavaベースのOS統合分散ファイルシステム。ファイルシステム統合にFUSE、MacFUSE、およびCallback File Systemのいずれかを使う。さらにファイルシステムに加え、Javaが動作するウェブブラウザからアクセス可能な、Javaベースのアプリケーションも統合する。
  • WebDrive英語版 : WebDAVSFTPFTPFTPS、およびAmazon S3を実装する商用ファイルシステム。
  • jSYS : FUSEを利用したユーザ空間におけるjailsと仮想ファイルシステムを作成する商用ソフトウェア。
  • Transmit : MacFUSEを通じてWebDAV、SFTP、FTP、およびAmazon S3サーバをFinder内のディスクとしてマウントできる機能も追加する商用FTPクライアント。
  • ExpanDrive英語版 : FUSEを用いてSFTP/FTP/S3/Swiftを実装した商用ファイルシステム。
  • VolatileFS : FUSEを利用した商用RAMディスク。
  • GlusterFS : 数ペタバイトまでスケールアップ可能なクラスタ分散ファイルシステム。
  • SSHFS英語版 : SSH経由でリモートファイルシステムへのアクセスを提供する。
  • FTPFS英語版
  • GmailFS : Gmailのメールとしてデータを保存するファイルシステム。
  • GAEDrive : Google App Engineベースのネットワークストレージ。
  • gae-filestore : Google App Engineの仮想ファイルシステムライブラリ。
  • GVfs : GNOME用仮想ファイルシステム。
  • EncFS : 暗号化仮想ファイルシステム。
  • NTFS-3GCaptive NTFS : NTFSファイルシステムへのアクセスを可能にする。
  • fuse-exfat : オープンソースのexFATファイルシステムの実装。ファイルシステムの作成と読み書きが可能。
  • exFAT : マイクロソフト製で、exFATファイルシステムへの読み書きが可能となる。
  • WikipediaFS : Wikipediaの記事を実際のファイルのように参照し編集する。
  • Lustre (ファイルシステム) : サン・マイクロシステムズによるクラスタファイルシステム。FUSEを使ってユーザ空間で実行することが可能であり、FreeBSDへも移植されている[5]。ただしLustreのZFS-Linux移植版はユーザ空間内でZFSのDMU (Data Management Unit) を起動する[6]
  • archivemount英語版
  • LoggedFS : ファイルシステムアクセスのロギング。
  • HDFS : FUSE bindingsHadoop分散ファイルシステム用に存在する。
  • mtpfs : Creative Zen music playersのようなMTPデバイスをマウントする。
  • Sector File System : Sector/Sphere英語版のSectorは大量の商品コンピュータ用に設計された分散ファイルシステムである。Sectorはマウント可能なローカルファイルシステムインタフェースを提供するためにFUSEを使う。
  • CurlFtpFS : FTP/SFTPロケーションにアクセスするためのファイルシステム。
  • fuse-ext2 : オープンソースext2/ext3ファイルシステム。MacFuseを利用してMac OS X v10.4以降をサポートする (Universal Binary)。
  • Lessfs : インラインのLinux用データ重複除外ファイルシステム。LZOやQuickLZの圧縮および暗号化をサポートする。
  • CloudStore英語版(旧名 Kosmos filesystem): FUSEを通じてマウントすることで、既存のLinuxユーティリティでCloudStoreへの通信できるようにとなる。
  • SoundCloudFS : LinuxシステムをSoundCloud streamsへマウントするためのオープンソースファイルシステム。ユーザがソフトウェアを選んでファイルを開くことが可能である。
  • Moose File System英語版 (MooseFS) : 1つのリソースとして見える複数のサーバを拡張する、ペタバイトのデータを保存可能なオープンソース分散フォールトトレラントファイルシステム。
  •  NagusFS : Nagiosサービスのファイルシステム表現。
  • NagiosFS : 値をリモートでモニタリングするファイルシステム表現。
  • CassandraFS : Cassandra (cassandra.apache.org) 上のファイルシステム。
  • ZFS : ZFS-Fuse-Linux 実装
  • fuse-zip : ファイルシステムとしてzipファイルを利用できる(書き込みをサポートする)。
  • OWFS : ファイルシステムディレクトリ構造を通じて1-Wireデバイスへのアクセスを提供するOne-Wireファイルシステム。
  • TrueCrypt[要出典] : on-the-fly暗号化 (OTFE) を利用したソフトウェアアプリケーション。暗号化パーティションや完全なストレージデバイスの中だけではなく、ファイルの中にも仮想的な暗号化ディスクを作成できる。
  • s3fs-FuseOverAmazonS3 : Amazon S3に裏打ちされたFUSEベースファイルシステム。ローカルファイルシステムの読み書き用にバケットをマウントする。ファイルやフォルダをネイティブにかつAWS上に透過的に保存する。
  • s3fs-c : Amazon S3に裏打ちされたファイルシステム。s3fsからフォークされAWS Management Consoleのような他のS3クライアントと互換性を保つよう書き換えられている。
  • LR|FS : Adobe Lightroomカタログ用のmacOSファイルシステム。MacFuseが必要。
  • boxfs : box.netアカウント上のファイルにアクセスするためのファイルシステム。
  • remotefs : ホームNASで利用するために設計されたネットワークファイルシステム。
  • virtualbox-fuse : Virtualbox VDIイメージのマウントが可能となる。
  • UsiFe : イントラファイルの暗号化を可能とする、柔軟性のあるファイルシステム。ファイルの一部を選んで暗号化と復号を行い、それらを表示できる。
  • PyMMBfuse : PyMMBプロジェクト用FUSEドライバ。MMCフラッシュカード上のBBC Microcomputeディスクイメージへのアクセスが可能となる。
  • djmount : UPnP AVデバイスのメディアコンテンツをマウントする。

関連項目

  • 9P - Plan 9オペレーティングシステム由来のファイルプロトコルで、FUSEよりも先に産みだされ同様の機能を数多く提供する。
  • Installable File System

脚注

外部リンク