便利なキーワード検索サイト ことなびトップページへ
デル株式会社







ことなびTOP  サイトマップ  ことなびとは?



便利!NINJA TOOLS
→FC2検索 用語 Wikipedia YouTube

ファイルシステム とは?

 ページ内リンク   ↓ウィキペディア(Wikipedia)記事  ↓Yahoo!知恵袋

ファイルシステムは、コンピュータリソースを操作するための、オペレーティングシステムが持つ機能の一つ。ファイルとは、主に補助記憶装置に格納されたデータを指すが、デバイスプロセス、カーネル内の情報といったものもファイルとして提供するファイルシステムもある。

出典: 『ウィキペディア(Wikipedia)』


ファイルシステムはてなダイアリーを別ウィンドウで表示  :  さまざまな物理デバイス上のデータを「ファイル」としてOSから透過的に扱うための仕組み。実際のデータ部分と、メタデータと呼ばれる管理情報から構成される。

出典: 『はてなダイアリー』


和英辞典

ファイルシステム 別ウィンドウで表示  …  (n) file system

ノースウエスト航空 のマイルは、国内航空会社のマイレージと違って無期限!! 格安パックツアーでも
100%マイルが付くのでお得!! 国内往復分15000マイルを貯めて沖縄や北海道へ!!


関連商品

本  Linuxの教科書―ホントに読んでほしいroot入門講座 (IDGムックシリーズ)別ウィンドウで表示

高町 健一郎 /  最安値(新品): ¥ 1,680 
おすすめ度5.0(全レビューの平均)初めて専用サーバを扱うことになって、Linux関連の書籍を数冊購入したのですが、 皮肉なことに一番安くて一番薄いこの本が一番役に立っています。 自宅サーバを対象とした、GUIベースで書かれている本は沢山あるのですが、 私のようにホスティング会社の専用サーバをリモートで扱わなければ ならない環境に役に立つ参考書はなかなか見つかりませんでした。 しかし、この本はコマンドラインを使ってLinuxサーバを管理するための本なので、 私の目的にはうってつけでした。 本当に必要なことが平易な文章で解りやすく書かれています。 というと内容が少なすぎると受け取られるかもしれませんが、実際には この一冊で大抵のことは済んでしまいます。 まず、この本を読んだ上で、もし必要であればディストリビューション別の もっと分厚い本を手に入れればいいと考えます。 具体的な内容は他の方も触れていますが、それ以外にもクラッキング対策が 解りやすく書かれているのも高評価です。 新人サーバ管理者は是非最初にこの本を手に入れてください。  (minmin_gogo さんのレビュー)

本  例解UNIXプログラミング教室別ウィンドウで表示

冨永和人 /  最安値(新品): ¥ 3,990 
おすすめ度5.0(全レビューの平均)最初の2章はC言語のポインタや宣言などの復習から始まります。説明が手際よくて、これだけでいわゆるポインタ本に匹敵する価値があるかもしれせん。大学での講義の経験にもとづいて、学習者がつまずきやすいポイントに先回りした学習効果の高い本になっていると思います。例題が適度に短く、非常に豊富かつ単調で、学習ドリルのような雰囲気でシステムプログラミングの作法が身につきます。POSIX準拠のシステムが対象です。  (sasra さんのレビュー)

おもちゃ&ホビー  ドラゴンボールZ カードダスステーション システムファイル別ウィンドウで表示

これはだいぶ昔に発売された物なので、このファイルの中のカードシートは今はもう売っていません。 そのカードシートも少し白みがかかったシートなので、コレクション用として保存するシートではないと思いました。 やのまんの2穴式4ポケットのファイルを入れてみましたが、フラップが邪魔になりうまく開けれなくなってしまい、出すときにカードを痛める恐れがありました。が、これはこれでコレクションにしています。  (アイス好き さんのレビュー)

家電 エレクトロニクス  HAKUBA フォトシステムファイル SF-1替台紙 EL判用 520460別ウィンドウで表示

最安値(新品): ¥ 800 

家電 エレクトロニクス  HAKUBA フォトシステムファイル SF-1 黒台紙 EL用 ブルー 519013別ウィンドウで表示

最安値(新品): ¥ 1,650 

