4 ms·
I can't help but think that if microkernel architectures were such a good idea, that would explain why every popular OS is a microkernel architecture (oh wait..
by cletus 6y ago
I can't help but think that if microkernel architectures were such a good idea, that would explain why every popular OS is a microkernel architecture (oh wait...). Snark aside, this is a serious debate since the inception of Linux [1].
It's important to look at Fuchsia through the lens of what problems it solves in Android/Linux because that tells you a lot.
As we know, receiving updates in Android is, well, a clusterfark. There are two key problems:
1. Phone manufacturers need to write or update drivers essentially with each Android release; and
2. Those drivers are by nature of Linux being a monolithic kernel, written in kernel space. Kernel space code by third-parties is going to be inherently more unstable to your device than if they were written in user space.
So when Google talks about Fuchsia having a stable binary ABI for drivers, they're talking about solving both of these problems (at least as they see them).
So the question I've always had about the justifications for pouring billions of dollars into Fuchsia (I mean that quite literally) is: could this really not have been solved in Linux, even if it's just the limited context of Android?
I'm not a driver or Linux expert by any stretch of the imagination. I'm sure there are people here who are so this is my question to you: could you have created a system for ideally user space drivers with a stable ABI in Linux and avoided all the costs of completely reinventing that wheel?
My other question about Fuchsia is: does Google foresee themselves adopting the same vertically integrated solution that, say, Apple does? It's worth noting that Apple by not providing iOS to third parties is somewhat paradoxically immune to antitrust investigations (I mean really... how does that work?).
Evidence against Google adopting the Apple model is the fact that Fuchsia is open source, which is a curious decision. This seems to imply that Google either wants to maintain an Android-like ecosystem or they simply see it as their only viable option.
I don't know how anyone can expect that Samsung is going to move to Fuchsia. Samsung already chafes under the yoke of their Google dependence with Android. They've tried to get out from under it (ie Tizen) but luckily for Google, Samsung is terrible at software (at anyone with Samsung crapware on their Galaxy can attest; Bixby anyone?).
Maybe Google thinks the insurance of Fuchsia being open source is necessary for third-party adoption to have any chance but still, the only way I see Samsung going along with this is that there's absolutely no other alternative.
[1]: https://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_debate https://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_deb...
- cageface 6y agoSamsung is getting better at software. OneUI gets very positive reviews. Many of the Samsung apps on my Note 10 are perfectly acceptable daily tools. Mail, gallery, notes etc are competitive now.
- pjmlp 6y agoAndroid Linux also has it since Project Treble. Linux drivers are considered legacy on Android, all new drivers should follow the Project Treble architecture, which is basically the genesis of how Fuchsia drivers work. Every driver has their own process and uses Android IPC to talk with the kernel. The stable ABI is Android HIDL, similar to Fuchsia FIDL, a protocol buffer based IPC for fast communication with the kernel, that also allows for passing references to hardware buffers across processes. You can read all about it at AOSP web site.
- legulere 6y agoOperating systems have a lot of inertia. Linux is close to 30 years old. Performance characteristics, threat models and a lot of other things were different back then. New operating systems solving this issue will generally fail because of missing drivers and userland code, not because they are technologically worse.
- TulliusCicero 6y agoDid you read the article? One of the things it explicitly calls out is that Fuchsia is not a microkernel.