高津@ドーガです。

> えーと、「directory entry」というのは、ブートセクタがあって
> FATがあって、ディレクトリがあって……のディレクトリではなくて、

これはルートディレクトリのことかな。こっちは FAT12/FAT16 の場合、
固定長ですね。だから、ルートディレクトリに作れるファイル数の上限は
固定になります。

> DOS2かDOS3あたりで拡張されたWindowsで言うところの「フォルダ」の
> 話ですか?

そのいわゆる「フォルダ」の方です。以下、ルートディレクトリと区別
するため、「サブディレクトリ」と書きます。

> つまり、フォルダの残骸で埋まってしまったわけですか。

ディレクトリの残骸じゃ無くて、サブディレクトリ内がファイルの残骸で埋まった、
ってことですね。

「サブディレクトリ」はファイルシステム的にはただのファイルであり、
そのファイル中には、そのディレクトリ内にあるファイルの情報を、
1ファイルあたり32バイトの「directory entry」を並べて記録しています。

で、ディレクトリ中のファイルを削除したときには、

> 先頭にE6Hが付いて「空き」を示すとか、そういう話?

を行うだけですので、「サブディレクトリ」内のファイルを削除しても、
「サブディレクトリ」のファイルサイズは減りません。
そのため、サブディレクトリ内に沢山ファイルを作成したあと、そのファイルを
削除すると、ファイルはないけどディスク容量は消費したままという状態に
なります。

(この問題を「DOSファイルシステムの問題」と、DOSが悪いように言うのは可哀想
ですね。UNIXファイルシステム(ufs)でも同じことになるし。)


> MSX-DOSってMS-DOS1.25互換とからしいので、ツリー構造がないんです。
> ディレクトリの個数なんかブートセクタに書いてあるだろ、って
> 思ってしまいました。

今回の問題は「DOSファイルシステム」(の特性)が原因なのであって、
スピリットは「MS-DOS」や「MSX-DOS」で動いているわけではないです。

CPU は RAD6000 という32ビットのもの(PowerPC の先祖といっていいのかな)で、
OS は VxWorks という組込専用のものですね。
→       http://hotwired.goo.ne.jp/news/news/technology/story/20040218303.html


PROJECT TEAM DoGA 高津正道                            taka2@doga.jp
                                                   TBD00456@nifty.ne.jp
                     PROJECT TEAM DoGAのホームページ → http://doga.jp/
9月1日(水) 今日のマーフィーの法則     [微粒子吸引の法則]
風塵は至近距離にある目玉を目指す。