家電 エレクトロニクス  HAKUBA フォトシステムファイル SF-1 EL用 ブルー 520712別ウィンドウで表示

最安値(新品): ¥ 1,500 




ウィキペディア(Wikipedia)記事


ファイルシステムは、コンピュータリソースを操作するための、オペレーティングシステムが持つ機能の一つ。ファイルとは、主に補助記憶装置に格納されたデータを指すが、デバイスプロセス、カーネル内の情報といったものもファイルとして提供するファイルシステムもある。

より正確に定義すれば、ファイルシステム抽象データ型の集まりであり、ストレージ階層構造データの操作/アクセス/検索のために実装されたものである。ファイルシステムを特殊用途のデータベース管理システム (DBMS) と見なせるかどうかは議論があるが、ファイルシステムとデータベース管理システムには多くの共通点がある。

元々はファイリングシステム文書管理システム)から生まれた語である。


目次

概要

最も身近なファイルシステムは補助記憶装置上のもので、「セクタ」などと呼ばれる通常512バイトの固定サイズの「ブロック」の配列にアクセスするものである。ファイルシステムはこのセクタ群を使用してファイルやディレクトリを構成し、各セクタがどのファイルに使用され、使用されていないセクターはどれなのかを把握する必要がある。

しかし、ファイルシステム自体は記憶装置を利用する必要はない。ファイルシステムは何らかのデータへの操作とアクセスを提供するものであり、そのデータが記憶装置に格納されているか(例えば、ネットワーク接続経由で)動的に生成させるかは問題ではない。

ファイルシステムがストレージ上にあるかどうかに関わらず、一般的なファイルシステムはファイルのファイル名を束ねるディレクトリを持つ。通常、ファイル名は何らかのファイル・アロケーション・テーブルのインデックスと対応しており、それはMS-DOSファイルシステムであるFATでも、UNIX系ファイルシステムでのinodeでもそのようになっている。ディレクトリ構造は平坦な場合もあるし、ディレクトリの下にサブディレクトリのある階層構造の場合もある。いくつかのファイルシステムではファイル名も構造化されていて、拡張子やバージョン番号の文法が存在する。そうでない場合、ファイル名は単なる文字列であり、ファイル毎のメタデータは適当な場所に格納される。

階層型ファイルシステムUNIXで有名なデニス・リッチーの初期の研究対象であった。それまでの実装では階層はあまり深くできなかった。例えばIBMの初期に生まれたデータベース管理システムであるIMSなどがそうである。UNIXの成功により、リッチーはその後のOS開発(Plan 9Inferno)でもファイルシステムのコンセプトを様々な対象に広げていった。

初期のファイルシステムはファイルとディレクトリの生成、移動、削除といった機能を提供していた。ディレクトリへの追加リンクを生成する機能(UNIXにおけるハードリンク)、親リンク(UNIX系OSにおける"..")の名称変更、ファイル間の双方向リンクの生成といった機能は当初は存在しなかった。

初期のファイルシステムはファイルの切捨て(内容を一部削除すること)、ファイルとファイルの連結、ファイルの生成、ファイルの移動、ファイルの削除、ファイルの更新などの機能を提供していた。ファイルの先頭へのデータ挿入 (prepend)、ファイルの先頭からの内容切捨て、任意の位置の内容の削除や挿入などといった機能は提供されていなかった。提供された操作は対称性に乏しく、どんな状況でも便利というものではない。例えばUNIXにおけるプロセス間のパイプファイルシステム上には実装できない。というのもパイプはファイル先頭からの切捨てに対応できないためである。

ファイルシステムの基本操作への安全なアクセスはアクセス制御リストまたはケーパビリティに基づいて行われる。研究によれば、アクセス制御リストは完全なセキュリティを確保するのが困難といわれており、研究中の最新のOSではケーパビリティが使われる傾向にある。商用ファイルシステムはまだアクセス制御リストを使用している(コンピュータセキュリティ参照)。

また、アプリケーションソフトウェアの中にも、独自のファイルシステムを採用しているものがある。(FMRシリーズFM TOWNS用のワープロソフトウェアである「FM-OASYS」など)

分類

ファイルシステムはディスクファイルシステム分散ファイルシステム、特殊用途のファイルシステムに分類できる。

