うーん、よく分からない。
先頭にE6Hが付いて「空き」を示すとか、そういう話?
--
K-ichi%DOSはMSX-DOS
In article <ch1vig$s8l$1...@newsl.dti.ne.jp>, K-ichi <k-i...@mv.0038.net> wrote:
>【火星探査車『スピリット』の交信途絶は、
>DOSファイル・システムの予期せぬ特性が原因】
>http://hotwired.goo.ne.jp/news/news/20040831306.html
>(ここの真ん中へん)
>
>うーん、よく分からない。
>先頭にE6Hが付いて「空き」を示すとか、そういう話?
directory が truncate されないので、file を削除しても file
分の容量は減っても directory entry の分は減らないという話で
は?この文面からはそう読めますが。
directory そのものの容量を減らすには、中身を一旦よそに移し
てから directory を作り直す必要があります。FAT fs に限った話
じゃありませんけどね。
--
しらい たかし
えーと、「directory entry」というのは、ブートセクタがあって
FATがあって、ディレクトリがあって……のディレクトリではなくて、
DOS2かDOS3あたりで拡張されたWindowsで言うところの「フォルダ」の
話ですか?
つまり、フォルダの残骸で埋まってしまったわけですか。
MSX-DOSってMS-DOS1.25互換とからしいので、ツリー構造がないんです。
ディレクトリの個数なんかブートセクタに書いてあるだろ、って
思ってしまいました。
--
K-ichi%DOSはMSX-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 高津正道 ta...@doga.jp
TBD0...@nifty.ne.jp
PROJECT TEAM DoGAのホームページ → http://doga.jp/
9月1日(水) 今日のマーフィーの法則 [微粒子吸引の法則]
風塵は至近距離にある目玉を目指す。
> (この問題を「DOSファイルシステムの問題」と、DOSが悪いように言うのは可哀想
> ですね。UNIXファイルシステム(ufs)でも同じことになるし。)
ufs はそうですが、最近のは小さくしてしまったりしますけどね。
$ uname -rs
OpenBSD 3.5
$ ls -ld .
drwxr-xr-x 2 noroi group 6656 Sep 1 22:41 .
$ rm *
$ ls
$ ls -ld .
drwxr-xr-x 2 noroi group 6656 Sep 1 22:42 .
$ echo a > a
$ ls -ld .
drwxr-xr-x 2 noroi group 512 Sep 1 22:42 .
--
池田研二 稲城駅前在住