seegongsik
オペレーティングシステム

ファイルシステム わかりやすく

前のレッスンでは、ドライバーのおかげでディスクのような装置とも話せるようになりました。でもディスクの中を開けてみると、ファイルもフォルダーもなく、番号のついたマスがどこまでも並んでいるだけです。この平らなマスの海から、自分の写真一枚をどうやって見つけ出すのでしょうか。

01

ディスクの素顔は番号のついたマス

私たちは画面でファイルをアイコンとして見て、フォルダーを開いてその中のまた別のフォルダーを見ます。でもディスクそのものには、そんなものはありません。
ディスクはじつは、同じ形のマスが0番、1番、2番と番号順に平らに並んだ、巨大な保管庫にすぎません。マス一つひとつをブロックと呼びます。
ブロックにはデータのかけらが入りますが、どのマスがどのファイルなのか、名前は何なのかを、ディスク自身はまったく知りません。番号とデータ、それがすべてです。

ディスク · 生ブロック
番号とデータだけ。名前もフォルダーもない。

マスを押すとデータが入ります。マスには番号しかなく、名前もフォルダーもありません。これがディスクの素顔です。

マスは番号でしか区別されず、中身どうしには何のつながりもありません。大きなファイルはマス一つに入りきらず、空いたマスもあちこちに散らばっています。
そうなると一つのファイルをいくつものマスに分けて入れることになりますが、散らばったかけらを、あとでどうやって集め直すのでしょうか。
これが、オペレーティングシステムが解くべき最初の宿題です。

02

ファイルは散らばったブロックを束ねる名札と地図

解決策は意外に単純です。オペレーティングシステムは「写真.jpgという名前のファイルは、3番、7番、12番のマスに、この順番で入っている」という小さなメモを一つ置きます。このメモが地図です。
名前を渡すと、オペレーティングシステムは地図を広げ、散らばったマスを順番に訪ねてかけらを集めてきます。
つまりファイルとは、じつは二つのものを合わせたものです。一つはマスに散らばったデータのかけら、もう一つはそれを名前で束ねる地図です。私たちがダブルクリックしているのはこの地図で、ディスクは地図が指すマスを読んでくれるだけです。

名前を押して地図をたどる
0
1
2
3 ▬
4
5
6
7 ▬
8
9
10
11

名札を押すと、地図に沿って散らばったマス(3,7,12)が順番に集まり、一つのファイルになります。

一枚の地図が、散らばったマスを一つのファイルに束ねてくれました。おかげで私たちは、マスの番号を知らなくても名前だけでファイルを呼び出せます。
でも、ファイルが一つや二つではなく何千もあったらどうでしょう。名札が何千枚も積み重なって、また途方に暮れてしまいます。
このたくさんの名札を整理する方法が必要です。いよいよフォルダーの出番です。

03

フォルダーはファイルを入れる、もう一つのファイル

フォルダーというと、ファイルとはまったく違うもののように聞こえますが、じつはフォルダーもただのもう一つのファイルです。ただ、中身が特別なのです。
ふつうのファイルは写真や文字を入れますが、フォルダーというファイルは「この中に入っているファイルの名札の一覧」を入れます。だからフォルダーを開くとは、その一覧を読んで、どんな名札が入っているかを見ることです。
フォルダーの中にさらにフォルダーを入れることもできます。すると枝分かれする木、つまりツリーの形ができます。いちばん上の根から枝をたどって下りていけば、目当てのファイルに着きます。

▾ ルート /
▸ photos/
▸ docs/
フォルダーを押して開く

フォルダーを押すと、中のファイルと下のフォルダーが開きます。根から枝をたどって、目当てのファイルまで行けます。

平らだったマスの海の上に、いまや上下に枝分かれするすっきりした木が立ちました。フォルダーがもう一つのファイルにすぎないので、オペレーティングシステムは新しいしくみを作らずに、同じファイルの考え方だけで整理の構造を建てたのです。
でも、一つ気になることが残ります。こうして作ったファイルを消すと、ディスクからそのデータは本当にすぐ消えるのでしょうか。
次の段階で、その秘密を少しのぞいてみましょう。

04

消すとは、地図だけを消すこと

直感では、ファイルを消せばディスクからデータがきれいに消えそうです。でもオペレーティングシステムは、ふつうそうはしません。データの入ったマスを一つずつきれいに空にするには、時間が長くかかるからです。
そこで早く終わらせるために、名札と地図だけを消して、マスの中のデータはそのまま残します。そのかわり、そのマスに「もう空き、また使ってよい」と印だけをつけておきます。
地図がなくなるとそのデータへの道が切れるので、私たちの目にはファイルが消えたように見えます。でもマスの中身は、まだその場所に残っているのです。

draft.txt ▸ 4,8
4 ▬
8 ▬

ファイルを消すと、名札と地図は薄くなります(切れた道)が、マスの中のデータはその場に残ります。新しいファイルがそのマスを上書きしたとき、はじめて消えます。

だから、ときどき復元ツールが消したファイルをよみがえらせることがあります。地図さえ見つけ直せば、その場に残っていたマスをつなぎ直せるからです。反対に、新しいファイルがそのマスを上書きしてしまえば、元のデータは永遠に消えます。いま広く使われている半導体のストレージは、空いたマスをすぐに片づけてしまうこともあるので、復元はもっと難しくなります。
結局、削除の核心はデータを消すことではなく、データへの地図を消すことでした。ファイルもフォルダーも削除も、すべて地図と名札という一つの考えの上に立っているのです。

05

平らなディスクにかぶせた、木の形の幻

一歩下がって、全体を見てみましょう。ディスクの本当の姿は、番号のついた平らなマスでした。その上にオペレーティングシステムは三つの魔法をかけました。
一つ目、名札と地図で、散らばったマスを一つのファイルに束ねました。二つ目、ファイルを入れるもう一つのファイルとしてフォルダーを作り、ツリーを建てました。三つ目、消すときはデータではなく地図を消しました。
この三つのおかげで、私たちはマスの番号など一生知らなくても、名前とフォルダーだけで気軽にファイルを扱えるのです。

1を押して開始

三枚を順に押すと、平らなブロックから、名札で束ねたファイルへ、さらにフォルダーのツリーへと、幻が積み上がるようすがひと目でわかります。

仮想メモリが本物より大きな記憶を見せてくれたように、ファイルシステムは平らなマスを、きちんと整った木として見せる幻です。本物は単純で、便利さはオペレーティングシステムが上にのせたものです。
でも、このすっきりしたツリーを一台のコンピュータで何人もが一緒に使うとしたら、だれでも他人のファイルを開いたり消したりしてかまわないのでしょうか。次のレッスンでは、だれが何を読み、書き、実行できるのか、その秩序を守る権限の話をします。

一言でいうとディスクの素顔は、番号のついた平らなマス(ブロック)です。オペレーティングシステムはその上に名札と地図をのせて、散らばったブロックを一つのファイルに束ね、ファイルを入れるもう一つのファイルとしてフォルダー(ツリー)を作ります。ファイルを消すときも、ふつうは地図だけを消して、データはその場に残しておきます。私たちが見るすっきりしたファイルとフォルダーは、平らなディスクの上にオペレーティングシステムがかぶせた、よくできた幻なのです。
← オペレーティングシステム
このページがお役に立ったなら支援する