ディスクファイルシステム

「ディスクファイルシステム」は、直接的か間接的かに関わらずコンピュータシステムに接続された補助記憶装置、特にハードディスク上にファイルを格納するためのものである。ディスクファイルシステムとしては、FATNTFSHFSext2ext3ext4ネットワーク・アプライアンス社のフルジャーナルファイルシステムであるWAFLISO 9660ODS-5UDFHPFSJFSUFSVTOC (Volume Table Of Contents)、XFSなどがある。ディスクファイルシステムの一部はジャーナルファイルシステムまたはバージョニングファイルシステムでもある。

データベースファイルシステム

新しいファイル管理コンセプトとしてデータベースに基づいたファイルシステムがある。階層構造管理の替わりにファイルはその属性で識別される。属性とは、ファイルの型、内容、作者などといったメタデータである。従って、ファイル検索はSQLまたは自然言語で行われる。例えば、BFSGnomeVFSHFS+WinFSなどがある。

トランザクションファイルシステム

これは、イベントトランザクションをファイルに記録する特殊なファイルシステムである。通常、一回の何らかの操作で複数のファイルが変更される。多くの場合それらの変更は相互に関連しており、それら変更を同時に反映するのが重要と言える。例として銀行から銀行へ電子送金する場合を考えてみよう。銀行のコンピュータは、もう一方の銀行へ転送命令を「送信」し、自身の記録として転送開始したことを保持しておく。もし、コンピュータが記録を更新する前に何らかの原因でクラッシュしてしまった場合、転送したという記録が残っていないし、お金だけが失われる。トランザクションシステムは、このような間違いを両方の銀行で訂正して正しいトランザクションを再実行するものである。各トランザクションは記録され、どこで何をしたのかという完全な記録を残す。この種のファイルシステムフォールトトレラント設計であることを意図して設計されているため、オーバヘッドが大きくなる。

ネットワークファイル共有とファイルシステム

ネットワークに対応したOSの多くが、ファイル共有のためのプロトコルを備えている。これを分散ファイルシステムと呼ぶ。

クライアントPCで標準的なWindowsネットワーク (CIFS, NetBIOS, NetBEUI)、あるいはMacintoshAppleTalkApple Filing Protocol、UNIXのNFSなどが有名であり、かつてはNetWareIPX/SPXも大きなシェアを持っていた。

こういったネットワークファイルシステムは、共有元のファイルシステムを抽象化した、別の一種のファイルシステムとして扱われる。

個々のOSが標準とするNTFS,UFS,HFS+,ext3,HPFS,BFSなどの差異も、Sambaなどを使ったファイル共有では実用上の問題はほとんど無くなる。ただし、ファイル名制限自体は存在し、また拡張属性等が利用できないなどの問題はあり得る。

なお、WindowsやMac OS Xを対象にしたNAS装置でも、内部のハードディスクドライブ (HDD) ではRaiserFSやXFSなどが使われている場合が少なくない。

特殊用途のファイルシステム

特殊用途のファイルシステムとは、ディスクファイルシステムでも分散ファイルシステムでもないものを意味する。ソフトウェアが動的にファイルを用意するようなシステムがこれに当たる。用途としてはプロセス間の通信のためだったり、一時的なファイル空間のためだったりする。

特殊用途のファイルシステムはUNIXのようなファイル中心のOSで主に使用されている。例えば一部のUNIX系システムで使用されている procfs(/proc)ファイルシステムは、プロセスや他のOS機能の情報へのアクセスを提供している。

ボイジャー計画などの深宇宙探査機ではデジタルテープに基づいた特殊なファイルシステムが使われた。最近の探査機カッシーニリアルタイムオペレーティングシステム (RTOS) のファイルシステム(あるいはRTOSに影響されたファイルシステム)を使用している。マーズ・パスファインダーのローバーもそのようなRTOSファイルシステムを使用しているが、これらはフラッシュメモリに実装されている点が重要である。

ファイルシステムとオペレーティングシステム

