|Written in||C, C++, Dart, Go, Rust, Python|
|OS family||Capability-based, Inspired by Unix kernels (Not Unix-like)|
|Source model||Open source|
|Initial release||May 25, 2021|
|Latest release||F9 / 10 January 2023|
|Influenced by||Android and Unix Kernel|
|License||BSD, MIT, Apache License 2.0|
Fuchsia is an open-source capability-based operating system developed by Google. In contrast to Google's Linux-based operating systems such as ChromeOS and Android, Fuchsia is based on a custom kernel named Zircon. It publicly debuted as a self-hosted git repository in August 2016 without any official corporate announcement. After years of development, its official product launch was on the first-generation Google Nest Hub, replacing its original Linux-based Cast OS.
In August 2016, media outlets reported on a mysterious source code repository published on GitHub, revealing that Google was developing a new operating system named Fuchsia. No official announcement was made, but inspection of the code suggested its capability to run on various devices, including "dash infotainment" systems for cars, embedded devices like traffic lights, digital watches, smartphones, tablets, and PCs. Its architecture differs entirely from the Linux-based Android and ChromeOS due in part to its unique Zircon kernel, formerly named Magenta.
In May 2017, Ars Technica wrote about Fuchsia's new user interface, an upgrade from its command-line interface at its first reveal in August. A developer wrote that Fuchsia "isn't a toy thing, it's not a 20% Project, it's not a dumping ground of a dead thing that we don't care about anymore". Though users could test Fuchsia, nothing "works", because "it's all a bunch of placeholder interfaces that don't do anything". They found multiple similarities between Fuchsia's interface and Android, including a Recent Apps screen, a Settings menu, and a split-screen view for viewing multiple apps at once. Multiple media outlets wrote about the project's seemingly close ties to Android, with some speculating that Fuchsia might be an effort to "re-do" or replace Android in a way that fixes its problems.
In January 2018, Google published a guide on how to run Fuchsia on Pixelbooks. This was implemented successfully by Ars Technica, where experts were impressed with the progress, noting that things were then working, and were especially pleased by the hardware support and multiple mouse pointers.
A Fuchsia device was added to the Android ecosystem in January 2019 via the Android Open Source Project (AOSP). Google talked about Fuchsia at Google I/O 2019. Hiroshi Lockheimer, Senior Vice President of Chrome and Android, described it as one of Google’s experiments around new operating system concepts.
On July 1, 2019, Google announced the official website of the development project with source code and documentation. Roughly a year and a half later, on December 8, 2020, Google announced that it was "expanding Fuchsia's open-source model" including making mailing lists public, introducing a governance model, publishing a roadmap, and using a public issue tracker.
In May 2021, Google employees confirmed that it had deployed Fuchsia in the consumer market for the first time, within a software update to the first-generation Google Nest Hub that replaces its existing Chromecast-based software. The update contains no user-facing changes to the device's software or user interface. After the initial wave of updates to preview devices, the update was rolled out to all Nest Hub devices in August 2021.
In January 2023, Google announced layoffs across the company with 16% of Fuchsia employees being impacted.
Fuchsia is named for the color fuchsia, which is a combination of pink (also the codename of Apple's advanced Pink operating system of the 1990s) and purple (also the codename of the first-generation iPhone). Its user interface and apps are written in Flutter, a software development kit allowing cross-platform development abilities for Fuchsia, Android and iOS. Flutter produces apps from Dart. Escher is the Vulkan-based graphics rendering engine, with specific support for "volumetric soft shadows", an element that Ars Technica wrote, "seems custom-built to run Google's shadow-heavy 'Material Design' interface guidelines".
The Flutter cross-platform software development kit allows users to install parts of Fuchsia on Android devices.
A special version of Android Runtime for Fuchsia is planned to run from a FAR file, the equivalent of the Android APK.
Fuchsia is based on a new message passing kernel, named Zircon after the mineral zircon. Its codebase was derived from that of Little Kernel (LK) for embedded devices, aimed for low resource uses for a wide variety of devices. LK was developed by Travis Geiselbrecht, who had also co-authored the NewOS kernel used by Haiku, a free software reimplementation of BeOS.
Zircon is written mostly in C++, with some parts in assembly language. It is composed of a kernel with a small set of user services, drivers, and libraries which are all necessary for the system to boot, communicate with the hardware, and load the user processes. Its present features include handling threads, virtual memory, processes intercommunication, and waiting for changes in the state of objects.
It is heavily inspired by Unix kernels but differs greatly. For example, it does not support Unix-like signals but incorporates event-driven programming and the observer pattern. Most system calls do not block the main thread. Resources are represented as objects rather than files, unlike traditional Unix systems.
Right now, Google's built-from-scratch kernel and operating system will actually boot on the Pixelbook, and some things even work. The touchscreen, trackpad, and keyboard work and so do the USB ports. You can even plug in a mouse and get a second mouse cursor.
Written in C++, Zircon is composed of a microkernel plus a set of userspace services, drivers, and libraries that are required to handle system boot, process launch, and other typical kernel tasks. Zircon syscalls are generally non-blocking, with the exception of wait_one, wait_many, port_wait and sleep.