Over the last few days, multiple sources have release info on a brand new project Google has quietly started working on. A few weeks back a group of Google software engineers started to publish code to a new code repository, and a related Github. From the looks of things, it appears to be a shiny new OS- not just an upgrade to existing operating systems like Android or Chrome OS, but a new OS entirely not related to the Linux kernel.
Some of the cryptic comments left behind during the code submissions by the Google engineers such as Pink + Purple == Fuchsia (a new Operating System) are certainly lending credence to claims that this is a new Google OS, but the search giant is remaining tight-lipped about the project.
What is Fuschia? What is the goal of this new project? Why isnt it based on the Linux kernel? Well provide a detailed analysis in this article along with some hypotheses on potential uses of this new code.
What Is Fuchsia?
At a glance, the Fuschia code differs from traditional Google projects in several major ways. Fuschia appears to be an open source operating system engineered to function on a broad spectrum of devices, from IoT devices all the way up to mobile phones and computers.
The most obviously different feature of the Fuschia project is the utilization of the Magenta Kernel, a “medium-sized microkernel” based around the Little Kernel project. Little Kernel is a tiny operating system that has been designed to operate on embedded devices and bootloaders- it plays a pivotal role in some Android bootloaders, for example. Little Kernel is tiny- typically 15KB to 20KB in size and is an open source software, available under the MIT license. Tiny operating systems such as Little Kernel are designed for use on computers that have a specialised function, like wearables, or watches.
The Core of the new OS, in similar fashion to Linux and Android, drives the rest of the Fuschia operating system. Magenta is designed to work with IoT-oriented operating systems like FreeRTOS or ThreadX, with devices with much larger amounts of available memory. Magenta also has the ability to use device drivers for peripherals and supports user account creation with first class user-mode support. Magenta also differs from Little Kernel in that it has the concept of a process and supports user mode and has a capability-based security model, much like the permissions in Android 6.0.
Fuchsia looks like Magenta built on top of the Little Kernel- but thats just the Kernel itself. To gain a greater understanding of the capabilities of this mysterious new project, well have to take a deeper look at the rest of the OS.
The documentation provided by Google on Fuchsia state that the OS “targets modern phones and modern personal computers” using fast processors that use “non-trivial amounts of RAM.” It can be determined from the available code that Fuchsia provides support for 32-bit and 64-bit ARM CPUs, as well as 64-bit PCs, and that Google has decided to use Flutter for the user interface.
Flutter is a project to help developers build high-performance, high-fidelity mobile apps for iOS and Android from a single codebase.
From the code commits on the publically available Github page, it looks as if Google has been working very closely with Flutter to help them build upon the Fuchsia code.
The primary programming language of the Fuchsia project is Dart, and Google has opted with Escher as a graphics renderer- Escher supports light diffusion and soft shadows along with a slew of other lighting effects, possibly using an engine such as Vukan or OpenGL to power it.
Lighting effects such as shadows and reflections are key elements in creating the visual appeal of slick operating systems, so it stands to reason that Escher and Flutter will be used in the Material Design UI.
Apart from these tidbits of information, the Github for the project contains references to JSON, logging, SSL, Googles Go programming language, clang, LLVM, Rust and a specialized version of Fortune. There is also some information available on the devices that Fuchsia can currently be booted on- small-form factor Intel PCs, Acer Switch 12 laptops are supported, with the dev team planning on introducing support for the Rasberry Pi 3 in the near future.
There are several developers listed as contributors to the Fuchsia project, notably Christopher Anderson and Brian Swetland. Anderson has played a huge role in some of Googles largest projects, such as Android TV, and Swetland is a senior software engineer for Google, having worked as Systems/Kernel Lead for the Android Project for several years. Both contributors are experts in developing software for embedded systems, so its safe to assume theres a high probability of Fuchsia being geared toward similar systems.
The Fuchsia Enigma
Ultimately, any assumption on the function of the Fuchsia project this early in development is an educated guess. Fuchsia could end up turning out to be just another Google experiment and wont ever find a role in creating a commercial product. Several hypotheses point to Fuchsias rendering capabilities as evidence of it being designed for augmented reality interfaces.
For adventurous tinkerers with the technical prowess that are interested in playing around with the Fuchsia project right away, the project provides step by step instructions to get started by compiling the code yourself to run on a computer or a virtual machine.
At this stage not much else is known about the Fuchsia project apart from what can be gleaned from the code depository or Github page. The most hopeful guess is that Fuchsia is the future of Google operating systems and is planned to replace Android or Chrome OS, but at the end of the day could also be just a pet project worked on in spare time by the participating Google engineers. Google has had one thing to say, however- Christopher Lane, another Google engineer, has stated that at some undefined point in the near future everything will be made public, documented and announced.
Until then, well all just have to wait and see.