
コンピューティングにおいて、階層型ファイルシステムとは、ディレクトリを使用してファイルをツリー構造に整理するファイルシステムのことである。 [ 1 ]
階層型ファイルシステムでは、ディレクトリにはファイルと他のディレクトリ(サブディレクトリと呼ばれる)の両方に関する情報が含まれており、サブディレクトリはさらに他のサブディレクトリを指すことができ、以下同様です。[ 2 ]これはツリー構造、つまり階層として構成され、通常はルートが最上位に表示されます。ルートディレクトリは階層のベースであり、通常はディスク上の固定された場所に格納されます。
階層型ファイルシステムは、すべてのファイルに関する情報が単一のディレクトリに格納され、サブディレクトリが存在しないフラット型ファイルシステムとは対照的です。
現在、ほとんどすべてのファイルシステムは階層構造になっています。ファイルシステムとは、階層システムの具体的なインスタンスを指します。例えば、NTFS、HPFS、ext4はすべて、バッファリング、ファイル割り当て、ファイル復旧など、それぞれ異なる機能を備えた階層システムを実装しています。
ファイルパスは、コンピュータのファイル構造におけるファイルの場所を示す文字列です。[ 3 ] [ 4 ]つまり、ルートディレクトリからファイルまで訪れたディレクトリノードをノード名のリストとして表し、リスト内の項目はパス区切り文字で区切られます。パス区切り文字は、>Multics 、 [ 5 ] Unixライクな/システム、[ 6 ] MS-DOS 2.0 以降、Windows 、およびOS/2システムで使用されています。\
絶対パスはルートディレクトリから始まります。つまり、パスの先頭にあるパス区切り文字で始まり、その文字はルートディレクトリを表します。パス区切り文字のみで構成されるパスは、ルートディレクトリを参照します。[ 7 ]
プロセスの作業ディレクトリは、各プロセスに動的に関連付けられるディレクトリです。ファイルはルートディレクトリからではなく、作業ディレクトリを基準に検索されます。ログオン時に、ユーザーの作業ディレクトリはホームディレクトリに設定されます。その後、コマンドを使用して設定することもできます。[ 8 ]
相対パスは、ルートディレクトリからファイルへのパスではなく、作業ディレクトリからファイルへのパスで訪問したディレクトリノードを表します。相対パスはパス区切り文字で始まりません。[ 7 ]
Multicsは、階層型ファイルシステムを提供する最初のオペレーティングシステムです。[ 9 ] [ 10 ]ファイル名は任意の長さや形式にすることができ、特定のファイルやディレクトリに複数の名前を付けることができ、ディレクトリ間のシンボリックリンク(symlink)は、Multicsが階層型ファイルシステムで導入した多くの機能の1つです。[ 11 ]
OS/360は初期の頃から階層システムを採用していた。[ 12 ]
システムカタログはフラットファイルシステムの上に構築されており、ディスクファイルの「ディレクトリエントリ」は各ボリュームのボリューム目次(VTOC)に格納され、ファイルはカタログを介して、またはボリュームシリアル番号を直接指定することによって参照できます。JCLでシリアル番号を指定せずにデータセット名を指定すると、カタログ検索が実行されます。カタログにはボリュームへのポインタのみが格納されます。[ 13 ]
OS/360 カタログは、他の階層型ファイルシステムといくつかの点で異なります。「ルート ディレクトリ」、つまり という名前のデータセットにSYSCTLGは、 と呼ばれるサブ ディレクトリへのファイル ポインタまたはリンクが含まれる場合がありますCVOLS。[ 13 ]パスの区切り文字は です.。すべてのパスは絶対パスであり、先頭の は.常に想定され、コード化することはできません。パス コンポーネント ( の間.) は 8 文字に制限されています。カタログはディスク ( DASD ) ファイルに限定されず、磁気テープデータセットもカタログ化できます。カタログに示されているすべてのボリュームがオンラインである必要はなく、システムではカタログ検索後に要求に応じてディスク ボリュームとテープ ボリュームをマウントできます。
他のほとんどのシステムとは異なり、カタログ化せずにファイルを作成することが可能です。カタログ化は、JCLまたはユーティリティプログラムを介して要求されます。
カタログ化されたデータセット名は、次のようになるかもしれませんPAYROLL.WEEKLY.HOURS。
IBMの仮想ストレージオペレーティングシステムは、VSAMカタログSYSCTLGに置き換えられました。VSAMデータセットのカタログ化は必須ですが、従来どおり、VSAM以外のデータセットはカタログ化してもしなくても構いません。「アクセス方式サービス」(IDCAMS)プログラムがVSAMカタログを管理します。
CP /Mオペレーティングシステムはフラットファイルシステムを使用しており、ディレクトリには最大 64 個のファイルの情報が格納されています。これは、フロッピー ディスクが 128 KB しか保持できなかった時代には十分なものでした。IBM PC DOS と MS-DOS 1.0 も同じ構造を継承しました。ハードディスク ドライブをサポートする DOS 2.0では、階層型ファイルシステムが導入されました。階層型ファイルシステムは、パフォーマンス上の理由から、フラット ディレクトリを単純に拡張するのではなく使用されました。「単一のディレクトリと 10 倍の数のファイルを持つフラット DOS ファイル構造では、論理的に検索に 10 倍の時間がかかります。」[ 2 ] OS/2とWindowsも階層型ファイルシステムをサポートしており、DOS と同じパス構文を使用しています。
System 2.1 より前のClassic Mac OSのすべてのバージョンは、すべてのファイルを単一のリストで管理するフラットファイルシステムであるMacintosh ファイルシステムを使用していましたが、Finder はデスクトップファイルにレコードを保持することでフォルダの錯覚を提供していました。[ 14 ] System 2.1 以降、Macintosh ファイルシステムは、複数の階層のフォルダとファイルを可能にする階層ファイルシステムに置き換えられました。 [ 15 ]