this post was submitted on 22 Jan 2024
19 points (85.2% liked)

Ask Android

2187 readers
9 users here now

A place to ask your questions and seek help related to your Android device and the Android ecosystem.

Whether you're looking for app recommendations, phone buying advice, or want to explore rooting and tutorials, this is the place for you!

Rules
  1. Be descriptive: Help us help you by providing as many details as you can.
  2. Be patient: You're getting free help from Internet strangers, so you may have to wait for an answer.
  3. Be helpful: If someone asks you for more information, tell us what you can. If someone asks you for a screenshot, please provide one!
  4. Be nice: Treat others with respect, even if you don't agree with their advice. Accordingly, you should expect others to be nice to you as well. Report intentionally rude answers.
  5. No piracy: Sharing or discussing pirated content is strictly prohibited. Do not ask others for a paid app or about how to acquire one.
  6. No affiliate/marketing links: Posting affiliate links is not allowed.
  7. No URL shorteners: These can hide the true location of the page and lead people to malicious places.
  8. No lockscreen bypasses: Please do not comment, link, or assist with bypassing lock screens or factory reset protection.
  9. No cross-posting: Please take the time to make a proper post instead of cross-posting.
Other Communities

founded 1 year ago
MODERATORS
 

I recently found out that Android's kernel is VERY different from any Apple implementation. Never really crossed my mind that there are different types of kernels.

This made me wonder - if the microkernel is so much better, at the cost of being complicated to develop an OS for, would Android be better on microkernel?

Please enlighten me. I'm only trying to learn more.

Also, do interact, Lemmy needs good conversation.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] Ramenator@lemmy.world 17 points 9 months ago (1 children)

Microkernels aren't better per se than monolithic kernels. Their main advantage is increased security. Only a small portion of the Kernel actually runs in Ring 0, the most privileged level where the code has full access to the computer. Drivers and the like then technically run as separate, less privileged programs that interact with the kernels via messages. This greatly reduces the attack surface on the kernel and prevents crashes or memory access from a faulty driver.
This comes at a cost though. While microkernels are generally more secure, they are also less performant. Each message means overhead and a context switch you don't have in a monolithic kernel.
The discussion between the two kernel types has been going on for the last thirty years and was famously the source for a long argument between Linus Torvalds, founder of the Linux Kernel and Andrew S Tannenbaum, creator of the Minix kernel.
In the end the XNU kernel isn't even a full microkernel, but a hybrid kernel, trying to take the best of both world by originally taking the Mach microkernel and then implementing the 4.3BSD monolithic kernel on top of it. There are even project to do the same with Linux, like L4Linux

Overall the choice of kernel doesn't hold Android back in comparison, Linux is an extremely capable piece of software that runs on anything from small microcontrollers to all of the world's largest supercomputers. Though Google's newest OS project, Fuchsia, actually uses a microkernel for increased security. And it doesn't use Linux because of licensing, but that's a whole other can of worms

[โ€“] ElPussyKangaroo@lemdro.id 3 points 9 months ago

So, if needed, would it be possible to add a hybrid kernel to Android?