ほとんどのオペレーティングシステム (OS) はファイルシステムを提供しており、ファイルシステムは最近のOSの重要な部分となっている。初期のマイクロコンピュータのOSではファイル管理がほとんど唯一の仕事であり、その名前にも現われている (DOS; Disk Operating System)。初期のOSにはディスクオペレーティングシステムと呼ばれるファイルシステム相当の部分が存在していた。マイクロコンピュータによっては、その部分だけをロードして使用することができた。初期のOSでは、唯一の名前のないファイルシステムがサポートされていた。例えば、CP/Mにも独自のファイルシステムがあるが、改めて名前を付けるほどの機能は持っていない。

OSはファイルシステムとユーザーの間のインタフェースを提供する必要がある。このインタフェースはテキストベースでもよいし(シェルOpenVMSのDCLのようなCUI)、グラフィカルでもよい(GUIベースのファイルマネージャなど)。グラフィカルなインターフェイスでは、フォルダメタファーディレクトリを表すものとして使用される。

組み込み用途向けや、特定用途向けのOSでは、ファイルシステムをサポートしていなかったり、ファイルシステムをサポートしていても、実際の利用時にファイルシステムを使用しないこともある。 このようなケースでは、コンピュータは外部記憶装置を持っていないか、持っていてもOSからは単なるデータストリームとして認識し、直接アドレスを指定することでアクセスされる。 このように、ファイルシステムはコンピュータやOSにとって必須の機能ではない。

平坦なファイルシステム

平坦なファイルシステムでは、ディレクトリが存在せず、ハードディスクであれフロッピーディスクであれ、全てが同じレベルに格納される。単純なシステムだが、ファイルの数が増えるにつれてユーザーがデータを分類して管理することが非常に困難となり、非能率的になった。

他の初期の小規模システムと同様、Mac OSは当初、平坦なファイルシステム、Macintosh File System (MFS) を採用していた。そのバージョンのMac OSでは、Finderがあたかも階層があるかのようにファイルシステムを見せかけていたという。MFSは即座に本当のディレクトリをサポートしたHierarchical File Systemに置き換えられた。

UNIXとUNIX系システムのファイルシステム

UNIXとUNIX系OSは、各デバイスにデバイス名を設定するが、デバイス上のファイルにそれを使ってアクセスするわけではない。UNIXは仮想ファイルシステムを生成し、全てのデバイス上の全てのファイルがひとつの階層構造内にあるように見せかける。従って、UNIXにはひとつのルートディレクトリがあり、全てのファイルはその下のどこかに配置されるのである。さらにUNIXのルートディレクトリは物理的にデバイス上に存在している必要がない。それはそのシステムの1台目のディスクにあるとは限らず、そのシステム内にあるとも限らない。UNIXではルートディレクトリをネットワーク経由で共有することができる。

別のデバイス上のファイルにアクセスするため、最初にOSにそのデバイスのファイル群をディレクトリツリー上のどこに置くか(見せるか)を指示しなければならない。この処理をファイルシステムマウント (mounting) と呼ぶ。例えば、CD-ROM内のファイルにアクセスするには、OSに対して「このCD-ROMのファイルシステムを、このディレクトリの下にツリーとして見せろ」と指示しなければならない。このときに指定するディレクトリを「マウントポイント」と呼ぶ。UNIX系システムには/media/mntディレクトリがあることが多く(Filesystem Hierarchy Standardで定義されている)、フロッピーディスクやCDといった媒体を一時的にマウントするのに使われる。マウントされるデバイスは何も格納されていないこともあるし、サブディレクトリがあるかもしれない。一般に、システムアドミニストレータ(すなわちスーパーユーザー)だけがファイルシステムのマウントを行うことができる。

UNIX系OSにはマウント処理のためのソフトウェアやツールがあり、新たな機能も提供されている。そのひとつとして「自動マウント auto-mounting」がある。

多くの場合、ルート以外のファイルシステムブート直後からOSにとって必要とされる。全てのUNIX系システムはブート時にファイルシステムをマウントする機能を提供している。システムアドミニストレータは、それらのファイルシステムfstabファイルに定義しておく。fstabにはオプションやマウントポイントが記述される。

場合によっては、後で必要とされるとしてもブート時にファイルシステムをマウントする必要がないこともある。UNIX系システムには要求されたときに初めてファイルシステムを自動的にマウントする機能もある。

