ファイル・システムには大きく「レコード指向」と「ストリーム指向」の2種類があります。同じストリーム指向でも,さまざまな方式があります。
ファイル・システムには,ファイルの構造によって大きく2つの種類があります。
一つは,特定形式のデータの格納単位である「レコード」の集合体としてファイルを取り扱うファイル・システムです。
レコードには,用途やハードウエアに応じて固定長や可変長など,さまざまなレコードが用意され,必要に応じてユーザーが組み合わせてファイルを構成します。ファイルの読み書きの最小単位はレコードになります。
このようなファイル・システムを「レコード指向ファイル・システム」と呼びます。レコード指向ファイル・システムを採用するOSには,米IBM社製メインフレームで使われる「MVS」(Multiple Virtual Storage)などがあります。
もう一つは,ファイルを単なるバイト列として取り扱うファイル・システムです。バイト単位のデータの入出力の仕組みだけが提供されます。ファイル中のデータをどのように取り扱うかは,アプリケーションやユーザーに任されます。このようなファイル・システムを「ストリーム指向ファイル・システム」と呼びます。 WindowsやLinuxをはじめ,現在のOSで使用されるファイル・システムは,ほとんどがこのストリーム指向ファイル・システムです。
読み書きの方法は同じ
OSや記憶装置に応じて多種多様なファイル・システムが利用されます。例えば,Windows XPで利用されるファイル・システムには主に表1のようなものがあります。Linuxに至っては表2のように数多くのファイル・システムをサポートします。
異なるファイル・システムを使った場合,ファイルの読み書きの方法に変化が生じるのでしょうか。現代的なOSの場合,ファイル・システムが違ってもファイルの読み書きの方法は共通化されています。ファイル・システムの違いを吸収して,統一したインタフェースを提供する抽象化レイヤーが用意されているからです(図2)。
このような抽象化レイヤーは,UNIX系OSでは「VFS」(Virtual File System),WindowsやMS-DOSでは「IFS」(Installable File System)と呼びます。