高等学校情報/情報の科学/ファイルシステム
ファイルシステムの原理

ハードディスクとかのファイルは、どうやって管理されるのだろうか?
ファイルシステムの原理

われわれはすでに、CPUやメモリ処理の、おおまかな原理は学んだ。しかし、ハードディスクが、どういう原理で情報処理されてるか、まだ分からない。
ファイルシステムの原理

そこで、ハードディスクの仕組みを考えてみよう。
ファイルシステムの原理

結論から言うと、1つの目次ファイルが隠れているようだ。パソコンは、ハードディスクを「開く」などの命令を受けた際、目次ファイルを自動的に読み取り、ハードディスク内のファイル構成を把握している。
ファイルシステムの原理

まず、とりあえず市販のパソコンに市販の外付けハードディスクをつないだら、パソコンがハードディスクを読み取りしてくれるが、いったい何を読み込んでいるんだろう。
ファイルシステムの原理

まず、そのハードディスク内にあるファイルの名前を読み取っているようである。
ファイルシステムの原理

じっさい、OS上からハードディスクにアクセスして内部表示してみると、そのハードディスク内にあるファイルの一覧が表示される。
ファイルシステムの原理

ここで注目する事として、各個別のファイルの中身は、まだアクセスしていない事である。
ファイルシステムの原理

じっさい、個別のファイルにアクセスしてみると、読み取りに時間が掛かる。
ファイルシステムの原理

つまり、ハードディスクにアクセスして開いた時点での、自動的なファイルの読み取り作業では、ファイル名の一覧だけを読み取っている。
ファイルシステムの原理

ハードディスクにアクセスして開いた時点での、自動的なファイルの読み取り作業では、ファイル名の一覧だけを読み取っている。
ファイルシステムの原理

ここで気づく事として、つまり、ファイル一覧だけが、ファイル中身の本体とは別に存在している事が分かる。
ファイルシステムの原理

つまり、われわれが一見すると「ファイルの集合体」のように見える、ハードディスクの中身には、じつは、各個別のファイル中身の本体とは別に、ファイルの目次(もくじ、index)のような物が、存在している事になる。
ファイルシステムの原理

ハードディスクへのアクセス時には、この目次ファイルだけを読みとっているようだ。
ファイルシステムの原理

そして、その、目次を仲介して、われわれのマウス操作などの操作にもとづいて、パソコン(つまりオペレーティングシステム)は各個別のファイルを読み取りに行っている。
ファイルシステムの原理

つまり、目次ファイルには、その目次で紹介された各ファイル本体の場所(ハードディスク上での場所)についての情報が、記録されている。
ファイルシステムの原理

パソコンが、利用者からの操作によって「○○のファイルを読み取れ」という指示を受けると、パソコンは、その指示にしたがい、目次で紹介されたファイル本体の場所に移動して、ファイルを読み取る、・・・という仕組みだろう。
ファイルシステムの原理

つまり、ファイル本体の記憶領域とは別に、ファイル一覧の目次のための記憶領域が、その外付けハードディスク内にあるハズだ。
ファイルシステムの原理

また、このような作業の前提として、ファイルを作成する時点で、ファイル本体の作成とは別に、ファイル一覧の目次にも、作成しようとしてるファイルの情報を追加する必要がある。
ファイルシステムの原理

上記のような、オペレーティングシステムなどによる、ファイルを取り扱うためのファイル管理の仕組みのことをファイルシステムという。
ファイルシステムの原理

オペレーティングシステムに、いろんな種類があるように、ファイルシステムにもいろんな種類があり、規格は統一していない。
ファイルシステムの原理

また、ひとつの記録メディア上で使えるファイルシステムは、1種類までである。
ファイルシステムの原理

実際に市販のハードディスク内のファイル一覧を見てみると、まずファイル名を表示する。
ファイルシステムの原理

この事から、われわれの発見した目次ページには、(オペレーティングシステムとの、やりとり によって)ファイル名を表示する機能が必要である。
ファイルシステムの原理

もっというと、前提として、文字データを保存する機能が、われわれの目次ファイルに必要である。われわれの目次ファイルには、ファイル名を文字データとして記録できるようにする必要がある。
ファイルシステムの原理

(原理的には、開こうとしてる目的のファイル側でファイル名を記録しておいて、ファイル一覧を表示する際には、各個別ファイル内にあるファイル名データを読み込むという仕組みでも、原理的にはファイル名表示が可能なのだろう。
ファイルシステムの原理

しかし当wikibooksのこの教科書では、説明の簡単化のため、目次ファイル側でファイル名の一覧を記録してある仕組みであるとする。)
ファイルシステムの原理

また、たいていのOSでは、ハードディスクのファイル一覧を見ると、たとえばファイルが画像ファイルなら「jpg」(ジェイペグ)とか「bmp」(ビットマップ)のように、ファイル形式が表示される。
ファイルシステムの原理

この事から、われわれの目次ファイルには、ファイル形式も記録しておく必要が、ありそうである。世の中には、無数のファイル形式があるので、そのすべてのファイル形式にOSが事前に対応しておく事は不可能である。なので、ファイル形式は、そのファイル形式の名前で判断するしかなさそうである。
ファイルシステムの原理

つまり、ファイル形式の名前を保存する機能も、われわれの目次ページには、必要になりそうである。
ファイルシステムの原理

