A few weeks ago some Google engineers started committing code to a new repository called Fuchsia. One of the code submission comments was the cryptic phrase: “Pink + Purple == Fuchsia (a new Operating System)”. And looking at the different bits of code being added to the repository, it certainly looks like Fuchsia is an operating system. But what is it? Why is Google investing in it? and what are the goals of the project? Those are all good questions and to be honest we don’t know the answers. However we can glean some clues from the repository itself.
The most obvious feature of Fuchsia is that it uses the (L)ittle (K)ernel and Magenta. LK is a small OS suited to small embedded devices and bootloaders. In fact it is the core behind various different boot loaders including some Android boot loaders. On an embedded ARM platform the core of LK is typically just 15 to 20 KB. LK is available from https://github.com/littlekernel/lk and is Open Source software, provided under the MIT license.
Magenta is higher up the food chain. It is designed for systems which have more memory (maybe even Gigabytes of memory) and which have peripherals (meaning it understands device drivers). For example, Magenta has the concept of a process whereas LK does not, Magenta has a user mode (where user programs run) whereas LK does not, and so on. Fuchsia seems to be Magenta built on top of LK.
The current source code repository includes lots of interesting stuff like support for Dart, JSON, logging, SSL, Google’s Go programming language, clang, LLVM, Rust and a special version of Fortune – a simple program that displays a pseudo-random message that first appeared in Version 7 Unix. The Fuchsia version of Fortune has its own pearls of wisdom, like “If we have data, let’s look at data. If all we have are opinions, let’s go with mine – Jim Barksdale,” something that rings true for me when talking about Google’s plans for Fushia. There is no data, just opinions!
If we have data, let’s look at data. If all we have are opinions, let’s go with mine.
According to code commit comments from the Flutter project, it looks like a lot of work has been done to get Flutter to build on Fuchsia. What is Flutter? It is a new project to help developers build high-performance, high-fidelity, mobile apps for iOS and Android from a single codebase.
As for supported hardware platforms, at the moment there are booting instructions for the Intel NUC and the Acer Switch 12 laptop. According to some comments from IRC there should also be support for the Raspberry Pi 3 soon. For those interested the project also includes some step-by-step build instructions.
Speculation is rife about what Google intends to do with Fuchsia. Is it a replacement for Linux in Android or even a replacement for Android itself, I highly doubt it. Is it a new OS for some new projects/products that Google is working on? Probably. It is anyone’s guess what those products are, it could be anything from projects related to the Internet-of-Things to new Virtual Reality developments. Of course, this could just be a private project by some Google engineers which they are working on in their spare time.
Whatever the final goals of Fuchsia, one thing is for sure, the art of writing operating systems hasn’t been lost and the potential to change the world remains the same as it did when OS/360 was announced in the 1960s or when Linux was announced int he 1990s.
What do you think Google plans to do with Fuchsia? Please let me know in the comments below.