Google's brand new OS could replace Android
webOS, BeOS and Android heritage
The source code of Google's latest operating system has emerged, and it looks like all new code from the ground up.
The Fuchsia project can be found here, and uses an entirely new kernel, "Magenta." It boots on ARM and x86, and the authors say they've managed to boot it on a Raspberry Pi. The IPC part is Mojo and higher up the stack is support for Google's Flutter graphics.
Involved in the project are two Be Inc veterans, Brian Swetland and Travis Geiselbrecht, who moved to Danger Inc, where they developed the Danger Hiptop OS. Swetland then joined Danger founder Andy Rubin's startup Android Inc, which Google acquired in 2005. Swetland was "Systems / Kernel Lead for the Android Project" between 2005 and 2012 according to his LinkedIn page.
Geiselbrecht took a slightly different route after Danger, spending 18 months at Apple as it developed the iPhone, then developed the webOS kernel at Palm, and was the architect of the Jawbone embedded OS.
Also involved is former head of OS at Palm, Chris McKillop, whose CV indicates he joined the project in March 2015.
These are highly skilled, serious practitioners of the art, and just who would want to create a future OS, rather than some whimsical side project. In addition, the presence of a compositor suggests the potential for Fuchsia reaches far beyond embedded systems.
Google is believed to be working on a "proprietary Android" that doesn't require the Linux kernel, allowing them to speed up development and pass updates directly to end users. Fuchsia could allow them to break their dependencies and achieve the same goal.
Swetland has made a few comments on Hacker News, confirming that the OS is in its infancy. And kindly providing a photo of the OS booting.
The Magenta kernel is maybe a bit more of a minikernel (97% of drivers and services live in userspace, but the syscall surface provides a wider variety of primitives than just send/recv/exit that a hardcore microkernel design might embrace).
It inherits from LK, which was written in C, but the new surfaces in the Magenta kernel are written in C++ (a restrained, limited C++, intended to take advantage of nice things C++ brings without getting us in too much trouble in the controlled kernel environment).
The core Magenta userspace drivers and services are mostly C at the moment, some will shift to C++ over time, and provided they use the same RPC protocols, there's nothing preventing one from building such components in other languages once those other languages are building suitable binaries for Magenta.