Pass-to-Userspace Framework File System

puffs(Pass-to-Userspace Framework File System)は、NetBSDカーネルのサブシステムとして開発され、ユーザ空間でファイルシステムを動作させるためのフレームワークです。NetBSD 5.0で導入され、その後DragonFly BSD 3.2にも移植されました。この技術により、開発者はカーネル空間ではなく、より柔軟なユーザ空間でファイルシステムを実装できるようになりました。

FUSEとの互換性



puffsは、FUSE(Filesystem in Userspace)との互換性も考慮して設計されています。NetBSD 5.0のpuffsには、libfuseの高レベルインタフェースを再実装したrefuseが含まれています。これにより、多くのFUSEベースのファイルシステムがpuffs上で動作可能になりました。しかし、refuseでは対応できないケースも存在しました。一部のファイルシステムは、低レベルのインタフェースやカーネルFUSEインタフェースを利用しており、refuseではこれらのインタフェースをエミュレートすることができませんでした。そのため、これらのファイルシステムはrefuseではサポートされませんでした。

この問題を解決するために、NetBSD 6.0ではperfuseという新しい互換レイヤーが導入されました。perfuseは、FUSEカーネルインタフェースをエミュレートすることで、より広範囲なFUSEファイルシステムのサポートを可能にしました。これにより、refuseでは動作しなかったファイルシステムもperfuseを利用することで、puffs上で動作させることが可能となりました。

puffsの利点



puffsの主な利点は、ファイルシステムをユーザ空間で開発できる点です。これにより、カーネル空間での開発に比べて、開発プロセスが容易になり、デバッグやテストも迅速に行えます。また、ユーザ空間でファイルシステムを実装することで、カーネルの安定性を損なうリスクを低減できます。puffsは、ファイルシステム開発の柔軟性と効率性を高めるための重要な技術と言えるでしょう。

まとめ



puffsは、ユーザ空間でのファイルシステム実装を可能にするNetBSDのサブシステムであり、FUSEとの互換性にも配慮されています。refuseやperfuseといった互換レイヤーを通じて、多様なFUSEベースのファイルシステムをサポートし、ファイルシステム開発の効率化と柔軟性の向上に貢献しています。

関連項目



Filesystem in Userspace (FUSE)

外部リンク


Send and Receive of File System Protocols: Userspace Approach With puffs
puffs - Pass-to-Userspace Framework File System
ReFUSE: Userspace FUSE Reimplementation Using puffs

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。