フォルダとファイルシステム
- 著者:YAMANJO
- 公開日:2008年7月9日
- 最終更新日:2024年11月28日
2進数の羅列であるバイナリデータにメタデータを付与することでファイルとなり、コンピュータが扱うことができるようになります。それはOSのファイルシステムの役割になります。ファイルシステムについて理解していきましょう。
バイナリがファイルになる流れ
前項の学習で、ファイルというものを理解しました。ソフトウェアやコンピュータは、ファイルという形式になってはじめてデータを扱うことができるようになります。
どのようにファイルにまとめられるかというイメージは、なんとなく掴めたのではないでしょうか。
2進数の羅列にすぎないデータ(バイナリ)は、OSによってファイルにまとめられます。そして、ファイルとなったデータはまたOSによって整理され、管理されています。
こうした一連の機能を提供するのが、
ファイルシステム
になります。
OSのファイルシステムについて、詳しく理解していきましょう。
例として、Wordで文書を作成する場面を想定すると、まず、ユーザーが文書を作成します。そして「保存」ボタンをクリックすると「名前を付けて保存」の画面が表示されて、ファイル名を打ち込み、保存場所を選択して保存します。
このとき、Wordは文書をバイナリデータ(2進数)に変換します。変換の流れは、プログラムとは で学習のとおりです。
そして、WordはOSに保存要求を出します。また、合わせて変換したバイナリデータとユーザーが指定したファイル名と保存場所の情報も渡します。
OSはその要求を受け取ると、保存領域の確認を行います。保存領域とはパソコン内のストレージと呼ばれるハードディスクやSSDなどの記憶装置のことです。(ストレージについては、ストレージとは で詳しく学習します)
受け取ったバイナリデータのサイズに合わせて保存領域の確保を行い、そのデータを書き込み(保存)ます。またその際に、前項で学習のとおり「名前」「保存場所」「サイズ」「更新日時」などのメタ情報を付加します。
そして、そのファイル情報は、
ディレクトリ
に記録されます。
ディレクトリとは、フォルダと同じ意味合いで使われることが多いですが、正確にはOSが内部でファイルの位置や情報を管理するために使う仕組みになります。
ざっくり言うと、ユーザーが管理しているフォルダとは別に、同じ構造をOSが内部で再現しているイメージです。つまり、ユーザーによる視覚的な管理とOSによる物理的な管理には誤差が生じるため、OS内部にしっかりした台帳を持って管理しているイメージです。
したがって、ユーザーが作成する視覚的な管理ツールが「フォルダ」で、OSが作成する物理的な管理ツールが「ディレクトリ」になります。そのため、同じ意味で使われる場合も多いです。
なぜこのような仕組みになっているのかと言うと、ファイル管理はOSが一手に引き受けており、すべてのアプリケーションソフトからの要求に答える必要があるためです。つまり、膨大なファイルを正確に管理する必要があるということです。
OSの役割 で少し触れましたが、Windowsでは「FAT(ファット)」や「NTFS(エヌティーエフエス)」と呼ばれるファイルシステムが採用されています。
2024年現在、WindowsではNTFSが主流です。詳細な説明は割愛しますが、ファイルがストレージ上に適切に配置されるように管理します。特に、大きなファイルや多くの小さなファイルを効率的に保存でき、ストレージの断片化を最小限に抑える工夫がされています。
断片化とは、ストレージ上にファイルが連続して配置されず、異なる場所に分散して保存される現象のことです。断片化すると、ファイルの各部分がストレージ上の異なる場所に散らばり、読み書き時にアクセス効率が低下します。
つまり、ストレージの無駄を最小限に抑え、データが効率的に書き込まれるように設計されたファイルシステムです。
物理的保存場所と論理的保存場所
ファイルシステムは、バイナリデータにメタ情報を付加してファイルを形成し、保存領域を確保して書き込み、ディレクトリに登録するという流れでファイルを管理しています。
これだけみると難しいイメージはありませんが、ユーザーが管理するフォルダとOSが管理するディレクトリとの違いや、ユーザーが指定している保存先とOSが確保する保存領域の違いなど、実際の操作と混同すると整理が難しくなってきます。
ポイントとなるのはファイルの保存場所です。その整理ができるとファイルシステムとディレクトリが理解できると思います。
まず、実際のデータであるバイナリがどこに保存されるかということですが、これは先述のとおりストレージと呼ばれる「記憶装置」に保存されることになります。
いくら保存の画面で保存先に「デスクトップ」を指定したとしても、ファイルが実際に書き込まれているのは記憶装置です。つまり、保存の画面で指定する保存先と、実際にデータが記憶される保存領域は異なるということです。ある意味当然のことなので言われるまでもないことかもしれません。
何が言いたいのかというと、
ストレージは物理的な保存場所でディレクトリは論理的な保存場所である
ということです。
物理的な保存場所とは、OSが空き容量を管理し、その空きスペースを見つけてファイルを書き込む現実の保存場所です。
一方、論理的な保存場所は、ユーザーがファイルを整理する環境を提供している仮想的なものです。つまり、フォルダによる視覚的にファイルを整理できる環境です。
したがって、
ファイルシステムはユーザーに仮想空間を提供している
ということになります。
その仮想空間で、ユーザーはフォルダを作成してファイルを整理しているのです。
そしてOSは、ユーザーが指定する仮想的な保存先(つまりフォルダ)に基づいて、OS内部のディレクトリにファイル情報を登録します。ディレクトリには、物理的な保存場所であるストレージに保存された実際のファイルの位置やメタ情報も登録されており、実際にはすべてのファイルがディレクトリによって管理されています。
例えば、「9月」というフォルダを作成して、その中に「運動会」と「文化祭」というファイルを保存しているとします。
この2つのファイルは、論理的には同じ「9月」フォルダの中に保存されていますが、物理的な保存場所はストレージ上のどこかであり、まったく異なる位置に書き込まれている可能性があります。
この場合、OSはディレクトリに、ファイル名「運動会」「文化祭」、親フォルダ「9月」、物理的なストレージ上の保存場所、ファイルサイズや日付などのメタ情報を登録します。
ファイルを移動したり削除すると、ともなってディレクトリの情報も更新されます。こうしてOSは、ディレクトリによってファイルを完全に管理することができます。
フォルダと階層構造
フォルダとディレクトリの違いを理解すると、OSがどのような仕組みでファイルを管理しているのかを理解することができます。
ご存じのとおり、フォルダはファイルを入れる視覚的な入れ物です。ユーザーが自由に作成することができ、その中にファイルを入れて整理することができます。
ディレクトリは、このようにユーザーが管理しているフォルダとは別に、同じ構造をOSが内部で再現しているイメージだと説明しましたが、正確に言えば、ディレクトリの構造を視覚的なGUIとして提供されるのがフォルダです。(GUIについて詳しくは、OSの役割 を参照してください)
つまり、フォルダはディレクトリの内容をわかりやすく表示するための視覚的表現にすぎません。ユーザーがフォルダを操作しているように見えますが、実際にはOS内部のディレクトリに対して間接的に命令を出していることになります。
そのため、フォルダとディレクトリは異なるものです。しかし、実質的に同じ構造を持ち、イメージも同じであるため、同義語と使用されているのです。
同じ「9月」というフォルダを例に用いると、ディレクトリには以下のように情報が登録されることになります。
/
└── 9月
├── 運動会(ストレージの物理アドレス:クラスタ100〜120)
└── 文化祭(ストレージの物理アドレス:クラスタ200〜250)
クラスタとは、データを物理的に格納する単位のことで、実際にファイルが保存されているストレージの位置を示しています。また、「9月」というフォルダの中に2つのファイルがあるという論理的な位置も示しています。
他にもメタ情報などが登録されますが、この意味としては、実際の位置はストレージのクラスタ番号、論理的な位置は親ディレクトリ(フォルダ)からの位置で管理しているということです。
この場合「/」は大元の親ディレクトリを表しています。この一番上となるディレクトリを、
ルートディレクトリ
と言います。
たいていの場合、ルートディレクトリは「Cドライブ」という大元のストレージ(ストレージ内に論理的に割り当てた大きな区画)になります。そこからたどってどの位置にあるのかを示しています。
この例は単純ですが、例えば「9月」フォルダの中に「スポーツ」と「芸術」というフォルダを作成し、どんどんファイルを増やしていくと、この記述はさらに枝分かれして深さが増していきます。
/
├── 9月
├── 運動会
├── 文化祭
├── スポーツ
│ └── マラソン
└── 芸術
└── 絵画
こうした管理方法は、表現が木に似ていることから、
階層構造(ツリー構造)
と呼ばれています。
ツリー構造にすることで、必要に応じて深さを増やすことができ、どんどん階層を追加できるため、ファイルやフォルダが増えた場合でも整理が簡単になるなど、様々なメリットがあります。
したがって、効率的にファイルを管理するために、ディレクトリは階層構造(ツリー構造)になっています。
これをユーザーにGUIとして反映したものがフォルダです。
同じように、フォルダの中にフォルダがあって階層が形成され、木の枝のように広がっています。このような階層表示を「エクスプローラー表示(エクスプローラービュー)」と言います。
エクスプローラー表示は、Windowsロゴキー+「E」ボタン、もしくはスタートボタン上で右クリックし、メニューから「エクスプローラー」を選択すると表示させることができます。
この場合も、一番上の階層は「Windows(C:)」であり、ルートフォルダになります。(それよりも上に「PC」や「ドキュメント」などありますが、これらはよく使われるフォルダを表示しているだけです。
ただし、ルートフォルダ(ルートディレクトリ)は一番上という意味であり、「Windows(C:)」が唯一のルートフォルダというわけではありません。
ルートとは「根」の意味です。一番上位であるということは、これを削除すれば以下の階層のフォルダやファイルはすべて削除されるということになります。ルートフォルダを操作すれば、その中に入っている子フォルダやファイルすべてに影響します。
通常、ルートフォルダにはWindowsのシステムファイルが保存してある「Windows」フォルダ、アプリケーションソフトなどのプログラムファイルが保存してある「Program Files」フォルダといった極めて重要なフォルダが保存してあります。
ユーザーが作成したデータファイルを保存する場合は、「ドキュメント」、「ピクチャ」、「ミュージック」といったWindowsが最初から用意してくれているフォルダへ保存していくと良いでしょう。もちろん新たにフォルダを作成して管理しても何ら問題はありません。
フォルダによってファイルを管理するメリットは、ディレクトリと同じツリー構造のメリットを享受できることです。フォルダが「箱」の役割を果たし、その中に関連するファイルをまとめて保存することで、容易にグループ化して整理することができます。
フォルダを使って上手にファイルを整理することが上級者への第一歩と言えます。ただし、その入れ物はOSが提供する仮想的な入れ物にすぎません。
更新履歴
- 2008年7月9日
- ページを公開。
- 2009年3月17日
- ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
- 2018年1月24日
- ページをSSL化によりHTTPSに対応。
- 2024年11月28日
- 内容修正。
著者プロフィール
YAMANJO(やまんじょ)
- 経歴
- 岡山県出身、1980年生まれ(申年)の♂です。現在、総合病院で電子カルテなどの情報システム担当SEとして勤務。医療情報学が専門ですが、ネットワーク保守からプリンタの紙詰まり、救急車の運転手までこなしています。
- 医療情報技師、日本DMAT隊員。ITパスポート、シスアドなど、資格もろもろ。
- 趣味は近所の大衆居酒屋で飲むこと、作曲(ボカロP)、ダイビング。
- 関連リンク
- 詳細なプロフィールはこちら
- 作成したボカロ曲などはYoutubeへ
- X(Twitter)
