6
$\begingroup$

Google's new in-production OS which it desires to replace not only Android but many other devices utilizes a completely new kernel:

The code differs from Android and Chrome OS due to its being based on the "Zircon" kernel (formerly "Magenta") rather than on the Linux kernel.

https://en.wikipedia.org/wiki/Google_Fuchsia

Zircon does not support Unix-style signals and provides no way to directly implement them. Instead, it supports waiting on handles, which can be in a number of different signal states, such as ready for writing, running, stopped, etc. Similarly, Zircon does not have Unix-like fork or exec but uses the launchpad library to create processes.

https://www.infoq.com/news/2018/04/google-fuchsia-zircon-early-look

I've seen demos of Fuchsia by reviewers but these are all just demos of a desktop interface and don't actually describe any of the advantages towards moving to a new platform and the motivation for a building a new kernel.

I see a lot of technical jargon and engineering-speak being thrown around but this isn't anything different from what I hear about every new platform and its super-sauce kernel.

In my opinion, it's always been about market penetration and mindshare. Google has a unique advantage in that they have a widespread platform already with Android and may be able to strong arm vendors into switching from Android to Fuchsia. But this may also be a re-run of several failed attempts by previous market leaders to do this very thing.

Software compatibility is, in my opinion, a constant when it comes to enticing existing users to move to a new platform. Apple was able to do this gracefully with Rosetta and Windows with NTVDM. I think that it will be very interesting to see how well Android can handle this with so much fragmentation.

So that was a little history and some of my opinion. But my actual question is on what, from a technical standpoint, does Fuchsia's new kernel "Zircon" bring to the table? Creating an entirely new userspace is one thing but swapping out a kernel is a completely other beast. Especially when there is so much existing experience not only for Android but also Linux kernel expertise.

My personal opinion may be dark but I feel that it comes down to licensing and an attempt at increasing vendor lock-in by moving away from Linux; that Google went window shopping and happened upon what became the basis of Zirkon. But this is speculation. What I would like to know is if there is any real technology that brings tangible benefit to all of this work when we already have the venerable Linux kernel available to us?

I would also like to highlight the following source for your reference:

https://fuchsia.googlesource.com/zircon/+/master/docs/concepts.md

I am an applications programmer and don't understand what the benefit is of Zircon's kernel as a design and welcome being educated on how it compares to existing architectures. If Google thinks that it is worthy as the successor of Android's Linux kernel then I feel that there are probably tangible benefits being brought to the table that I am just too inexperienced to appreciate.

$\endgroup$
  • 2
    $\begingroup$ I'm not really sure what your computer science question is, here. Your question is almost all about marketing and commercialization aspects. $\endgroup$ – David Richerby Aug 31 '18 at 12:44
8
$\begingroup$

From what I understand you are asking what are the technical benefits of zircon over linux?

First of all zircon is a micro kernel as opposed to the linux monolithic kernel. So lets look at some of the advantages of an microkernel over a monolith:

  1. Segmentation, a micro kernel has a very segmented model and drivers live outside of the kernel. That means you have more control over what those pesky vendors put into your kernel to slow it down. Security is increased because you can protect the core of the kernels functions from god knows what monster code the vendors wanna chuck in there as drivers.

  2. Size, a micro can be way way smaller in size and together with the modularity of the micro kernel can help so you have the same kernel on everything from your phone, laptop to a IoT thermometer.

  3. Speed, although in practice you have a lot of microkernels that are slower than monoliths because all the communication between the pieces of the kernel create a lot of overhead, you could have speedier communication with things like File I/O, network traffic and other components by the lack of context switching between kernel space and user space (think >10Gbps networks).

  4. Control over updates. One of the biggest problem with Android is fragmentation, if you wanna build an app you have 839274326 versions of Android out there, for which version do you build your app? Also you have vendors not applying patches because they need to build their version with all the modifications they put in. If you had a really segmented core that you could update without affecting the vendor modifications that would be a big win for Google.

  5. Real-time operation, they probably want a pure real time implementation because it goes well with their data collection needs.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.