ファイルシステム
Linux上でのファイルには様々な種類があります。 例えば、テキストファイルや画像ファイル、動画ファイル。 それらは一般的な普通のファイルですが、他にもそれらとは異なる特殊なファイルが存在します。 デバイスを操作する際に使用するデバイスファイル、プロセス間通信に使う名前付きパイプ、それからディレクトリもファイルに該当します。 もっと言えば、Linuxを構成しているのはファイルであり、Linuxは全てをファイルとして扱うようになっています。 それらファイルにはファイル名が付けられています。 このファイル名と、ファイルが保存されているディレクトリを示すパスによって、一意のファイルを区別することができるのです。 そして、そのような仕組みを成立させているシステムがファイルシステムです。 ファイルの中身は通常、ハードディスクに保存されています。 そのファイルを操作する際、ファイルシステムはなくてはならない存在であるということは言うまでもありません。 例えば、ユーザーがテキストファイルを開きたいとき、ファイルのデータが物理的にハードディスクのどの領域に保存されているのかを把握しておく必要があります。 もし何も把握していない状態だと、ただのテキストファイルを開くために、ハードディスク上の先頭から全てのセクタをわざわざ探さなくてはいけません。それでは、いくら高速化した現在のPCでも時間がかかってしょうがないです。 さらに、ファイルのサイズを知っておかないと、どこからどこまでを読み込めば良いのかということもわかりません。 ファイルはファイルシステムによって管理されることで、高速なアクセスやリソース使用の効率化が実現されているわけです。 ファイルシステムはいくつか種類がありますが、Linuxで使用される代表的なファイルシステムとして下記表のようなものがあります。 名称特徴 ext2Linuxで広く利用されていたファイルシステム。 ext3ext2を改良したファイルシステム。 ext4ext3の改良版。現在の多くのディストリビュータはext4を標準で採用している。 XFSSGI提供のファイルシステム。 JFSJFS提供のファイルシステム。
マウント
マウントとはコンピュータに接続した周辺機器や外部記憶装置OSに認識させ、利用可能な状態にすることを意味します。 Linuxをインストールする際、通常であれば、ハードディスクを複数のパーティション(区画)に分割し、各パーティションそれぞれにファイルシステムを作成します。 そして、各ファイルシステムをマウントします。 マウントはファイルシステムを利用する上で必ず行わなければならない操作です。 Linuxは、新しく接続されたハードウェアを認識しても、それだけではファイルシステムを利用することができません。 ファイルシステムを利用できないということは、ファイルを作成したり保存したりすることができないということです。 例えば、USBメモリを使用したい場合、パソコンのUSB端子に接続しただけではUSBメモリに保存されているデータを読み込むことも書き込むこともできません。 USBメモリをマウントすることで、はじめてUSBメモリ内のデータをLinux上から読み書きできるようになります。
ハードリンク
ファイルには必ずファイル名が付けられており、ファイル名とパスによって一意のファイルを区別します。 通常、ひとつのファイルに対して、ファイル名はひとつだけ存在するように思えますが、Linuxではひとつのファイルに2つ以上の名前を付けることができます。 そして、ファイルに名前をつけ、ファイルの実体と関連付ける概念のことをハードリンクと言います。 例えば、「A」という名前のついたファイルがあり、そのファイルに新しく「B」という名前を付けたとします。 この操作を「ファイルAを指すハードリンクBを作る」と表現します。 以降、「A」と「B」は同じファイルを指していることになります。 つまり、ファイルAを変更すれば、Bも変更されます。 ファイルは少なくともひとつのハードリンクを持っている必要があります。 そうでなければ、ファイルシステムは一意のファイルを識別することができません。