「ここでいい」を「ここがいい」へ。発注先探しなら比較ビズで

ファイルシステムとは?身近な便利機能をわかりやすく解説

最終更新日:2022年05月27日
株式会社GeNEE
監修者
代表取締役 日向野卓也
ファイルシステムとは?身近な便利機能をわかりやすく解説
この記事で解決できるお悩み
  • ファイルシステムについて知りたい
  • ファイルシステムの種類を知りたい

WindowsやMAC、iOS、Andoroidと様々なOSを使っていく上で切っても切ることができないシステムが「ファイルシステム」。

普段、何かしらのファイルを開いたり保存したりしていると思いますが、簡単にそれらの操作ができるのはファイルシステムのおかげです。アプリ開発などIT業界に携わるのであれば、知っておくとよいでしょう。

ファイルシステムとは

ファイルシステムの機能とは

ファイルシステムとは「ファイルの管理を容易にしてくれるシステムのこと」で、OSに搭載されている機能の1つです。このファイルシステムを身近なところでガンガン利用しているといえば、スマホで撮影した画像ファイル管理になります。

ファイルシステムが使われている場所

何気に使っているカメラですが、裏ではAndoroidやiOS上で動作しているファイルシステムを駆使しているのです。イメージとしては、OSさんの上で動いている撮影アプリが取得した画像データをファイルシステムさんが分かりやすくアルバムに並べてくれているといったところでしょう。

正直なところ「当たり前のことすぎてイメージができない」という人もいらっしゃるかと思います。スマホを扱っていれば、当たり前のように画像が保存され、当たり前のように画像を好きなときに見ることができて、不要になれば簡単に削除することができるわけですから。そんな当たり前のことを、さも凄いことのように言っているのでイメージがしにくくて当然です。

ファイルシステムの目的

ファイルシステムとは、まさにこれが狙いで構築されたシステムなのです。このように、誰でも簡単にファイル操作できるようにすることが目的と理解してもらえれば問題ありません。つまり、ファイルシステムとはOSさんが人間さんに扱い易いようにと気遣って搭載している機能だというわけです。

ファイルシステムの役割とは

ファイルシステムの大まかな役割は、先ほど説明した通り「誰でも簡単にファイル操作できるようにすること」となります。とはいえ、具体的にどのようなことをしているのか?と気になるところですよね。以下より3つに分けてもう少し深くお話をしていきたいと思います。

  • ファイルを指定の場所へ保存することができる
  • ファイルに対して暗号化することができる
  • ファイルのメモリ領域の圧迫を避ける

ファイルを指定の場所へ保存することができる

ファイルシステムの基本中の基本といえる機能になります。WordやExcelを始めメモ帳などファイルを保存するとき、何処の場所にどのような名前で保存をするのか?と決める場合があります。これはファイルシステムが「何処に保存をするの?」「なんていう名前で保存するの?」と聞いてくれて分かりやすく保存してくれているのです。

ファイルに対して暗号化することができる

基本的にファイルは誰でもアクセスすることができます。これでは、大切なファイルを保管している場合、セキュリティ上、大きな問題になってしまうことになります。これを防ぐためにファイル単位で暗号化して守ることができる機能も持っているのです。アプリ開発をする場合、保存するファイルの重要性をチェックして、この機能を使うのか?を決めていくといいでしょう。

ちなみにExcelを始め、ファイルを開くときに「パスワード」を設定することができます。よく勘違いしている人がいますが、これは、あくまでも、そのアプリケーションが持っている機能であって、ファイルシステムの機能ではありません。

ファイルのメモリ領域の圧迫を避ける

保存したファイルが大容量のものとなると、いくらハードディスク領域が大きくなった昨今でも直ぐに圧迫してしまうのです。そのため、この圧迫を避けるために「ファイルを圧縮する」という機能や1つのファイルをさまざまな場所に細切れにして保存していく機能も持っています。