こうやって目次ファイル側にファイル形式の名称も記録しておくことで、その目的のファイルを開く際に、いちいち目的ファイルの中身をOSが分析しなくても、自動的に、そのファイル形式をあつかうアプリケーションを起動できるので、便利そうである。
ファイルシステムの原理

(原理的には、目的ファイル側でファイル形式の種類を指定しても、構わないのだろう。また、目的ファイル側と目次ファイル側の両方で、ファイル形式を指定しておいても、構わないのだろう。 とりあえず当wikibooksのこの教科書では、説明の簡単化のため、目次ファイル側のみでファイル形式を指定するとしておく。)
ファイルシステムの原理

たいていのオペレーティングシステムでは、画像ファイルをあつかう専門のアプリケーションが指定されている。なので、いちいち、その画像ファイル専門アプリケーションの起動作業を人間が行う必要が、なくなるので、便利である。
ファイルシステムの原理

つまり、ファイルの起動には、実は、そのファイルを開くための別のアプリケーションが必要な場合が多い。
ファイルシステムの原理

たとえば画像データや文字データの場合などのように、いわゆる「コンテンツ」をあつかうファイルを開く際に、そういう場合(そのファイルを開くための別のアプリケーションが必要な場合)がある。
ファイルシステムの原理

原理的には、その目的ファイルを開くための別アプリケーションを自動起動する機能がなくてもオペレーティングシステムは成り立つのだろうが、しかし一般的に流通している有名なOS(たとえばWindowsやLinuxなど)では、ファイルを開こうとする際に自動的に、目的ファイルを開くための別アプリケーションも自動起動されるようになっている。
ファイルシステムの原理

いくつものファイルを「フォルダ」に入れて、まとめる事のできる機能が、一般的なOSにはある。この「フォルダ」機能も、結局は、われわれの言うところの「目次ファイル」の仕組みの流用であろう。
ファイルシステムの原理

「フォルダ」という名前と、アイコンのバインダーのようなグラフィックから一見すると、あたかも、その「フォルダ」の中に、さまざまなファイルが入れられるように見えるが、実はフォルダの正体は、おそらくは、ハードディスク全体の構成の目次ファイルとは別に、新規の目次ファイルを作成できるようにしているだけであり、その機能が「フォルダ」と呼ばれているだけであろう。
ファイルシステムの原理

フォルダのアイコンをクリックすると、そのフォルダに相当する目次ページが読み込まれ、その目次ページに記録・管理されている個々のファイルが表示されるが、利用者の目線からは、あたかも「フォルダ」内に個々のファイルが配置されているかのように見える。
ファイルシステムの原理

つまり、ハードディスク内の「フォルダ」データの場所と、そのフォルダの管理する個々のファイルのデータの場所は、実は、まったく離れた場所に、位置している。
ファイルシステムの原理

「フォルダ」データ内にあるのは、管理対象の個々のファイルの名称や保管場所などのデータだけである。
ファイルシステムの原理

このため、「フォルダ」アイコンから、何らかのファイルのアイコンを出し入れしても、ハードディスク内でのファイルの場所は変わらずに、単に「フォルダ」データの記録が上書きされるだけであろう。
フォーマット

対象のハードディスクの目次ファイルのつくりかたは、オペレーティングシステムが決めてあげないといけない。 また、そもそも、目次ファイルをどこに配置するかとか、そもそもページに相当するものをどうやって作るかとか、そういう構成も、オペレーティングシステムが決めてあげる必要がある。
フォーマット

例えるなら、ある書籍に、目次だけ存在しても、ページがなければ、書籍として機能していない。
フォーマット

記憶容量の余っているハードディスクとは、書籍に例えるなら、ページが存在しているが、ページには何も書き込まれていない状態である。
フォーマット

ハードディスクだけがあっても、ハードディスク上での何バイトを1ページと決めるかとかは、オペレーティングシステムなどが決める必要がある。
フォーマット

実際の本では、読み手による、ある1ページを読み終わったかどうかの判断は、右下(もしくは左下)の文字を読み手が読み取る事により「このページの最後の文字だな」と分かる。
フォーマット

しかしコンピューター上のデータでは、そのような物理的な「右下」とか「左下」なんて物は存在しないので、かわりに、書籍でいう「ページ」を読み終えた事をパソコンが判断するための目印となるデータが必要であろう。
フォーマット

だから、個別のファイルを記録するまえに、まず、「書籍でいう「ページ」に相当するものを読み終えた事をパソコンが判断するための目印となるデータ」をハードディスク内の各所に配置してあげないといけない。
フォーマット

要するに、まず「ページ」に相当するような枠組みごと、作ってあげる必要がある。
フォーマット

このように、あるハードディスクが記録メディアとして利用できようにするために、まずは枠組みをつくる準備が必要であり、このような枠組みづくりの作業をフォーマット(format)という。
フォーマット

なお、一般にある使用済みのディスクをフォーマットとすると、それまでに記録していた個別のデータは消去されてしまう。
フォーマット

また、市販の外付けハードディスクなどは、すでにwindows用にフォーマットをされているので、フォーマットをしなくても使用できる場合が大半である。
フォーマット

またなお、オペレーティングシステムを内蔵ハードディスクにインストールする時に、その内蔵ハードディスクは、そのオペレーティングシステム用にフォーマットされているのが一般的である。