FUSE を使用して基本的なファイルシステムを実装し、予見可能なすべての POSIX 機能を実装しました [もちろん、まだプロファイリングしていません ;)]。現在、通常のファイル(st_mode & S_IFREG)
でファイルシステムを実行できますが、開発の次のステップは、実際のブロック デバイスでホストすることです。コードをそのまま実行すると、デバイスst_size
で呼び出しfstat
た後、すぐに読み取りに失敗します。もちろん、問題がそこで止まるとは思っていません。
- 通常のファイルではなく、ブロック デバイスで操作するには、どのような変更が必要ですか?
- パフォーマンス、制限、特別な機能などに関して、特別に考慮する必要があることは何ですか?
- ブロック スペシャル ファイルの取り扱いに関するチュートリアルやリファレンスはありますか? グーグルはほとんど役に立ちません。私は背景知識 (皮肉なことに私の暗い過去の MSDN から) とマンページにいくつかの乏しい情報しか持っていません。
Update0
- 「通常のファイル」の意味を指摘しました。
- デバイスのサイズを取得することに集中したくありません。パフォーマンスと使用に関する通常のファイルとデバイス ファイルの違いに関する一般的なガイドラインが必要です。