• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

What is the difference between ROM and Kernel?

mach101

Member
I am quite new to Android almost 2 weeks now with my new Samsung which I quite like it. However there are things that I want to know more about it and I need your help for that.

I have seen topics about flashing ROM and Kernel, but I can't figure out differences in between them and what one gets out of flashing one or even both of them.

Is flashing the second step after rooting the phone?

Appreciate if some could tell or link me to articles explaining about them.

Thanks in advance.
 
Welcome to Android!

From a recent similar chat -

Welcome to the forums!

Your graphic is incorrect. I think it will help to deconstruct terms as I go along, you have parts of the puzzle correct.

Let's build from what is seen.

Android = Linux (with services) + the Dalvik Virtual Machine (VM) + apps that run in the VM using Linux services

Collectively, that makes up what we colloquially call a ROM. It's not really a ROM, read-only memory, but the name is a holdover from the feature phone days when the os was literally stored on a ROM.

The memory on your phone, aside from ram, is flash memory using nand logic, aka nand flash. Now you know where the terms flashing and nandroid came from.

Your phone storage is divided into quite a few partitions. Varies by model, but 6 or 8 is not uncommon.

The bootloader is somewhat analogous to a PC bios. It is not a bios, but similar in that it's the lowest level executive.

The bootloader contains management functions, chief among them, the vector to the operating system startup and the recovery, critical to installing a ROM update, as happens over the air from time to time.

Linux is a preemptive multitasking operating system, similar to Windows or OS X. The Linux on your phone is true Linux, just like desktop Linux, but tuned and customized for a small memory footprint.

Bootloaders always come locked so curious consumers don't screw with things that they don't understand. Your phone takes that a step further - encryption security is employed so that only critical components with the encrypted key signature can be installed. Your bootloader can't be unlocked because no one has broken the encryption security yet.

The kernel is part of the Linux operating system, and it's what starts first - your encrypted bootloader tracks if it is launching a kernel it knows, even though the kernel is not part of the bootloader.

A nandroid backup contains your Android rom, as defined earlier. Depending on the custom recovery, some folks get the chance to backup Android by its partitions (Android is not in one partition, but several) but most of us use ClockworkMod recovery, and its backups contain all of the Android partitions in one convenient payload. By the way, your app data is stored within one the Linux partitions, so thats why your data and settings are stored with your nandroids.

The SBF is strictly a Motorola construct. It stands for system binary file - it's a full image of your phone system. Other makers have the same sort of thing, but their names and layouts vary as you may expect.

Makes sense? :)

Ok that's more than you wanted to know - but hopefully the terms explanation helps.

ROMs are an image of the Android operating system - the Android operating system includes Linux - Linux (like all multitasking operating systems you know) includes a kernel.

Sometimes, tinkerers and devs will offer just a kernel, as an option. Usually, they want something unique - higher performance - or lower performance but longer battery life. That sort of thing.

Take extreme care - ROMs must match a given make and model of a phone to work and custom kernels must be matched to specific ROMs.

Do you need to install custom ROMs or kernels?

Absolutely not - getting access to the root account (or getting root privileges) on Android is exactly the same idea as getting access to Admin privileges on a PC.

Just like on a PC, now you have the ability to change whatever you want on the system and make all sorts of tweaks.

But you don't have to if you don't want to. ;) :)

Hope this helps!
 
or in layman terms its like this

the kernel is the go between of the rom and the hardware. The ROM on the phone would be considered an OS such as your desktop has an OS your desktop also has a Kernel both act the same exact way. Kernels are where drivers are used to communicate to the hardware. The ROM is basically an interpreter between the user and the kernel.
 
What extra benefits we get after rooting? what gives the full control?

Will I get a better graphic performance after rooting?
 
Graphics performance is determined by hardware, rooting won't change that, I'm afraid.

With root, depending upon the phone you have, you could consider installing a custom rom with smoother performance, or you could install a firewall, as two examples.
 
Back
Top Bottom