Can we explains android terms with its analog with PC


Question

I am familiar with computer. With computer we have BIOS. BIOS is something like memory and hard disk. It's attached to motherboard straight. It's for all practical purpose is like hard disk. When we boot computer, I bet the BIOS would start first and then we move to operating system.



Then we got the real hard disk. We can reformat the hard disk all we want and the computer will still be useable (not bricked). That's because there is this very basic primitive operating system, namely the BIOS. Then the BIOS will read CD rom and we can install new operating system to the hard disk.



That's how computer works.



Now we have android devices.



I think the sdcard is analog to hard disk. Or am I wrong here?



Then I read this



http://www.addictivetips.com/mobile/android-partitions-explained-boot-system-recovery-data-cache-misc/



And I got even more confused.



So all the apps are in the data partition? Is SDCard the whole SDCard? Shouldn't data is in SDCard?



Also how can android be bricked?



What is the BIOS of android?



So android got recovery partition, boot partition, bla bla. Are all those on SD Card?



Say I really messed up with my android and want to start from scratch. Say I want to format the whole SDCard like I want to format the whole hard disk? Can I do that? What's the consequences?



Is /Boot like BIOS? Is it on SDCard too (the internal one?)



Is internal storage are SD card?



In PC we have memory and hard disk. It seems that in android we have memory, and then the "hard disk" equivalent, called SD Card is also called memory again.



PC|Memory|Hard Disk
Android Devices|RAM|Memory


Do I get the analogy correct?


Answer


Can we explains android terms with its analog with PC[?]



We can try but it will restrict the expansion of our understanding since certain parts would never fit the analogy we're familiar in with desktop computing.


Take a good look at this image:
aboot flowchart

Image source: Reverse Engineering Android's Aboot - by Jonathan Levin


If you want an analogy, anything before Linux kernel can be roughly called as BIOS.1


Unlike traditional Linux distributions where kernel is stored inside a filesystem, where the latter also contains files necessary for satisfactory functioning of distribution, in Android, the kernel is stored in a dedicated partition, often named /boot.


/recovery is a partition synonymous to recovery partition an OEM ships in a laptop (I suppose desktop too) to recover your primary OS (often MS Windows). In PC, the recovery can be accessed by special keys from BIOS, such as a Functional key. In Android, we have key combinations to boot the device straight into mode. We also have command-line options to instruct the device reboot into recovery mode. In that image, recovery partition should be visualized after Android BootLoader or you can say it should accompany Linux Kernel.


The Android OS is saved in a dedicated partition named system and is mounted by kernel during boot at /system. This is what you can call the factory state of the device. During OTA upgrade, the contents of this partition are upgraded.


There is fastboot mode, which is a low-level mode meant to talk to bootloader, often for the purposes of flashing the device's partitions. Fastboot should accompany Linux kernel and recovery in that image.**2


There is a partition named /cache, which you can read at What is the /cache partition? Your PC most likely wouldn't be having such a partition.


There is a partition named userdata, mounted at /data and contains user specific files. The files are so private in nature that the user itself is not authorized to read all of them. During factory reset, this partition is either partially or fully wiped out, depending upon user's preference.


Then there is a user partition which serves as a storage for user media. It is what we refer as "internal SD card". Do not use the term "internal storage" but "internal SD card" to refer to this partition. In devices containing KitKat or above Android version, there is no such physical partition but the directory /data/media/ is emulated as "internal SD Card".


There is external storage, which includes external SD card and any USB OTG drive. This is secondary class storage, meant to compensate the limited amount of free space available in "internal SD card". Boot process has nothing to with this type of storage.


There are many partitions hidden from the reach of an ordinary user. They can loosely be called as firmware or part of ROM. There is no accepted definition on what constitutes as firmware in Android, so stick with "part of ROM". Useful reading: How to list all major partitions with their labels?


Here, every physical, non-removable partition that came with the device comes under the umbrella term "Internal Storage". That said, you'll find various articles including developers.google.com where Internal storage is referred to the partition (userdata) where user's private data is stored.


You want more confusing terms. Memory is one such term. People call RAM as memory, people call internal storage as memory. Avoid this term. Use the aforementioned terms for the type of storage you want to refer. They are clear and unambiguous.


