What is a core? If you spend any time on Android forums, blogs, how-to posts, or online discussions, you will soon hear people talking about the kernel. The kernel is not something unique to Android — iOS and MacOS have one, Windows has one, BlackBerry QNX has one, in fact, all high-end operating systems have it. We are interested in Linux because it uses Android. Let’s try to figure out what it is and what it does.
Android devices use the Linux kernel, but each phone uses its own version. Linux kernel maintainers keep everything neat and accessible, contributors (like Google) add or change things to better suit their needs, and the people who make the hardware contribute because they need to develop hardware drivers for the parts they use for the kernel version they are using. That’s why it takes time for independent developers and Android hackers to port new versions to older devices and get everything working. Drivers written to work with one version of the kernel for a phone may not work with another version of the software on the same phone. And this is important because one of the core functions of the kernel is hardware management. It’s a lot of source code, with more options than you might imagine, but at the end of the day, it’s just an intermediary between hardware and software.
When software needs some hardware, it sends a request to the kernel. And when we speak anything We mean anything . From screen brightness, to volume levels, to calling on the radio, even what is drawn on the display is ultimately controlled by the kernel. For example, when you press the search button on your phone, you are telling the program to open the search application. What happens is that you touch a certain point on the digitizer, which tells the program that you touched the screen at those coordinates. The software knows that touching that particular location opens a search dialog. The core is what tells the digitizer to look for (or listen for, events are «listened to») for touches, helps figure out where you’ve touched, and tells the system you’ve touched. In turn, when the system receives a touch event at a certain point from the kernel (via the driver), it knows what to draw on the screen. Both the hardware and software communicate with the kernel in both directions, which is how your phone knows when to do something. Input from one side is sent as output to the other, whether you’re playing Angry Birds or connecting to your car’s Bluetooth.