0

LinuxシステムのNTFSで動作するls、pwd、catなどの機能を提供するスクリプトのようなbashを構築しようとしています。NTFSイメージがあり、それをfopenを使用してファイルとして開いたとします。次に、0x0BにあるBPBなどのいくつかのセクターを読み取り、NTFSイメージに関する一般的な情報を取得しました。特にlsとpwdの関数を実装するには、ルートディレクトリポインタに到達してからファイルシステムをトラバースする必要があります。NTFSの内部の詳細とオフセットについて多くのことをグーグルで検索しましたが、目標を達成する方法を見つけることができませんでした。理解できるドキュメントやサンプルがないと、これ以上先に進むことはできません。

ヘルプ、ドキュメント、ヒント、オフセットテーブルなどをいただければ幸いです。

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

4

1 に答える 1

5

これは学習演習だと思います。だから、最初に:

  1. bash特定のファイルシステムに対して同様のインタプリタを作成することは、間違っことです。代わりに、NTFSファイルシステムの詳細を理解することに集中する必要があります。

  2. 特定lscatファイルシステム内のファイルを操作できるようにすることは、間違ったことです。代わりに、NTFSファイルシステムの詳細を理解することに集中する必要があります。

  3. ファイルシステムドライバを作成する場合(たとえば、FUSEを使用して)、元のbash、、lscatそのファイルシステムで自動的に機能します。なぜなら、ドライバーはシステムコールをファイルシステム固有のプロシージャのように変換できるからopenです。read

ついに:

  1. FUSEについて学びます。すごいです。このHello WorldFUSEモジュールを参照してください。それを実行し、それで遊んでください。

  2. NTFS-3Gのソースをダウンロードします。これは、最近ほとんどのGNU/Linuxディストリビューションで使用されているNTFSドライバーです。FUSEを使用しています。それがどのように機能するかを学びましょう。

于 2012-06-05T21:53:29.487 に答える