可搬記憶媒体は非常に一般化してきた。可搬媒体は物理的に接続されていないコンピュータ間でプログラムやデータを転送することを可能とする。最も一般的なものとしてCD-ROMとDVDがある。それらが機器に挿入されたことを自動的に検知し、その中身がファイルシステムとして使用可能であることをチェックし、自動的にマウントするユーティリティも開発されてきた。

最新のUNIX系システムでは「スーパーマウント (supermouting)」と呼ばれる機能が登場している。実例として the Linux supermount-ng project を参照されたい。例えば、スーパーマウントされたフロッピーディスクはシステムから物理的に取り去ることができる。通常、補助記憶装置は内容の同期を取る必要があり、その後にアンマウント (unmount) 処理をしてから取り去らなければならない。これに対して、スーパーマウントではアンマウントする必要が無く、続いて次の媒体を挿入することができる。システムは自動的にそれを検知しマウントポイント以下の内容を新たな媒体のものに変更する。

同様の機能として一部ユーザーが好んで使うのは autofs である。このシステムはスーパーマウントに似ていて、マウントコマンドを手で入力する必要がない。異なるのは、分散ファイルシステムなどを経由して使用する際の互換性に優れていて、媒体の挿入を検知するのではなく、アプリケーションがそのファイルシステムの中身にアクセスしようとしたときにマウントするようになっている点である。従って、ネットワークサーバなどで使われている。

スワップファイルシステム

UNIX系OSではMS-DOS系のOSとは違い、仮想メモリのためのHDD利用に、仮想メモリファイルのほかにスワップファイルシステムも利用する。

MS-DOS系OSでは、HDDのパーティション内(OSからドライブとして認識されるFATやNTFSのファイルシステム内)に、スワップ用の隠しシステムファイルを作成する。

UNIX系OSでは、たとえばLinuxではスワップ用パーティションを用意し、mkswap、swaponコマンドで利用可能とする。 FreeBSDなどの場合は、BIOSから扱われるパーティションをスライスと呼称し、その中にさらに独自に管理する複数のパーティションとしてスワップファイルシステムを構築する。

Mac OS X のファイルシステム

Mac OS XファイルシステムMac OSから継承したHFSX (HFS+) である。HFSXはメタデータが豊富で大文字/小文字保護をするファイルシステムである。Mac OS X 自体、UNIXがルーツでPOSIXに準拠しており、HFSXにもPOSIX ACL準拠のパーミッション情報が追加されている。HFSXにはジャーナルが追加されてファイルシステム構造の破損を防ぐようになり、自動的にフラグメント化したファイルを正規ブロックにするなどのアロケーション機能の最適化もいくつか導入されている。

ファイル名は最大255文字である。HFS+はファイル名の格納にUnicodeを使用している。Mac OS X ではファイルフォーマットはメタデータかファイル名のタイプコード(Windowsの拡張子相当)で示される。

POSIX系のファイルシステムとは異なり、ファイルをディレクトリの相対位置でアクセスするため、理論上パス長に制限がない。ただ、基盤となるDarwinがUNIX互換を保つため、システムの多くの部分で1024文字を限界としている。Carbonを経由し、HFSXを直接アクセスする場合はこの限りではない。

HFSXには3種類のリンクがある。ハードリンクシンボリックリンクエイリアスである。エイリアスはリンク先のファイルが移動されたり改名されたりしてもリンクし続けるようになっている。

ベル研究所のPlan 9のファイルシステム

Plan 9はUNIXの長所を拡張して新たなアイデアを導入し、UNIXの欠点を修正したものとして計画された。

ファイルシステムの観点から言えば、UNIX的に何でもファイルとして扱うという思想は変わっていないが、Plan 9では本当に「すべて」がファイルとして扱われ、アクセスされる(つまり ioctl も mmap もない)。驚くべきことにファイルインターフェイスを汎用化すると同時にそれを大幅に単純化している。例えば、シンボリックリンクもハードリンクもsuidも古い機能とされ (obsolete)、アトミックなcreate/open操作が導入された。重要な点はファイル操作がうまく定義されているためにioctlなどを排除できたことである。

