バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
FatFsのファイル上シミュレーションの話。
まとめと振り返り。
登場人物
博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
他のFATについて

というわけで、前回でFAT FileSystemのディスクイメージ調査の話は終了だ!

お!
全部話し切った感じか!

まぁFAT32に限定した説明になってるんだけどね。
実際はFAT12とかFAT16とかもあって、
FAT領域のクラスタチェーンの単位が違ってたり、
ディレクトリエントリ構造体の構成が違ってたりはする。

結構違うの?

まぁFAT32を追った手順と変わらないから、
見れば分かるかなー?
って程度だ。
実際にもっと知りたい場合はCHANさんのサイトを見ることをお勧めする。
(他力本願)
感想

で、感想としてはどうな感じ?

そうだねー。
今まではFileSystemとか意識してなくて、
動いて当たり前ってイメージだったけど
その当たり前が結構大変なことになってたんだなー。
って目から鱗が落ちた感じだ。

まぁそうだろうねぇ。
PCでは当たり前で気にしないしないだろうし、
OSが全部解決しちゃうしね。

OSがやってくれてることって組み込みだと自分たちで解決しないとダメなこと多いから、FileSystemなんてまさにそんな感じなんだろうねー。
以前やったEthernet、TCP/IPプロトコルスタックなんかも同じ関係性だったね。

あとはUSBとかHDMIとか。
PCだったら刺して終了だけど、組み込み機器はそういうわけには行かないねー。

そう考えると、日ごろから「使えて当たり前」なものもどういう仕組みで動いているか気にしておく必要はあるね。

その考え方は大事だ。
人によっては「車輪の再発明だ!」と揶揄するかもしれないが、
実状はそうなってない。
WindowsやLinuxがあらゆるCPUに対応し、どんな低スペックな環境でも動作してくれるなら「車輪の再発明」ってことは成立するかもしれないが、そもそも作るものが異なることに対して使う言葉ではないだろう。
今後の方針

で、今回が最終回?

うーん、まぁFAT FileSystemの構造が見えたからこれで終わりでも良いけど、
FileSystemって異なるシステムでも同じ構成で認識できること最大のメリットだからねー。

と、いうことは?

SDカードからディスクイメージを抽出して、
それに対して読み書きできるか確認。
ってにもチャレンジするかー。
って思ってる。

結構大変そうなイメージがあるんだけど。

まぁダメだったらダメでも頑張ったことをネタにでもすりゃいいよ。

まぁやってみるだけやってみるかー。
ソースコードについて

今回使用したソースコードはGithubにて公開してる。
興味ある人は参照してみて。
まとめ

まとめだよ。
- 扱ったのはFAT32。
- 他にFAT12、FAT16があるが、違いはFAT領域のクラスタサイズとディレクトエントリ構造体。
- 基本的な追い方は一緒。
- 組み込み機器ではPCで出来て当たり前がとても困難。
- 「車輪の再発明」という揶揄が適切ではない状況の方が多い。
- 日ごろから「出来て当たり前」の仕組みを考えると吉。
バックナンバーはこちら。
コメント