| 安定版リリース | 3.16.2 [1]
/ 2023年10月10日 |
|---|---|
| リポジトリ |
|
| 書かれた | C |
| オペレーティング·システム | Unix、Unixライク |
| タイプ | ファイルシステム ドライバー |
| ライセンス | Linuxカーネル部分はGPL 、 LibfuseはLGPL 、FreeBSDはSimplified BSD、OpenBSDはISCライセンス、macOSはプロプライエタリ |
| Webサイト | github.com/libfuse/libfuse |
Filesystem in Userspace ( FUSE ) は、UnixおよびUnix 系コンピュータオペレーティング システム用のソフトウェア インターフェイスであり、権限のないユーザーがカーネルコードを編集せずに独自のファイル システムを作成できるようにします。これは、ユーザー空間でファイル システム コードを実行することによって実現され、FUSE モジュールは実際のカーネル インターフェイスへのブリッジのみを提供します。
FUSEはLinux、FreeBSD、OpenBSD、NetBSD ( puffsとして)、OpenSolaris、Minix 3、macOS、[2]、Windowsで利用可能です。[3]
FUSE は、もともとGNU General Public LicenseおよびGNU Lesser General Public Licenseの条件に基づいてリリースされたフリー ソフトウェアです。
歴史
FUSEシステムは元々AVFS(A Virtual Filesystem )の一部であり、 GNU Hurdのトランスレータコンセプトに大きく影響を受けたファイルシステム実装でした。[4] Linux Userland Filesystemに取って代わり、lufislibfuse1で使用するトランスレーションインターフェースを提供しました。
FUSEはもともとGNU General Public LicenseとGNU Lesser General Public Licenseの条件の下でリリースされ、後にFreeBSDベースシステムの一部として再実装され[5] 、 Simplified BSDライセンスの条件の下でリリースされました。Sylvestre GallonによるISCライセンスの再実装は2013年3月にリリースされ、[6] 2013年6月にOpenBSDに組み込まれました。 [7]
FUSEはカーネルバージョン2.6.14で主流のLinuxカーネルツリーに統合されました。 [8]
FUSE のユーザー空間側であるlibfuseライブラリは、BSD の派生製品との「ベスト エフォート」互換性を維持しながら、Linux カーネルの開発ペースに概ね従っています。これは、カーネル FUSE が独自の「機能レベル」またはバージョンを報告するため可能です。例外は、macOS 用の FUSE フォークである OSXFUSE で、ライブラリを共有するには違いが多すぎます。[9] libfuse の歴史における分岐点は libfuse3 です。これは、現在メンテナンス モードになっている古い libfuse2 と比較して、インターフェイスとパフォーマンスに互換性のない改善が含まれています。[10]
FUSE のカーネル ユーザー空間プロトコルはバージョン管理され公開されているため、プログラマーはlibfuseの代わりに別のコードを使用してもカーネルの FUSE 機能と通信することができます。一方、libfuseとその多数のポートは、"FUSE" 機能のないシステムでも実装できるポータブルな高レベル インターフェイスを提供します。
操作と使用方法

新しいファイル システムを実装するには、提供されたライブラリにリンクされたハンドラー プログラムをlibfuse作成する必要があります。このプログラムの主な目的は、ファイル システムが読み取り/書き込み/統計要求にどのように応答するかを指定することです。このプログラムは、新しいファイル システムをマウントするためにも使用されます。ファイル システムがマウントされると、ハンドラーがカーネルに登録されます。ユーザーがこの新しくマウントされたファイル システムに対して読み取り/書き込み/統計要求を発行すると、カーネルはこれらの IO 要求をハンドラーに転送し、ハンドラーの応答をユーザーに返します。

