攻撃は最大の防御なり

50代おやじの適当なブログです。

[Android]Androidのファイルシステム

2011-08-09 09:50:43 | Android
Androidのファイルシステムはこんな感じのツリー状になっています。
(あくまでも一例で全てのデバイスが同じ構成とは限りません)

/─┬ cache
 ├ data
 ├ dev
 ├ mnt
 ├ proc
 ├ root
 ├ sbin
 ├ sys
 └ system

この中でSDカードは/mnt/sdcardにあります。
windowsで2機のHDDが乗ったPCがあった場合にはCドライブ,Dドライブ等、別ドライブに分かれた状態になりますよね。
しかし、LinuxやAndroidには別ドライブと言う概念が存在しません。
全ての記憶デバイスが「/」(rootディレクトリと呼ぶ)から始まるツリー上に乗った形になります。

特定の記憶デバイスをツリー上で使えるようにする事を「マウントする」と言います。
実際に試して見ましょう。
「アストロファイルマネージャー」を使って/mnt/sdcardを見てみます。



バッチリSDカードの中身が見えていますね。
これは「SDカードがマウントされた状態」です。

次に[設定]→[SDカードと本体のメモリ]→[SDカードのマウント解除]を実行します。





SDカードの中身が見えなくなりました。



「SDカードがアンマウントされた状態」です。

この状態では/mnt/sdcardは単なる空のディレクトリですが、
OSとしてSDカードをマウントする場合にはこのディレクトリを使用する事に決まっています。
このような特殊な用途に使用するディレクトリの事を「マウントポイント」と呼びます。

ここで良く考えて見て下さい。上記の「SDカードがマウントされた状態」では
同一ディレクトリツリー上にありながら実際は中身のデバイスが違っていたりしますよね。
もしSDカードにファイルを保存し過ぎて一杯になってしまったらどんな状態になるんでしょうか?
答えは/mnt/sdcardには書き込めないが、その他の/cacheや/dataには書き込める状態となります。
何か変な感じですけど、これは実際に触ってみないと理解しにくいのではないかと思います。

更にAndroidではcache,data,systemは内臓ディスクでも別パーティーションに分かれた物がマウントされています。
状態によってcacheには書けるけどdataには書けない等の場合が発生するわけです。

最新の画像もっと見る

コメントを投稿