UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

FAT32


FAT32


0.改定履歴

  • 1997.02.23 初版
  • 1997.07.02 HTML化

1.OEM Service Release 2(OSR2)

 MS-DOS,Windows,Windows95と使われてきたファイルシステムのFAT(File Allocation Table)が,日本語版の場合1996年11月に新しいFAT32となった.

 これはWindows95のセカンドリリース,OEM Service Releas 2(OSR2)というバージョンで新たに導入された. ただし,名前から見てわかるとおりOEMなのでプレインストールマシン(購入したマシンに組み込まれた状態)でしか出荷されない. パッケージによる販売,WWWなどの通信による配布などを行わないと言う事だ. ただし,現在新機種と購入するとOSR2が入っている.

 OSR2であることを確認するには,コントロールパネルのシステムのプロパティでバージョンを確認する. 「4.00.950B」となっているものがそれだ.

1.1.Windows95のバージョン履歴

Windows95のバージョン
名称 バージョン 出荷時期
初期出荷版 4.00.950 1995年11月23日
Service Pack 1 4.00.950a 1996年5月頃
OSR 2 4.00.950B 1996年11月頃

1.2.OSR2で加わった主な機能

  • FAT32
    • FATエントリを32bitに拡大
  • DriveSpace
    • FAT32に対応.仮想ドライブの最大容量が512Mバイトから2Gバイト拡大
  • バスマスタIDE
    • IDE接続した機器のバス・マスタ転送モードに対応.ただし対応しているチップセットは限られる.
  • ディスプレイ拡張機構
    • 再起動なしで解像度,色数の変更が出来る.
  • DirectX 2.0
    • DirectXのドライバを標準で装備.Direct 3Dを含む.
  • OpenGL
    • 3次元グラフィックスのドライバ.これに対応したスクリーンセーバを含む.

2.最大クラスタ数の増加

 FATは,ファイルがディスク内のどこに書かれているかをクラスタ単位で管理する.
 ハードディスクは,通常512Kバイトのセクタで構成されており,複数のセクタを集めた物がクラスタである.
 FATでのディレクトリ・エントリ(ファイル名,作成日時,属性など)は16ビットだったため,最大64K個のクラスタを管理できる. クラスタは最大32Kバイトという制限があり,よってFATシステムで扱える最大領域は32K×64K=2Gバイトということになる.

 当初のMS-DOSはFATが12ビットだったため,領域の最大は128Mバイトだったが,これはMS-DOS3.0で16ビットに変更されている.
 FAT32ならば4Gのクラスタを扱えるようになる. FAT32が対応できる領域の最大値は計算上128Tになるが,実際には最大2Tバイトである. これはAT互換機のBIOSパラメータブロックが最大4G個という制約があるためである.

3.512Mバイトが境界線

 FAT32の導入によってハードディスクの領域確保を行うfdisk.exeが新しくなり,ここでFAT32にするか否かを決定できる. ただし,512Mバイト以下の領域は常にFATでフォーマットされ,ディスク全体のサイズが512Mバイト以下の場合はFAT32に出来ない.

 圧縮ツールDriveSpaceが圧縮したファイル領域CVF(Compresed Volume File)の内部にもFATに相当する管理機能があるが,FATが32ビットであっても内部の管理機構は16ビットのままであり,このために圧縮ドライブの最大は2Gバイトである. それでも従来の512Mバイトからは拡張されている.

 また,FAT32になってもフロッピー・ディスクのFATは,常に12ビットである.

 現在,Windows95 OSR2以外でのOSではFAT32領域をアクセスする手段はない.MicrosoftではWindowsNTでも対応する予定としているが,既存のMS-DOSやWindowsでは対応する見込みがない.

4.クラスタサイズが縮小とルートディレクトリのエントリ

 FAT32では,クラスタサイズがFATにくらべて小さくなると言う利点がある.

 クラスタサイズは領域の大きさによって自動的に決まる. FATの場合,2Gの場合で32バイト,1Gバイトで16Kバイト,512Mバイトで8Kバイトとなる. これがFAT32では8Gバイトまでの領域だと4Kバイトになる. 8Gバイトを越えると8Kバイトとなる.

 クラスタサイズが大きいと言うことは,ディスクを無駄にしやすい. クラスタサイズが32Kバイトだと,全てのファイルは32Kバイト単位でディスクに書かれる. つまり,1Kバイトのファイルでもディスク上で確保されるのは32Kバイトになるのである. この場合,使われていない31Kバイト分が無駄になる.

 Windows95のインストールでの違いを以下に示す.

ファイルシステム 容量 使用クラスタ
FAT 118.5M 32K×3791クラスタ
FAT32 94.6M 4K×24217クラスタ

 クラスタサイズが違うだけで23.9Mの差が出来る.

 32Kバイト以下のファイル,たとえばWindows95のショートカットファイルなどが多数ある場合にはこの違いは大きくなる.

 また,ルートディレクトリで作成できるファイル数の制限が無くなった.

 FATでは必ず領域の先頭にFAT領域(FATの情報が書かれているディスク領域)部分が書かれている. そしてFATではその次にルートディレクトリのエントリがくるが,この部分はサイズが固定で512エントリ分しかなかった. そのために,255文字のファイル名がついたファイル(21エントリ分)を作成すると24個までしか収容できない. FAT32ではルートディレクトリのエントリはどこにあってもかまわなくなった.

5.ディスクアクセスが遅くなる

 FATよりもFAT32のクラスタの方が小さくなる. 言い換えれば,同じ大きさのファイルを格納するために必要なクラスタ数が増える. 従って,1ファイルをアクセスするためにたどるチェーンが長くなるので処理に時間がかかる. また,これがフラグメントを起こしている場合は,クラスタへのアクセスも遅くなる. FAT32はFAT領域自身もFATの2倍の大きさがあり,主記憶上に起ききれなくなる可能性が高くなるため,キャッシュを有効利用できない,あるいはメモリスワップが発生するなどで処理に時間がかかるようになる可能性が高い.

6.FAT用ユーティリティが使えない

 FAT32では,FAT用のディスクユーティリティが動作しない問題がある. OSR2にはScanDisk,Defrag,DriveSpaceの新しい物が付属している.

 この原因の1つは,ディスクアクセスに使うインタフェイスが変更されている店である. Windows3.1ではMS-DOSのインタフェイスをつかい,int32Hとint13Hの割り込みを使っていたがWindows95ではこれらを使えなくし,代わりにint25Hとint26Hを提供していたが,OSR2ではそれをさらに変更し使えないようにした.

 今の所Microsoftではこれにかわるインタフェイスを公開していない.

 トラブルが起きたときにユーティリティが使えない,他のOSからアクセスできないとなると八方ふさがりになる可能性が大きい.



広告スペース
Google