ファイルシステムとは
ファイルシステムとは、ストレージ(ハードディスクやSSD、USBメモリなど)に保存されるデータを管理し、人間やプログラムが扱いやすいように「ファイル」や「ディレクトリ(フォルダ)」という単位で整理・操作できるようにするOSの機能や仕組みです。ファイルシステムのおかげで、ユーザーはデータが物理的にディスクのどこに書き込まれているかを意識することなく、「絶対パス(ルートからの位置)」や「相対パス(現在位置からの位置)」を指定してファイルを保存したり読み出したりできます。
具体例
- WindowsのNTFS:Windowsで標準的に使われているファイルシステムです。ファイルごとのアクセス権限設定や、データの暗号化、エラー修復機能などを備えています。
- macOSのAPFS:Apple製品で使われているファイルシステムで、データのコピーが非常に高速であることや、暗号化が強固な点が特徴です。
- ディレクトリ構造:「C:\\Users\\Username\\Documents\\report.txt」のように、フォルダの中にさらにフォルダを作成し、その中にファイルを配置して階層的に整理できる機能そのものが、ファイルシステムの基本機能です。
もう少し詳しく
ファイルシステムは、オペレーティングシステム(OS)がハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、USBメモリなどのストレージデバイス上の膨大なデータを適切に管理し、ユーザーやアプリケーションソフトウェアが「ファイル」や「ディレクトリ(フォルダ)」という直感的で抽象化された形でデータにアクセス・操作できるようにするための基盤となる仕組みです。
データは物理的にはディスクメディアのセクタやブロックという微小な単位で記録・分散配置されていますが、ファイルシステムはそれらの物理的な記録場所のアドレスと、人間が理解できる論理的なファイル名やディレクトリの階層構造(木構造)を対応付ける役割(マッピング管理)を担っています。これにより、ユーザーはディスク上のどの物理位置にデータがあるかを全く気にすることなくファイルを保存できます。
さらに、ファイルシステムは単にデータ本体を保存するだけでなく、ファイルの作成日時、更新日時、サイズ、アクセス権限(パーミッション)、所有者情報といった「メタデータ(属性情報)」も厳密に管理しています。また、現代の高度なファイルシステム(Linuxのext4、WindowsのNTFS、macOSのAPFSなど)は、突然の電源断やシステムクラッシュが発生した際に、データの不整合や破損を防ぐための「ジャーナリング機能」を標準で備えています。ジャーナリング機能により、ファイルシステムに対する変更予定や変更履歴が事前にログ領域に記録されるため、万が一障害が発生しても再起動時の復旧処理が極めて迅速かつ安全に行えます。
試験でのポイント
情報処理技術者試験においてファイルシステムは、主にディレクトリの階層構造やパス(経路)の指定方法に関する問題で頻繁に登場します。ルートディレクトリ(最上位のディレクトリ)から目的のファイルまでのすべての経路を省略せずに記述する「絶対パス」と、カレントディレクトリ(現在ユーザーが作業中のディレクトリ)を起点として相対的な経路を記述する「相対パス」の違いを明確に理解し、正しくパスを記述・解釈できるかが問われます。「..」(一つ上の親ディレクトリ)や「.」(カレントディレクトリそのもの)といった特殊な記号を使った相対パスの表記ルールには必ず慣れておく必要があります。
また、OSごとの代表的なファイルシステムの名称や特徴を問われることもあります。例えば、古い規格であるFAT32は1ファイルの最大サイズが4GBに制限されているという弱点がある点や、Windows標準のNTFSは高度なアクセス制御(ACL)やファイル単位の暗号化に対応している点などがポイントです。
さらに、ファイルへのアクセス権の付与に関連して、誰に「読み取り(Read)」「書き込み(Write)」「実行(Execute)」の権限を与えるかといったセキュリティ管理の観点からの問題も出題されるため、メタデータ管理の一環として理解しておきましょう。
関連する用語
ディレクトリ、絶対パス、相対パス、ジャーナリング、メタデータ