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.

Sounds complicated, and it is. But it’s also pretty standard computer logic — some action is generated for each event, and depending on what happens to the running software. Without a kernel to receive and send information, developers would have to write code for every single event for every single piece of hardware on your device. In the case of the kernel, all they need to do is communicate with it through the Android system API, and hardware developers only need to make the hardware device communicate with the kernel. The good thing is that you don’t have to know exactly how or why the kernel does what it does, just understanding that it’s a software to hardware transition gives you a pretty good idea of ​​what’s going on. under glass.

Kind of gives a whole new perspective on those guys who stay up all night to work on cores for your phone, doesn’t it?

Похожие записи