fusermountコマンドでアンマウントするFUSE は、仮想ファイルシステムの作成に特に便利です。基本的に大容量ストレージ上のデータを扱う従来のファイルシステムとは異なり、仮想ファイルシステムは実際にはデータ自体を保存しません。既存のファイルシステムまたはストレージデバイスのビューまたは変換として機能します。
原則として、FUSE 実装で利用可能なすべてのリソースは、ファイル システムとしてエクスポートできます。
アプリケーション
ディスク上のファイルシステム
従来のディスク上のファイルシステムは、互換性やライセンス上の理由などにより、FUSE を使用してユーザー空間に実装できます。
- リニア テープ ファイル システム: 磁気テープ上に保存されたファイルに、ディスクやリムーバブル フラッシュ ドライブ上のファイルと同様の方法でアクセスできるようにします。
- NTFS-3GおよびCaptive NTFSにより、 NTFSファイルシステムにアクセスできます。
- retro-fuse: retro-fuse は、古い Unix システムで作成されたファイルシステムを現代の OS にマウントする方法を提供するユーザー空間ファイルシステムです。retro-fuse の現在のバージョンは、ベル研究所の Research Unix の第 5 版、第 6 版、第 7 版で作成されたファイルシステム、および 2.9BSD と 2.11BSD ベースのシステムで作成されたファイルシステムのマウントをサポートしています。
階層化ファイルシステム
FUSE ファイルシステムは、何らかの方法でファイルを変換して、基盤となるファイルシステムのビューを作成できます。
- EncFS :暗号化された仮想ファイルシステム
- FuseCompress、gzipfs、Fuse-ZIP、CompFUSEd: 圧縮仮想ファイルシステム
- アーカイブファイルシステムもこのタスクを実行できる
アーカイブおよびバックアップファイルシステム
FUSE ファイルシステムでは、アーカイブまたはバックアップ セットの内容を、最初に抽出しなくても公開できます。
- アーカイブマウント
- Atlas (Rubrik バックアップ ソフトウェア): Rubrik Cloud Data Management データ保護アプリケーションで使用される不変の分散ファイルシステム
- Borg (バックアップ ソフトウェア) : バックアップ アーカイブを FUSE ファイルシステムとしてマウントできる重複排除バックアップ プログラム。
- Restic: 無料で高速、効率的、かつ安全なバックアップソフトウェアは、FUSEを使用して、すべてのバックアップスナップショットを通常のファイルシステムとして参照できます。
- SPFS Spectrum Protect のファイル システム。バックアップ サーバーのファイル スペースをサーバー上の任意の場所にマウントし、バックアップ サーバーに含まれる機能 (暗号化、重複排除、圧縮、フィルタリングなど) を使用するように設計されています。これはWORMファイル システムです。
リモート/分散ファイルシステムクライアント
- CernVM-FS: HTTP トランスポートを使用してユーザー空間 (FUSE) の POSIX ファイルシステムとして実装された分散読み取り専用ソフトウェア配布システムで、世界規模でソフトウェアを高速かつ確実に配信します。
- CloudStore(旧称Kosmosファイルシステム):FUSE経由でマウントすることで、既存のLinuxユーティリティがCloudStoreとやり取りできるようになります。
- ExpanDrive : FUSE を使用して SFTP/FTP/S3/Swift を実装した商用ファイルシステム
- FTPFS
- GlusterFS : 数ペタバイトまで拡張可能なクラスター化分散ファイルシステム。
- goofys: パフォーマンスを重視して Amazon S3/Microsoft Azure ストレージにアクセスできる FUSE ファイルシステム。
- google-drive-ocamlfuse は、OCaml で書かれた Google Drive 用の FUSE ファイルシステムです。これを使用すると、Linux に Google Drive をマウントできます。
- IPFS : すべてのコンピューティング デバイスを同じファイル システムに接続しようとするピアツーピアの分散ファイル システム。
- JuiceFS: Redis と S3 上に構築された分散 POSIX ファイル システム。
- KBFS :エンドツーエンドの暗号化と、 FUSE を使用して暗号化された安全なファイルマウントを作成するKeybase.ioサービスに基づくグローバル名前空間を備えた分散ファイルシステム。
- Lustre ClusterファイルシステムはFUSEを使用してユーザー空間で実行できるようにし、FreeBSDへの移植が可能になります。[11]ただし、 LustreのZFS -Linuxポートでは、ユーザー空間でZFSのDMU(データ管理ユニット)が実行されます。[12]
- MinFS : MinFSはAmazon S3互換オブジェクトストレージサーバー用のヒューズドライバーです。MinFS [13]を使用すると、リモートバケット(S3互換オブジェクトストアから)をローカルディレクトリのようにマウントできます。
- MooseFS : FUSE 実装を備えたすべての OS (Linux、FreeBSD、NetBSD、OpenSolaris、OS X) で利用できるオープンソースの分散フォールト トレラント ファイル システム。複数のサーバーに分散されたペタバイト単位のデータを 1 つのリソースとして保存できます。
- Nexfs: ブロック、ファイル、S3 互換のクラウドおよびオブジェクト ストレージを POSIX 互換ストレージの単一のプールに統合する商用 Linux ファイル システム。
- ObjectiveFS: FUSE を使用したオブジェクト ストア バックエンド (Amazon S3、Google Cloud Storage、または S3 互換オブジェクト ストア) を備えた分散ファイルシステム
- Rclone は、 FUSE を使用してさまざまなリモート / クラウド ストレージをマウントできます。
- s3fs: S3 バケットをローカル ファイル システムのようにマウントする機能を提供します。
- Sector ファイル システム: Sector は、大量の汎用コンピュータ向けに設計された分散ファイル システムです。Sector は、マウント可能なローカル ファイル システム インターフェイスを提供するために FUSE を使用します。
- SSHFS : SSH経由でリモート ファイルシステムへのアクセスを提供します。
- Transmit: MacFUSE 経由で、WebDAV、SFTP、FTP、Amazon S3 サーバーを Finder のディスクとしてマウントする機能も追加した商用 FTP クライアント。
- WebDrive : WebDAV、SFTP、FTP、FTPS、Amazon S3を実装した商用ファイルシステム
- WikipediaFS : Wikipedia の記事を実際のファイルのように表示および編集します
- Wuala : マルチプラットフォームで、Java ベースの OS に完全に統合された分散ファイル システムでした。ファイル システム統合にはそれぞれ FUSE、MacFUSE、CBFS Connect を使用し、さらに Java 対応の Web ブラウザーからアクセスできる Java ベースのアプリも使用しました (2015 年にサービスは廃止されました)。
- IndexFS: 分散ファイルへの透過的な CURL アクセスを備えたリモート ファイル集約ファイルシステム。
他の
- GVfs : GNOME デスクトップの仮想ファイルシステム
- rvault:ワンタイム パスワード(OTP) 認証によるエンベロープ暗号化を使用して、秘密や小さな文書を安全かつ認証された状態で保存します。FUSE を使用して、ボールトをファイル システムとして公開します。
参照
- PUFFS、FUSE互換性を持つ同様のフレームワーク
- 9P(プロトコル)
- インストール可能なファイルシステム
- Dokan ライブラリFUSE Windows 互換性
- Windows プロジェクト ファイル システム (ProjFS)
参考文献
- ^ “リリース 3.16.2”. 2023年10月10日. 2023年10月19日閲覧。
- ^ 「ホーム - OS X用FUSE」。
- ^ Zissimopoulos, Bill (2021-02-14)、 billziss-gh/winfsp 、 2021-02-16取得
- ^ 「Hurd の技術的利点」 2011 年 5 月 15 日。 2016 年3 月 28 日閲覧。
- ^ 「WhatsNew/FreeBSD10 - FreeBSD Wiki」.
- ^ “openbsd dev - tech - OpenBSD の Fuse (および sshfs) サポート”. 2020-10-26 時点のオリジナルよりアーカイブ。2013-07-14に閲覧。
- ^ 「'CVS: cvs.openbsd.org: src' - MARC」.
- ^ 「file-systems.fuse.devel - FUSE が 2.6.14 にマージされました! - msg#00021 - Recent Discussion OSDir.com」。2016 年 4 月 20 日時点のオリジナルよりアーカイブ。
- ^ 「libfuse/libfuse、Linux FUSE (Filesystem in Userspace) インターフェースのリファレンス実装」。libfuse。2020年1月9日。 2020年1月9日閲覧。
- ^ “libfuse3 ChangeLog”. GitHub . 2020年1月9日閲覧。
- ^ 「Lustre FreeBSD」。2008年3月12日時点のオリジナルよりアーカイブ。2008年3月2日閲覧。
- ^ 「Lustre 向け ZFS アーキテクチャ」。Sun Microsystems。2009 年 1 月 22 日時点のオリジナルよりアーカイブ。2008 年 3 月 2 日閲覧。
- ^ "minio/minfs". GitHub . 2018年4月12日閲覧。
外部リンク
- 公式サイト
- Sumit Singh による FUSE で独自のファイルシステムを開発する
- FUSE ファイルシステムのリスト
- Linux ソースツリー内の Documentation/filesystems/fuse.txt ドキュメント
- WinFSP、Windows 用の FUSE のようなシステム (Cygwin には FUSE 互換レイヤーが提供されています)
- Crossmeta FUSE、FUSE の Windows への移植 (商用ソフトウェア)
