4

タイトルが示すように、Unix カーネルが論理ファイル オフセットを論理ブロック番号に変換し、それを i ノードから取得する方法を理解するのに苦労しています。

参考までに、Maurice J. Bach による「UNIX オペレーティング システムの設計」で最初に説明された「bmap」アルゴリズムの詳細な説明を求めています。

ありがとうございました..

4

1 に答える 1

4

残念ながら、UNIX のオリジナルの実装についてはお手伝いできません。ただし、高レベルのディレクトリ階層をディスク上の表現にマッピングし、ベア ブロック デバイスの範囲をファイルに割り当てる作業は、通常、1 つまたは複数のファイル システムに分類されます。POSIX 仕様では、ファイル システムに対して高度な要件が要求されますが、実際にディスクに保存される内容は、各ファイル システムに完全に固有のものです。

ext2 ファイル システムは比較的単純ですが、その詳細な説明はまだ 1 本の章全体を占めています。そのような本の 1 つは、Daniel P. Bovet と Marco Cesati によるUnderstanding the Linux Kernelです。

より簡潔で高レベルの紹介テキストが Linux カーネル自体に付属しており、ここでも見つけることができます。このディレクトリには、他の Linux ファイル システムと、すべてまたはほとんどのファイル システムに共通する多くの高レベルの側面を処理する「VFS」レイヤーに関するドキュメントも含まれています。ウィキペディアの ext2 の記事でも、高いレベルでカバーされています。また、より詳細なオンライン説明へのリンクも提供します。

残念ながら、これは SO の回答に収まるトピックではありませんが、上記のポインターが開始の助けになることを願っています。

于 2012-05-25T10:35:53.660 に答える