また、9Pプロトコルによってローカルとリモートのファイルの違いが無くなっている(時間的な遅延だけは残っている)。このため、ネットワーク経由で別のコンピュータシステム上のデバイス(これもファイルとして表される)をローカルにあるデバイスと全く同じように操作することが可能となっている。従ってPlan 9の元では、複数のファイルサーバをひとつのファイルシステムに見せることができる。この「合成」ファイルシステムのサーバ群は、システムの単純さを保ちながらマイクロカーネルの利点を生かしてユーザー空間で動作することもできる。

Plan 9では全てのものがファイルとして抽象化されている。ネットワーク、グラフィックス、認証、暗号化など様々なサービスをファイル識別子経由の入出力で扱える。例えば、NATなしでIPスタックのゲートウェイシステムを構築したり、追加コードなしでネットワーク透過なウィンドウシステムを提供したりできる。

Plan 9のアプリケーションはFTPサイトからFTPサービスを受けることもできる。ftpfsサーバによってリモートのFTPサイトをローカルのファイルシステムにマウントすることができ、普通のファイルシステムとして扱えるのである。仮想的なファイルやディレクトリを合成するファイルサーバで /mail/fs/mbox をユーザーのメールボックスとするような電子メールシステムもある。wikifsはwikiへのファイルシステムインターフェイスを提供する。

これらのファイルシステムは、プロセス毎のプライベートな名前空間によって構成される。そのため、各プロセスは分散システムに存在する数々のファイルシステムを固有の観点で見ることができる。

Infernoは、これらの概念をPlan 9から受け継いでいる。

Microsoft Windows のファイルシステム

Microsoft Windowsはそれ以前のOSから継承して開発されてきた(CP/MMS-DOS)。また、ファイルシステムとユーザーインターフェイスの考え方を他からも導入してきた(UNIX、OS/2)。そのため、Windowsには FAT (File Allocation Table)NTFS (NT File System) という二種類のファイルシステムが存在する。FATファイルシステムの古い版では、ファイル名に制限があり、FATでフォーマットできるディスクやパーティションのサイズにも制限があった。

Windows NTで導入されたNTFSはACLベースのパーミッション制御を可能とした。ハードリンク、複数ファイルストリーム、属性索引、クオータ管理、圧縮、ファイルシステム間のマウントポイント(ジャンクションと呼ばれる)、不良セクタの動的ホットフィックスなどがサポートされているが、全てについて充分な文書が公開されているわけではない。

他のOSとは異なり、Windowsは「ドライブレター (drive letter)」によってディスクやパーティションをユーザーに見せている。例えば C:\WINDOWS\ というパスはCドライブにある WINDOWSディレクトリを意味している。Cドライブは1台目のハードディスクパーティションを表すものとして使われることが多く、そこにブート時に起動されるWindowsが格納される。この「伝統」は非常に堅固に植えつけられているため、一時期のWindowsには必ずCドライブにインストールされるという仕様が存在することもあった。これは、MS-DOSから受け継がれた伝統で、AとBがフロッピーディスクドライブ用に予約されていたために Cドライブ以降がハードディスクとなったものである。ネットワークドライブにも同様のドライブ文字がマップされる。ただし、PC-9800シリーズおよびその互換機では、ハードディスク上のWindowsをOSとして起動したときAドライブがハードディスクに割り当てられた。

Windows NT系OSでは、NTエグゼクティブレベルではドライブレターそのものは実体として存在しなくなった。従前のドライブレターは例えばC:ならば、デバイスオブジェクト\??\C:から\Device\HarddiskVolume1などのボリュームデバイスオブジェクトへのシンボリックリンクで、従来のWindowsと互換性を持たせている。Windows NT系でも見かけ上ドライブレターに縛られていると誤解される場合があるが、例えばボリュームにドライブレターを与えず、ジャンクションによって特定のディレクトリにボリュームを割り当てた場合、ドライブレターを介する事なくボリュームにアクセスできるといった形でNT系ではドライブレターが必須の要素で無くなった事を知ることが出来る。ただし、Win32サブシステムの制約により、Win32アプリはNTエグゼクティブレベルのディレクトリを起点にパス名を指定する事はできない。例えば、Win32サブシステムの制約を受けないInterixサブシステムでは可能。

Windows はGUIを通してユーザーと対話するため、ディレクトリを「フォルダ」と称し、フォルダアイコンでグラフィカルに表示している。

ハイバネーション領域