後者の「細切れ機能」は少し難しい話になるため、深く説明はしませんが…イメージとしては、ハードディスク上に隙間となっている場所を見つけて、大きなデータを分割して、ちょっとずつ入れていくといったところです。

ファイルシステムが不要な場合ってあるの?

これまでの説明でファイルシステムが重要な機能だということは少なからず伝わったかと思います。逆に「ファイルシステムのような便利機能が不要な場合ってあるの?」と感じた人もいるかもしれません。もし、このような質問があれば「いい質問ですね!」と返したいところです。というのも不要な場合は実際のところあるからです

具体的には、組込系ソフトの世界になります。先ほど、ファイルシステムは「対人間さんに分かりやすくしている機能のこと」と説明をしました。組込系ソフトは、対機械となるため、別に人間さんに分かりやすくする必要はないのです。単純な話ですよね。

そもそも、ファイルシステムを利用するためには多くのメモリ領域を使用することになります。メモリ領域の使い方にシビアな世界になる組込系は、余分な機能を少しでも削ぎ落として、必要最低限の動きをさせることが重要になります。その結果、ファイルシステムは搭載しないわけなのです(もちろん、状況によっては組込系ソフトでも、状況によってはファイルシステムが必要な場合もありますが…)。

ファイルシステムの種類

ここでは、どのようなファイルシステムがあるのか?について触れていきます。「こういう種類があるのか」と理解ができればいいので、サラッと簡単に説明だけをしていきます。

FAT

昔ながらのファイルシステムで、OSはWindowsがベースとなります(厳密にはMS-DOS上でも可能)。今もなお現役で使われています。過去、FAT12、FAT16、FAT32と機能が拡張されています。2020年現在では、FAT32が利用されます。拡張されたFATによって、対応しているWindowsOSバージョンが異なるため注意が必要です。

NTFS

FATの上位互換したものになります。昨今、主流となっているシステムとなります。FATよりもセキュリティ面などで高い性能を見せてくれます

HFS+

MAC OS 8.1で導入されたシステムです。ファイル単位の暗号化も可能でセキュリティ的に堅牢なシステムとなっています。

APFS

2020年現在、MAC系のOSで主流となっているファイルシステムです。ファイルのコピー速度などが早いとレスポンスの良さが特徴となっています。

XFS

主にLinuxで活用されているファイルシステムです。セキュリティ面では強い特徴を持っていますが、一度、ファイルを削除してしまうと復元することができないデメリットも持っています。

ファイルシステムを使うための準備「変換機能」について

変換機能とは?

まず「変換機能ってなに?」という部分を簡単に説明します。ファイルを保存するためには、ハードディスクが必要になりますが、そのハードディスクに対して、ファイルシステムの変換とは「このファイルシステムを使うよ」と教えてあげるというイメージになります。

また、ファイルシステム側にも「このハードディスクを使うからね」と教えてあげる機能も持っています。先で「ファイルシステムの種類」と説明した通り、いろいろとあるので"変換"という機能を使って調整をしていくわけです。

変換機能の注意点

1つ注意しておきたい点は、ファイルシステムの変換ができる場合と、できない場合があるということです。たとえば、使用しているOSがWindowsの場合、まったく異なるiOSのファイルシステムへの変換はできないということです。あくまでも「変換ができる」前提で、以下より説明をしていきます。

フォーマット機能を使って変換

ハードディスク上の情報を、すべてまっさらな状態にしてからファイルシステム変換を行う方法になります。その方法は大きく2つあるのでご紹介します。

クイックフォーマット

あくまでもファイルシステムを変換して、紐付けられている情報をキレイにする方法です。したがって、内部データはそのままとなっているため、元のファイルシステムに戻すなどデータの復元することが可能です。

通常のフォーマット

完全にデータを消去してファイルシステム変換をする方法になります。ハードディスクの容量が大きさに比例して掛かる時間が変わってきます。

コンバート機能を使って変換

コンバート機能は、かなり限定的な方法ということを先に断っておきますね。というのも、FATからNTFSに変換するだけの方法だからです。逆のNTFSからFATはできません。これに加えて、FATからNTFS以外の種類への変換も不可能となっています。

