ファイルシステムファイルシステム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も変更されます。ファイルは少なくともひとつのハードリンクを持っている必要があります。なければ、ファイルシステムは一意のファイルを識別することができません。Linuxデバイスドライバ開発入門Linuxデバイスドライバを開発するために必要なLinuxに関する概念やサンプルコードを示しながらのプログラミング解説などを行っています。