たのしい工学

プログラミングを学んで、モノをつくりたいひと、効率的に仕事をしたい人のための硬派なブログになりました

【コンピュータサイエンス 独学】マウントとファイルシステム

   

ファイルシステム

Linux上でのファイルには様々な種類があります。
例えば、テキストファイルや画像ファイル、動画ファイル。
それらは一般的な普通のファイルですが、他にもそれらとは異なる特殊なファイルが存在します。
デバイスを操作する際に使用するデバイスファイル、プロセス間通信に使う名前付きパイプ、それからディレクトリもファイルに該当します。

もっと言えば、Linuxを構成しているのはファイルであり、Linuxは全てをファイルとして扱うようになっています。

それらファイルにはファイル名が付けられています。
このファイル名と、ファイルが保存されているディレクトリを示すパスによって、一意のファイルを区別することができるのです。

そして、そのような仕組みを成立させているシステムがファイルシステムです。

ファイルの中身は通常、ハードディスクに保存されています。
そのファイルを操作する際、ファイルシステムはなくてはならない存在であるということは言うまでもありません。
例えば、ユーザーがテキストファイルを開きたいとき、ファイルのデータが物理的にハードディスクのどの領域に保存されているのかを把握しておく必要があります。

もし何も把握していない状態だと、ただのテキストファイルを開くために、ハードディスク上の先頭から全てのセクタをわざわざ探さなくてはいけません。それでは、いくら高速化した現在のPCでも時間がかかってしょうがないです。
さらに、ファイルのサイズを知っておかないと、どこからどこまでを読み込めば良いのかということもわかりません。
ファイルはファイルシステムによって管理されることで、高速なアクセスやリソース使用の効率化が実現されているわけです。
ちなみに、外付けHDDをつけてPCを利用するひとは多いとおもいますが、HDDを利用するまえにフォーマットを行うと思います。このときに考える必要があるのが、ファイルシステムです。FATやNTFSなどを見たことがあるかと思います。ファイルはファイルシステムによって管理されているというのは前述のとおりですが、そのファイルシステムはOSに依存することがあります。たとえば、FATならMac、NTFSならWindowsです。WindowsPCで利用するHDDをFATでフォーマットしてしまうと、そのHDDのファイルをWindowsでは読み書きすることができなくなります。そこでWindowsでもMacでも利用できるファイルシステムとしてexFATというものがあります。

マウント

マウントとはコンピュータに接続した周辺機器や外部記憶装置OSに認識させ、利用可能な状態にすることを意味します。

Linuxをインストールする際、通常であれば、ハードディスクを複数のパーティション(区画)に分割し、各パーティションそれぞれにファイルシステムを作成します。
そして、各ファイルシステムをマウントします。
マウントはファイルシステムを利用する上で必ず行わなければならない操作です。

Linuxは、新しく接続されたハードウェアを認識しても、それだけではファイルシステムを利用することができません。
ファイルシステムを利用できないということは、ファイルを作成したり保存したりすることができないということです。

例えば、USBメモリを使用したい場合、パソコンのUSB端子に接続しただけではUSBメモリに保存されているデータを読み込むことも書き込むこともできません。
USBメモリをマウントすることで、はじめてUSBメモリ内のデータをLinux上から読み書きできるようになります。

 - コンピュータサイエンス