変換方法に関しては、少し技術力が必要になってくるため、簡単な説明だけとします。

  • 1) マイコンピュータを右クリックしてフォーマットするドライブを選択
  • 2) 表示されたポップアップ内にある「ボリュームラベル」を指定して「クイックフォーマット」をチェック
  • 3) フォーマットを実行

「ファイルを扱うシステム」を開発するなら必須のシステム

ここでは、ファイルシステムの必要性について、アプリ開発を依頼する視点でお話します。ファイルを扱う以上、ファイルシステムを活用することは理解できたかと思います。具体的にどのようなアプリ開発をする場合にファイルシステムを意識しないといけないのか?について解説していきます。

平たく言えば、アプリケーションを使って何かしらのファイルをメモリ上に保存する場合、ある程度は意識する必要が出てきます。どうして「ある程度」と表現したかと言うと…開発したいアプリケーションが動作するOSをどうするか?で決まるからです。

制作するアプリケーションによって変動する開発費

ファイルシステムはファイルを扱うアプリケーション開発であれば必須だということはご理解いただけたと思います。システムを利用する上で掛かる開発費は多くのOSで動作させるのであれば、比例して開発費は高くなっていきます。それは制作するアプリケーションを「何処まで動作保証をするのか?」で大きく変わってきます。たとえば、Windows10のみで動作保証するアプリだった場合、特に意識する必要はありません。単純にNTFSだけを考えればいいからです。しかし、Windows95での動作保証をするのであれば、FAT16でも保存できるように作っていかないといけません。さらに、スマホのAndoroidだったり、iOSだったり、他のデバイスとも連携をしていくのであれば、さらにファイルシステムについて考えていかないといけないわけです。

まとめ:意識しなくてもいいけど意識しないといけない

ファイルシステムとは、使う側からしたら意識をしなくてもよい機能です。ただ、アプリ開発するという視点であれば、状況によりけりで意識をしないといけません

ちなみに、アプリ開発を依頼する立場であれば、基本的なことを抑えておけば問題ありません。たとえば、ジャーナリングだったり、クラスタだったり…さらに深い知識は不要ではあります。もちろん、知っていた方が有利であることは間違いありませんが、ここまでいくと技術者レベルのお話になってきます。

ともあれ、ファイルシステムという機能があって、人間さんがファイル管理しやすくしてくれているモノと頭の片隅に入れて開発の依頼をしていくといいです。

監修者の一言

ファイルシステムはOSの基本機能の一つなので、利用者は一切意識することなく利用できます。また開発側から見てもプログラミング言語がファイル操作用の仕組みを用意していますので、特別意識する必要はありません。

ただ、ファイルシステムの差異に限らず、OSや、OSが同じであっても動作環境毎に色々な差異が発生します。発注者側はファイルシステム同様に、それぞれの特徴の詳細まで理解する必要はありませんが、受注者(開発会社)側からすると、差異があればあるほど検討事項が増えますので、その分どうしても開発にかかるコストが上がります。

発注者側は、発注を意思決定する前に、システムやアプリをどのような目的で、どの範囲で活用するのか、といったことを社内関係者を含めてしっかりと議論することをおすすめします。「あれば便利だけれど、自社に本当に必要なものか」という考え方を持つことで初期の開発コストだけでなく、将来的なランニングコストを抑えることができる可能性があります。

株式会社GeNEE
代表取締役 日向野卓也
監修者

東京工業大学環境・社会理工学院卒業。MBA取得。国内最大手SIerの株式会社NTTデータなどで大手法人領域(大手流通企業、大手小売企業)の事業開発、事業企画等の業務に従事。その後、米国・台湾の海外大学への研修留学を経て、株式会社GeNEEを創業。

システム開発会社を一括見積もりで発注先を楽に探す
システム開発会社を一括見積もりで発注先を楽に探す
比較ビズへ掲載しませんか?

一括見積もりで発注先を探す