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.
This is my opinion as a random person on the internet: no. The kernel only affects what hardware it can be ran on. Everything else that would make a difference to end users is basically done in userspace.
The thing holding Android back is its JVM layer between the kernel and the userspace. This adds overhead, meaning your phone needs more RAM or it will have performance issues. You also need slower default animations to cover up the increased loading times from this overhead, which make the system seem slow, especially when compared to iPhones.
It's possible to change anything, the main question is the cost of doing so.
Google has already created something called Fuchsia which is reportedly very fast and potentially more secure than Android. But Google already has nearly 20 years of an existing ecosystem in Android that they would effectively be giving up because app manufacturers would have to make new apps for the new system.
They've probably ran the numbers to see how much it would cost to perform the new roll-out vs how much income it would bring, and I would guess that making such a massive change just wouldn't be worth it.
Hmm... That's true.
What about custom implementations? ROM devs?
This isn't really fit for the Android community because "Android's kernel" is the Linux kernel. Android is more about everything beyond the kernel; the userspace APIs and components that make an Android phone actually work. The kernel is rather unimportant here. Android uses Linux because it's the most mature operating system out there.
Monolith vs. microkernel has been a hot debate in operating systems ever since the concepts emerged.
I personally really like the basic idea behind microkernels (separating mechanism and policy) but can also appreciate that, in reality, the best kernel in existence for general purpose computing is purposefully a monolith while the best a true microkernel (Minix) has achieved is to run CPU firmware.
Do note, over the past decade or so, that Linux has sorta been stealthily laying out the basics to turn itself into something of a microkernel. See https://en.wikipedia.org/wiki/EBPF
Android uses Linux' eBPF for its firewall implementation for instance.
I don't have much experience with Apple's XNU kernel but AFAIK it's not a true microkernel but a lot more of a microkernel than Linux is.