この記事について
組み込み会社で新人の私が、セクタ・クラスタについて勉強と一緒にまとめたものです。内容は、「ファイルシステム」や「ストレージ(記憶装置)」を調べている内にでてくる、「セクタ」「クラスタ」っていったい何なのか?と思っている方に向けた内容になっています。
はじめに
まず、ざっくり結論から書いてしまうと
「セクタ」・「クラスタ」は "記録"の"単位" です。 |
---|
- 「セクタ」は主に "ストレージ" の "最小記録単位" となります。
- 「クラスタ」は主に "ファイルシステム" の "(理論的な) 最小記録単位" となります。
……と書いたのですが
いきなり上記のように書かれても分からない所があると思うので
「ここで言う"ストレージ"とは?」 という点や 「"単位"とは分かったけど詳しくは?」 など、調べた結果を簡単にまとめようと思います。
ストレージとは?
日本語での ストレージ(Storage) の意味/対訳は 「保管」・「貯蔵」・「収納場所」 です。
スマートフォンやコンピュータなど、デバイスのデータ容量を調べる時に出てくる用語である「ストレージ」も同じ意味合いを持ち、"データを保管するシステムや装置" のことを指します。
身の回りにある「ストレージ」をあげると、
「磁気ディスク( HDD / フロッピーディスク )」「フラッシュメモリ( SD / USB / SSD )」「光ディスク( CD / DVD )」などがあり、
私たちは、数多ものストレージに囲まれて、日々暮らしています。
セクタとは
「ストレージ」に対して実際に「ソフトウェア」でデータを読み書きする場合、
データは、下図のように "固定的な長さのブロック" に区切って管理されています。
その「ブロック」は「セクタ」という "単位" で呼ばれており
「セクタ」は主に、"ストレージ" の "最小記録単位" となっています。 |
---|
![Sector_1.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F3712966%2F000d19bb-3db8-a1f8-cc5a-c4d72eb3a5a5.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=abdfbf479fe74bd903de60d54feff345)
クラスタとは
「ソフトウェア」や「ファイルシステム」に対して、
"固定的な長さのブロック(セクタ)の集合体" に区切って管理されています。
セクタ単位での管理を行わないのは、データが大きくなった際の負荷を軽減するためなどがあげられます。
上記より、
「クラスタ」は主に"ファイルシステム" の "(理論的な) 最小記録単位"となっています。 |
---|
下図のように、セクタが集合したもの を 「クラスタ」 と言います。
![Sector_1.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F3712966%2Feaa5267b-c985-11b5-aaed-90f8ec5fdc91.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=e2fb0b597ec374be62ca167b0ac3ed7e)
クラスタの役割
主に、データの保存場所を管理できます。
また、ファイル・ディレクトリ作成、データ書き込みの際に、必要なクラスタ数を消費し、使用/未使用の状況の管理もしています。
FAT領域におけるデータ管理は 「クラスタ番号」 を使用して行われています。
終わりの「ひとこと」
セクタとクラスタについて、ずらずらと説明を書いて記事として投稿していますが、ここに関してはサラッと流し読んで、実際にストレージの中身を見てみることを勧めたいです。
何が書いてあるかわからないと思いますが、セクタの中に16進数が無数に入っているのがみれるので、「あぁ、これがファイルになるのか」と映画マトリックスのような感じを味わってみてください。
ちなみに、私は「HxD」という16進エディタを使ってデータを見ていました。
次回は、「FAT12/16/32」について調べようと思います。
もし、よろしければまた見にきてください。
関連記事
ファイルシステムに関しての記事
次回の記事はこちらです。
組み込み開発技術ブランド「Cente」