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

ファイルシステムの原理編集

問題提起編集

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

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

そこで、ハードディスクの仕組みを考えてみよう。

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


まず、観察編集

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

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

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

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

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


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

気づいたこと編集

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

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

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

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


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

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

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


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


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


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

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

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

満たすべき仕様編集

ファイル名の記録が必要編集

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

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

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

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

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

ファイル形式の記録が必要編集

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

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

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


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

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


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

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

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

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

「フォルダ」との関係編集

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

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

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

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

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

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


フォーマット編集

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

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

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

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

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

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

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

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

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

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

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

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