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

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

一部のファイルシステムがFuseを介して独自に表示されることを知っており、このアプローチの長所と短所を知りたいです。

答え1

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

カーネル内のファイルシステムは、プログラムやデータの基本ファイルシステムとして適しています。

  • ブートメディアで使用できます(FUSEファイルシステムを実装するプログラムはどこかでロードする必要があります)。
  • プロセスがクラッシュしたり、エラーのために終了しても消えないので、より強力です。
  • ちょっと早い方です。

FUSEファイルシステムには、主に柔軟性に関連する他の利点があります。

  • 一般ユーザーがロードしてマウントできるため、ネットワークアクセス、アーカイブファイルの検索、リムーバブルメディアなど、ユーザーが直接マウントする傾向があるファイルシステムに便利です。
  • FUSE ファイルシステムドライバがクラッシュしてもカーネルにパニックは発生しません。つまり、ファイルシステムにアクセスするアプリケーションでは、I / Oエラーよりも悪いことは表示されません。
  • 非常に迅速にプログラムできます。ヒューズバインディング多くのスクリプト言語では、便利なFUSEファイルシステムドライバを数百行のコードで書くことができます。
  • インストールに管理者の介入を必要とせず、他のデバイス間で簡単に移植できるため、非常に迅速に展開できます。サポートされるオペレーティングシステム
  • カーネル静的リンクに関連するライセンスの問題はありません(影響を与える)ジブス)。

答え2

実際のディスクファイルシステムを意味するのか、それとも別のファイルシステムを意味するのかはわかりません。 FUSEが通常のファイルシステムで使用されているのを見たことはありません。 FUSEの主な利点はファイルシステムのように見えますが、実際には関数ファイルにすぎません。ユーザーがディレクトリにファイルを一覧表示したり、新しいファイルを作成するなどの操作を実行しようとすると、アプリケーションが呼び出されます。計画9/procFUSEは、アプリケーションがこのパターンに簡単に従う方法であるファイルシステムを介してすべてにアクセスしようとすることで知られています。

たとえば、以下はSEサイトデータにアクセスできる(非常に機能的ではない)FUSEファイルシステムのスクリーンショットです。

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

もちろん、これらのファイルは実際には存在しません。ディレクトリ内のファイルのリストを要求すると、FUSElsは自分のプログラムからユーザー73(私)に関する情報をロードするためにサイトにAPIを要求する関数を呼び出します。ディスクに実際に存在するデータなしでメモリからキャッシュされたデータを返すより多くの機能catdisplay_namewebsite_url

答え3

FUSEは実際にはファイルシステム自体ではなく、ファイルシステムをカーネルモジュールではなくプロセスとして実装できるようにするコードです。

FUSEの最も有用な利点の1つは、GPLコードをGPL以外のコードと「混合」できることです。たとえば、Gnu/Linux と ZFS(zfs-ヒューズ、今は廃止され、廃止されました。オープンZFS) またはNTFS-3GOpenSolaris/illumosや*BSDなど、多くのオペレーティングシステムで

主な欠点は、デフォルト(カーネルなど)ドライバと比較して、ユーザースペースドライバがパフォーマンスに与える影響です。

関連情報