パーソナルコンピュータ(パソコン)ではハイバネーションという機能が使える場合がある。この機能を使うとメモリー内容をHDD等に保存して電源を落とし、再度電源投入した際に速やかに作業を再開できる。この為にはハイバネーションファイルを利用するものと、ハイバネーション用パーティションを作成するものが存在する。

ハイバネーション用パーティションを作成する場合は、特殊なファイルシステムとも考えられるが、実際には単にメモリーをベタ複製しているだけとも言える。

リカバリー領域

市販パソコンでは、リカバリー領域と呼ばれる隠しパーティションを持つものがある。

パーティション内のファイルシステムについての情報は公開されないのが通例。ただし、これが提供されるパソコンは実質すべてがWindows付属である。そのため、Windows用のNTFSやFAT32等でフォーマットされている可能性は高い。

OpenVMS のファイルシステム

これについては、Files-11で解説する。

MVS(IBM汎用コンピュータ)のファイルシステム

これについては、MVSファイルシステムで解説する。

ファイルシステムと対応するパーティション番号

IBM PC/ATやPC-9800シリーズ等ではHDDのパーティションごとの利用目的を判別しやすくするため、パーティションごとに番号を与えている。

この番号により、OSの起動時の、利用すべきパーティションの自動判別が速やかに行なわれる。

ただし、正常な設定が行なわれていない場合も考えて、実際のファイルシステム状況を分析して認識する処理が一般的。 具体的には、HPFSと同じパーティション番号を引き継いで開発されたNTFSのような計画上の問題もあった。

また、開発組織がまったく違うために、Linux用のスワップファイルシステムサン・マイクロシステムズSolarisファイルシステムが同じ番号を持ってしまったような例もある。

こういった状況では、誤った認識でデータ破壊が起きる可能性がある。


比較

一般情報

ファイルシステム 開発者 登場年 最初にサポートしたOS
RT-11 DEC 1973年 RT-11
FAT12 マイクロソフト 1977年 Microsoft Disk BASIC
ODS-2 DEC 1979年 VMS
UFS(FFS) カーク・マキュージック 1983年 4.2BSD
HFS アップルコンピュータ 1985年 Mac OS
FAT16 マイクロソフト 1987年 MS-DOS 3.31
HPFS IBM & マイクロソフト 1988年 OS/2
JFS IBM 1990年 AIX[1]
VxFS VERITAS 1991年 SVR4.0
NTFS マイクロソフト 1993年 Windows NT
ext2 レミ・カール 1993年 Linux
UFS(FFFS) カーク・マキュージック 1994年 4.4BSD
XFS SGI 1994年 IRIX
UDF ISO/Ecma International/OSTA 1995年 -
FAT32 マイクロソフト 1996年 Windows 95 OSR2[2]
HFS+ アップルコンピュータ 1998年 Mac OS 8.1
ext3 スティーブン・トウィーディ 1999年 Linux
ReiserFS Namesys 2001年 Linux
UFS2 カーク・マキュージック 2002年 FreeBSD 5.0
ZFS サン・マイクロシステムズ 2004年 Solaris
Reiser4 Namesys 2004年 Linux
NILFS NTT 2005年 Linux
exFAT マイクロソフト 2006年 Windows Embedded CE 6.0
ファイルシステム 開発者 登場年 最初にサポートしたOS

諸元

