Re: DOS が火星探査機を止める(……寸前まで行ってやばかった)
高津@ドーガです。
> えーと、「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日(水) 今日のマーフィーの法則 [微粒子吸引の法則]
風塵は至近距離にある目玉を目指す。
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735