Android will never be supported by the ‘regular’ Linux kernel, but that won’t stop Google from trying.
Source: (Android Central)
Android has its own special variant of the Linux kernel and that’s not a good thing. But, for now, at least, it’s a necessity. Why can’t it be more like everything else?
oogle once again had a major presence at the yearly gathering of top Linux developers known as the Linux Plumbers Conference. This is where all the smart people who work hard to make the framework that most of the world’s computers run on gather so they can iron out all the problems that any project this big is bound to have.
Since Android is by far the most popular operating system that runs atop of Linux, having it be more “standard” and comparable to the rest is really important. Regrettably, it’s not even close because of the way vendors support components and manufacturers put them all together.
Much has been done and Google has some plans to make things even better. Ron Amadeo at Ars Technica has done a great job at trying to make sense of it all in a way everyone can understand, so if reading about forking, how to prevent it, and user-space application binary interfaces are your thing it’s a definite read. Even if they aren’t your thing, you might learn something by giving it a look.
Enough of the intimidating geek-speak. All you really need to take away from this is that even people who understand how some of it works don’t necessarily know how all of it works, and that the two questions you might have are the same two questions a lot of people have: Why can’t you update the Android kernel the same way you can on every other Linux computer; and how does Microsoft update so many different things from different companies all at the same time?
The Android kernel is not the Linux kernel
Android runs on the Linux kernel, but it is not the same Linux kernel as every other Linux-powered computer uses. In fact, the Android kernel that is used on one model of phone isn’t the same as the kernel used on any other model of phone. Yes, this is a giant mess waiting to collapse on itself which is why Google wants to fix it. It’s also the reason why you can’t ever update the kernel on any Android phone to a newer version and the one you are using is at least a few years old. Google makes any changes needed to support a specific version of Android. Just Android mind you, and not any of the hardware you would want to use to run Android on. Since most all of that hardware is not open, the company that manufactures it, like Qualcomm or NXT, also needs to make changes to support its products and provide them either as part of the kernel or as closed-source binary drivers.
The Linux kernel goes through many sets of hands before it’s transformed into the Android kernel.
The company that makes a phone, like Samsung or OnePlus, or even Google itself, then has to put the right parts that support the hardware being used together into a kernel that will start the device and power all the parts so Android can load and run. It’s like a jigsaw puzzle from hell.
The biggest problems arise when you want to use a newer version of Linux to build the Android kernel. The entire process needs to be redone, and companies are all required to do everything all over again. Most refuse, so you’re stuck on the same kernel version throughout the life of the phone. On a “regular” PC running a Linux distribution like Ubuntu, you can grab the source code for the kernel version you want to use and configure it for the hardware you have on hand. Most PC parts are well supported, either as open-source contributions to Linux or as a standalone binary driver that you can download and install yourself. And because this is relatively simple, most Linux distributions will have a ready-made kernel you can download and install yourself that just works.
(End Part I)