Google is prepping an open source “Fuchsia” OS that can target IoT, handhelds, and laptops. It uses a new “Magenta” kernel, based on the “LK” project.
Google has posted GitHub code for an emerging operating system called Fuchsia, designed for a wide range of devices. Like Google’s Android, Chrome OS, and IoT-focused Brillo, Fuchsia is open source — but unlike those platforms, it’s not based on the Linux kernel. Instead, it taps an independent, MIT licensed kernel project called “Little Kernel” (LK), which has been under development for several years.
The Fuchsia project has been hiding in plain site on GitHub, and was outed on Hacker News and more fully revealed by Android Police. There are still plenty of unanswered questions about the project, which is headlined on GitHub as “Pink + Purple == Fuchsia (a new Operating System).”
Fuchsia is not based directly on LK, but on a more fully-figured kernel called Magenta, which is based on LK and apparently developed by LK developers under Google’s auspices. LK is designed as an “alternative to commercial offerings like FreeRTOS orThreadX” for “small systems typically used in embedded applications” that “often have a very limited amount of ram, a fixed set of peripherals and a bounded set of tasks,” according to the Fuchsia project.
The new Magenta kernel, on the other hand, “targets modern phones and modern personal computers with fast processors, non-trivial amounts of ram with arbitrary peripherals doing open ended computation,” according to the Fuchsia project.
The Fuchsia intro goes on to say that “Magenta inner constructs are based on LK, but the layers above are new.”
Unlike LK, Magenta has the concept of a process, which is comprised of LK-level constructs such as threads and memory. Also unlike LK, “Magenta has first class user-mode support,” as well as an object-handle system. In addition, “Magenta has a capability-based security model. In LK all code is trusted,” says the project. “Over time, even the low level constructs will change to accommodate the new requirements and to be a better fit with the rest of the system.”
Fuchsia currently targets 32-bit and 64-bit ARM CPUs, as well as 64-bit Intel processors. The OS builds upon the Magenta kernel with a Flutter-based UI, Dart programming language, and the Escher renderer. In other words, “it seems Flutter and Escher could be designed for Material Design UI in mind,” says AndroidPolice, referring to Android’s UI design guidelines, which were borrowed in part from WebOS.
The Hacker News thread includes comments and responses by LK and Fuchsia developers Travis Geiselbrech and Brian Swetland, who made some other interesting observations. According to Swetland, Fuchsia is “currently booting reasonably well on broadwell and skylake NUCs and the Acer Switch Alpha 12, though driver support is still a work in progress.” Added Geiselbrech: “Yeah and soon we’ll have raspberry pi 3 support which should be interesting to some folk.”
AndroidAuthority has noted other components within Fuchsia, including JSON, logging, SSL, Google’s Go programming language, clang, LLVM, Rust, and a special version of Fortune.” The story also noted the considerable development work at the Flutter project to adapt the mobile framework to Fuchsia.
Aimed at the Internet of Things?
Speculation is rampant that Fuchsia may be the rumored merging of Android and Chrome OS, as part of an Google’s current effort to compete with Windows in the laptop/notebook market. Or, that it’s “the base for a new Android” for phones and tablets.
However, in light of Google’s “moonshot” proclivities, it seems more likely that Fuchsia is being developed and optimized for use in the exponentially growing Internet of Things market, where both Linux and Android have too much baggage to offer optimal solutions. In that market — which is expected to harbor more than 20 billion devices by 2020 — Fuchsia’s competitors currently range from MCU-oriented OSes like ARM’s Mbed and Intel’s Zephyr, to Google’s own Android and Android-derived Brillo, to Samsung’s Linux-based Tizen.
Come to think of it, Fuchsia might not be a moonshot at all. Maybe it’s Gooogle’s shot across Samsung’s bow.
The Google-backed Fuchsia project has posted Fuchsia code on GitHub. Quick Start Recipes for running Magenta under emulation on Ubuntu with Qemu may be found here. Details on running Magenta on a Raspberry Pi 2 or 3 may be found here. The GoogleSource.com site offers brief characterizations of Magenta and LK here and here, respectively.
— with additional reporting by Rick Lehrbaum