Tuesday, January 12, 2016

file system - Please explain the android partition structure to me?



I've tried finding the answer myself, but everything that I am able to see seems to miss out the really basic first steps.


Here's my logic: FIRST Look at the phone's specification. Lets say Samsung galaxy S series. There are three elements: Memory (e.g. 1Gb); Storage (e.g. 16Gb); and removable storage which may or may not be present (e.g. upto 32Gb - I have 8Gb.)


SECOND Now the systems settings of Android 4+, there is an "Apps" item which shows at the bottom of the screen a label "Internal Storage". In my case it will say 1.4Gb used and 627Mb free. That's 2Gb.


If I swipe right, will will say "SD Card storage" 4.6Gb Used and 6.9Gb free. That's 13Gb or so.


THIRD If I use an app like "Hardware info" it says: System RAM 790Mb Internal Storage 2Gb External Storage: 11.7Gb


So, my question is how do I correlate these? 1. On which physical storage does "Memory" sit. 2. On which physical storage does "Internal storage" sit 3. External storage is easy - that's the removable card.



Answer




1) On which physical storage does "Memory" sit




When the specs say "Memory", it's referring to the RAM that the device has. This is not persistent storage, it is "volatile" storage, which loses its information when unpowered (after a brief discharge time). RAM is memory the system and apps use to function, for things like storing the state of an application (variables, functions, etc), graphics buffers, and the like. Most mobile systems on a chip will have the RAM attached directly to the CPU die to make it as fast as possible.


As per the specs: the device has 1 GB of RAM available to the system and running apps. It reports less than this because the system reserves some for things like the cellular radio and the graphics chip, which it will not give to user processes. The hardware info app is reporting the amount of RAM available to user processes.



2) On which physical storage does "Internal storage" sit



In this case, "internal storage" and "SD storage" refer to the same physical storage area. This is persistent storage, generally flash or eMMC based, that is soldered onto the motherboard. The storage chip is partitioned into two pieces, which you can visualize roughly like so:


                         Total Storage
+-----------------------------------------------------------------+
| Internal Storage | SD Storage |
+-----------------------------------------------------------------+


Internal storage is where apps and their private data are stored; e.g. it is the /data partition. SD storage is accessible via USB when attached to a computer, and is where media (music, photos, videos, etc), downloads, and any non-private app data will be stored. Again, looking at your specs, you can see that:



  1. The device has 16 GB of storage. That is, it has a 16 GB storage chip embedded in it.

  2. Of that, 2 GB is partitioned as "internal memory" for apps

  3. The remaining is partitioned for "SD storage" (13 GB, in your case, probably due to filesystem overhead and such; this is very common).


This partitioning scheme as become somewhat less common since Android migrated to Media Transfer Protocol for providing access to the storage from a PC. The reason the separate partitions were originally necessary is because Android used UMS in the earlier versions (anything <3.0), which requires block-level access to the storage space, meaning Android had to unmount the storage space that it provided to the PC. A consequence of this was that the entire partition could not be given to the PC because Android would basically cease to function until you unplugged your phone if it did.


The storage space and the RAM are unrelated to one another, and are not on the same physical chip. They serve entirely different purposes.


No comments:

Post a Comment

samsung galaxy s 2 - Cannot restore Kies backup after firmware upgrade

I backed up my Samsung Galaxy S2 on Kies before updating to Ice Cream Sandwich. After the upgrade I tried to restore, but the restore fails ...