FuseFSファイルシステムを使用する利点と欠点は何ですか?


19

いくつかのファイルシステムがFuseを介して存在することを知っており、このアプローチの長所と短所について疑問に思いました。

回答:


16

実際のディスク上のファイルシステムまたは任意のファイルシステムを意味する場合、私は肯定的ではありません。FUSEを使用する通常のファイルシステムを見たことはありませんが、可能だと思います。FUSEの主な利点は、ファイルシステムのように見えるアプリケーション(またはユーザー)に何かを提示できることです。しかし、ユーザーがディレクトリ内のファイルをリストしたり、新しいファイル。Plan9は、ファイルシステムを介してすべてにアクセスできるようにすることでよく知られており、/proc擬似ファイルシステムはそれらから取得されます。FUSEは、アプリケーションがそのパターンを簡単にたどる方法です

たとえば、SEサイトデータへのアクセスを提供する(非常に機能のない)FUSEファイルシステムのスクリーンショットは次のとおりです。

動作中のFUSEファイルシステムのスクリーンショット

当然、これらのファイルは実際には存在しません。ときls、ユーザー73の負荷情報をこのサイトにAPIリクエストをした私のプログラム内の関数と呼ばれるディレクトリFUSE内のファイルのリストを求めた(私)。cat読み取ろうdisplay_namewebsite_url何もせずに、メモリからキャッシュされたデータを返さより多くの機能と呼ばれるが、実際にディスク上の既存の


3
FATNTFSiso9660ext2などのFUSE実装があります
ジル 'SO-悪であるのをやめる

2
fuse:LessFS、GlusterFS、MooseFSに実装されたヘビーデューティーファイルシステムがあります。GoogleのGFS(POSIXではない)もユーザー空間で実行されます。
東武

そのアプリはどこで見つけましたか?!?!
ネイサンオスマン

4
@George SO APIをいじっていたときに書いた。/ users以外のルートは使用しないため、基本的に、そのスクリーンショットに実装されているすべての機能が表示されます。それがどれほど難しいかを見るためだけだった
マイケル・ムロゼク

5
@ジョージgithub
Michael Mrozek

19

Unixファイルシステムは伝統的にカーネルに実装されています。ヒューズ使用すると、ファイルシステムをユーザープログラムで実装できます。

カーネル内ファイルシステムは、プログラムおよびデータのメインファイルシステムにより適しています。

  • それらはブートメディアで使用できます(FUSEファイルシステムを実装するプログラムはどこかからロードする必要があります)。
  • プロセスがクラッシュしたり、誤って終了したりしても消えないという点で、より堅牢です。
  • 彼らはやや高速です。

FUSEファイルシステムには他の利点があり、主に柔軟性を中心に回転します。

  • 通常のユーザーがロードしてマウントできるため、ユーザーが自分でマウントする傾向があるファイルシステムに便利です。ネットワークアクセス、アーカイブファイルの通過、リムーバブルメディアなどです。
  • FUSEファイルシステムドライバーがクラッシュしても、カーネルがパニックすることはありません。ファイルシステムにアクセスしていたアプリケーションのI / Oエラーほどひどいものはありません。
  • 非常に迅速にプログラムできます。FUSEバインディングがあります便利FUSEファイルシステムドライバは、コードの数百行に記述することができ、多くのスクリプト言語については。
  • 管理者がそれらをインストールする必要がなく、サポートされているOS間で簡単に移植できるため、非常に迅速に展開できます。
  • カーネルと静的にリンクされることに関連するライセンスの問題はありません(これはzfsに影響します)。

7

FUSEは実際にはファイルシステムではありませんが、カーネルモジュールではなくプロセスとしてファイルシステムを実装できるコードです。

FUSEの最も便利な利点の1つは、GPLコードが非GPLコードと「混合」できることです。たとえば、Gnu / LinuxおよびZFS http://zfs-fuse.net/またはOpenSolarisや* BSDなどの多くのOS上のNTFS-3G http://www.tuxera.com/community/ntfs-3g-download/

主な欠点は、ネイティブ(カーネル)ドライバーと比較した場合のパフォーマンスへの影響です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.