Why you can't format the inbuilt storage of Android devices just like the hard drive in PC would only invite opinion from us. Just deal with the reality that this is how it is.




1: Technically, it's the Bootloader (aka SPL, Secondary Program Loader – though that's rather comparable to a boot menu like GRUB; in the flowchart, "SBL" must be a typo). Not sure if the IPL (Initial Program Loader aka "radio firmware" aka baseband; "modem" in the flowchart) should be counted as "BIOS" – though it fulfills its functions in addressing the underlying hardware, one cannot enter it for configuration.


2: Actually, does not really have anything to do with Android specifically; it's rather an own, minimalist OS tailored for its specific purpose.




This is a community wiki. The definitions are something we do not produce individually but collectively. Improve this answer, wherever you can.


Topics


2D Engines   3D Engines   9-Patch   Action Bars   Activities   ADB   Advertisements   Analytics   Animations   ANR   AOP   API   APK   APT   Architecture   Audio   Autocomplete   Background Processing   Backward Compatibility   Badges   Bar Codes   Benchmarking   Bitmaps   Bluetooth   Blur Effects   Bread Crumbs   BRMS   Browser Extensions   Build Systems   Bundles   Buttons   Caching   Camera   Canvas   Cards   Carousels   Changelog   Checkboxes   Cloud Storages   Color Analysis   Color Pickers   Colors   Comet/Push   Compass Sensors   Conferences   Content Providers   Continuous Integration   Crash Reports   Credit Cards   Credits   CSV   Curl/Flip   Data Binding   Data Generators   Data Structures   Database   Database Browsers   Date &   Debugging   Decompilers   Deep Links   Dependency Injections   Design   Design Patterns   Dex   Dialogs   Distributed Computing   Distribution Platforms   Download Managers   Drawables   Emoji   Emulators   EPUB   Equalizers &   Event Buses   Exception Handling   Face Recognition   Feedback &   File System   File/Directory   Fingerprint   Floating Action   Fonts   Forms   Fragments   FRP   FSM   Functional Programming   Gamepads   Games   Geocaching   Gestures   GIF   Glow Pad   Gradle Plugins   Graphics   Grid Views   Highlighting   HTML   HTTP Mocking   Icons   IDE   IDE Plugins   Image Croppers   Image Loaders   Image Pickers   Image Processing   Image Views   Instrumentation   Intents   Job Schedulers   JSON   Keyboard   Kotlin   Layouts   Library Demos   List View   List Views   Localization   Location   Lock Patterns   Logcat   Logging   Mails   Maps   Markdown   Mathematics   Maven Plugins   MBaaS   Media   Menus   Messaging   MIME   Mobile Web   Native Image   Navigation   NDK   Networking   NFC   NoSQL   Number Pickers   OAuth   Object Mocking   OCR Engines   OpenGL   ORM   Other Pickers   Parallax List   Parcelables   Particle Systems   Password Inputs   PDF   Permissions   Physics Engines   Platforms   Plugin Frameworks   Preferences   Progress Indicators   ProGuard   Properties   Protocol Buffer   Pull To   Purchases   Push/Pull   QR Codes   Quick Return   Radio Buttons   Range Bars   Ratings   Recycler Views   Resources   REST   Ripple Effects   RSS   Screenshots   Scripting   Scroll Views   SDK   Search Inputs   Security   Sensors   Services   Showcase Views   Signatures   Sliding Panels   Snackbars   SOAP   Social Networks   Spannable   Spinners   Splash Screens   SSH   Static Analysis   Status Bars   Styling   SVG   System   Tags   Task Managers   TDD &   Template Engines   Testing   Testing Tools   Text Formatting   Text Views   Text Watchers   Text-to   Toasts   Toolkits For   Tools   Tooltips   Trainings   TV   Twitter   Updaters   USB   User Stories   Utils   Validation   Video   View Adapters   View Pagers   Views   Watch Face   Wearable Data   Wearables   Weather   Web Tools   Web Views   WebRTC   WebSockets   Wheel Widgets   Wi-Fi   Widgets   Windows   Wizards   XML   XMPP   YAML   ZIP Codes