最大ファイル名長 ディレクトリ名に使える文字種[3] 最大パス名長 最大ファイルサイズ 最大ボリュームサイズ [4]
RT-11 12バイト A-Z, 0-9, $ 16バイト 33,554,432バイト (65536 * 512) 33,554,432バイト
FAT12 8.3形式(または255文字) [5] NUL 以外の全Unicode [5] [6] 制限の定義無し [7] 32MB 1MB~32MB
FAT16 8.3形式(または255文字) [5] NUL 以外の全Unicode [5] [6] 制限の定義無し [7] 2GB 16MB~2GB
HFS 31バイト  : 以外の任意のバイト 無制限 2GB 2TB
FAT32 8.3形式(または255文字) [5] NUL 以外の全Unicode [5] [6] 制限の定義無し [7] 4GB 512MB~2TB [8]
NTFS 255文字 NUL 以外の全Unicode Unicodeで32,767文字(ファイル名やディレクトリ名はそれぞれ255文字まで) [7] 16EB [9] 16EB [9]
HFS+ 255文字 (UTF-16)[10] 任意の正しいUnicode [11] [6] 無制限 8EB 8EB [12]
UFS(FFS) 255バイト NUL 以外の任意のバイト [6] 制限の定義無し [7] 4GB 256TB
UFS(FFFS) 255バイト NUL 以外の任意のバイト [6] 制限の定義無し [7] 4GB~256TB 256TB
UFS2 255バイト NUL 以外の任意のバイト [6] 制限の定義無し [7] 512GB~32PB 1YB
ext2 255バイト NUL 以外の任意のバイト [6] 制限の定義無し [7] 16GB~2TB[4] 2TB~32TB
ext3 255バイト NUL 以外の任意のバイト [6] 制限の定義無し [7] 16GB~2TB[4] 2TB~32TB
NILFS 255文字 NUL 以外の任意のバイト [6] 制限の定義無し [7] 8EB 8EB
ReiserFS 4032バイト/255バイト(VFSによる制限) NUL 以外の任意のバイト [6] 制限の定義無し [7] 8TB[13] 16TB
Reiser4 不明 不明 制限の定義無し [7] x86では 8TB 不明
XFS 255バイト NUL以外の任意のバイト [6] 制限の定義無し [7] 8EB[14] 8EB[14]
JFS 255バイト NUL以外の任意のバイト [6] 制限の定義無し [7] 8EB 512TB~4PB
VxFS 255バイト NUL以外の任意のバイト [6] 制限の定義無し [7] 16EB 不明
UDF 255バイト NUL 以外の全Unicode 1023バイト [15] 16EB 不明
最大ファイル名長 ディレクトリ名に使える文字種[3] 最大パス名長 最大ファイルサイズ 最大ボリュームサイズ [4]

メタデータ

ファイル所有者名を保持 POSIX式ファイルパーミッション 作成時タイムスタンプ(TS) 最新アクセス時TS 最新メタデータ更新TS 最新アーカイブTS ACL セキュリティ/MACラベル 拡張ファイル属性/フォーク (HFS) チェックサム/ECC
RT-11 × × × × × × × ×
FAT12 × × × × × × × [16] ×
FAT16 × × × × × × × [16] ×
FAT32 × × × × × × × ×
HPFS [17] × × × × 不明 ×
NTFS ×[18] × 不明 ×
HFS × × × × × × ×
HFS+ 不明 ×
UFS(FFS) × × × × × ×
UFS(FFFS) × × [19] [19] × [20] ×
UFS2 × [19] [19] ×
ext2 × × [21] [21] ×
ext3 × × [21] [21] ×
NILFS × × × × ×
ReiserFS × × [21] [21] ×
Reiser4 × × × × × ×
XFS × × [21] ×
JFS × ×
VxFS × 不明 [21] ×
UDF × ×
ファイル所有者名を保持 POSIX式ファイルパーミッション 作成時タイムスタンプ (TS) 最新アクセス時TS 最新メタデータ更新TS 最新アーカイブTS ACL セキュリティ/MACラベル 拡張ファイル属性/フォーク(HFS) チェックサム/ECC

機能

ハードリンク ソフトリンク ブロック・ジャーナリング または メタデータのみのジャーナリング 大文字/小文字区別 大文字/小文字保護 ファイル更新ログ インクリメンタル・スナップショット XIP
RT-11 × × × × × × × × ×
FAT12 × × × × × × × × ×
FAT16 × × × × × × × ×
FAT32 × × × × × × × ×
HPFS × × × × × × 不明 ×
NTFS [22] × [23] 不明
HFS+ × [24] [25] [26] × ×
UFS(FFS) × × × × ×
UFS(FFFS) × × × × ×
UFS2 × ×[27] × 不明
ext2 × × × × [28]
ext3 [29] × × 不明
NILFS [30] × × 不明
ReiserFS [31] × × 不明
Reiser4 × × 不明 不明
XFS × 不明
JFS × [32] × 不明 不明
ODS-2 [33] × × × ×
UDF [34] [34] × ×
VxFS × [35] 不明
ZFS [36] ×[36] × ×