Why can Windows run on any hardware easily but Android requires specific ROMs for each phone?

609 viewsOtherTechnology

Why can Windows run on any hardware easily but Android requires specific ROMs for each phone?

In: Technology

9 Answers

Anonymous 0 Comments

Ahh.. well.
Windows is a mostly an x86 OS, meaning it runs on CPUs that have the x86 Architecture best, x86_64 is x86 but with 64 bits instead of 32, it’s the more modern version of this arhitecture.
x86 and x86-64 are found in most PCs nowadays, so Microsoft made Windows work for these.
Now, Android is a Linux OS, a heavily modified one, yes, but that’s beyond the point.
Android being Linux has a significant meaning in this context, because Linux has been made to work on pretty much all CPU architectures known to mankind, including ARM(Advanced RISC Machine, where RISC is another arhitecture and ARM is simply an extension of it, RISC is Reduced Instruction Set Computer).
Arm is used in most phones and tablets, because it’s more efficient in those, it has had many versions, most phones now run on aarch64, aka ARMv8.
ARMv8 is different to x86 and its 64 bit extension, they’re different languages for each CPU type.
About ROMs now, here’s the thing:
All PCs have a BIOS/UEFI system which loads software from the internal storage or from an USB Stick, this allows you to plug a stick and install whatever you like.
Phones however do not have such a system, they have a main bootloader, the bootloader is a program that loads the OS, and a second bootloader, provided by the OS.
The main bootloader only loads whatever it can find and it’s dumb, that’s why we need two. It’s also built into the SoC, a chip that contains memory, a graphic chip and the actual CPU)
There was a great effort to NOT standardize a system for PCs, without UEFI everyone could make computer software proprietary which would help the corporations, this however was achieved with phones, where each brand has their own variation of Android, purposely made not to work with other phones.
There’s also the problem of drivers, drivers ensure proper communication between the CPU and other components, drivers are ran by the CPU so they also need to be rewritten for the specific instruction set/architecture of the CPU.
It’s a very complex thing that you can’t understand in a day, and no one expects anyone to do so.

You are viewing 1 out of 9 answers, click here to view all answers.