
一部のファイルシステムがFuseを介して独自に表示されることを知っており、このアプローチの長所と短所を知りたいです。
答え1
Unixファイルシステムは伝統的にカーネルに実装されています。ヒューズユーザープログラムがファイルシステムを実装できるようにします。
カーネル内のファイルシステムは、プログラムやデータの基本ファイルシステムとして適しています。
- ブートメディアで使用できます(FUSEファイルシステムを実装するプログラムはどこかでロードする必要があります)。
- プロセスがクラッシュしたり、エラーのために終了しても消えないので、より強力です。
- ちょっと早い方です。
FUSEファイルシステムには、主に柔軟性に関連する他の利点があります。
- 一般ユーザーがロードしてマウントできるため、ネットワークアクセス、アーカイブファイルの検索、リムーバブルメディアなど、ユーザーが直接マウントする傾向があるファイルシステムに便利です。
- FUSE ファイルシステムドライバがクラッシュしてもカーネルにパニックは発生しません。つまり、ファイルシステムにアクセスするアプリケーションでは、I / Oエラーよりも悪いことは表示されません。
- 非常に迅速にプログラムできます。ヒューズバインディング多くのスクリプト言語では、便利なFUSEファイルシステムドライバを数百行のコードで書くことができます。
- インストールに管理者の介入を必要とせず、他のデバイス間で簡単に移植できるため、非常に迅速に展開できます。サポートされるオペレーティングシステム。
- カーネル静的リンクに関連するライセンスの問題はありません(影響を与える)ジブス)。
答え2
実際のディスクファイルシステムを意味するのか、それとも別のファイルシステムを意味するのかはわかりません。 FUSEが通常のファイルシステムで使用されているのを見たことはありません。 FUSEの主な利点はファイルシステムのように見えますが、実際には関数ファイルにすぎません。ユーザーがディレクトリにファイルを一覧表示したり、新しいファイルを作成するなどの操作を実行しようとすると、アプリケーションが呼び出されます。計画9/proc
FUSEは、アプリケーションがこのパターンに簡単に従う方法であるファイルシステムを介してすべてにアクセスしようとすることで知られています。
たとえば、以下はSEサイトデータにアクセスできる(非常に機能的ではない)FUSEファイルシステムのスクリーンショットです。
もちろん、これらのファイルは実際には存在しません。ディレクトリ内のファイルのリストを要求すると、FUSEls
は自分のプログラムからユーザー73(私)に関する情報をロードするためにサイトにAPIを要求する関数を呼び出します。ディスクに実際に存在するデータなしでメモリからキャッシュされたデータを返すより多くの機能cat
display_name
website_url