| Fuchsia | |
|---|---|
The FuchsiaGUI | |
| Developer | |
| Written in | Rust,C++,C,Dart,Go,Python,assembly language[2][3] |
| OS family | Capability-based[1] |
| Working state | Current |
| Source model | Open source |
| Initial release | May 25, 2021; 4 years ago (2021-05-25) |
| Latest release | F28[4] |
| Repository | |
| Available in | English |
| Supported platforms | ARM64,x86-64 |
| Kernel type | Microkernel |
| Influenced by | Pink,Android,Unix kernel (but notUnix-like),iOS |
| Default user interface | Ermine |
| License | BSD,MIT,Apache License 2.0 |
| Official website | fuchsia |
| Articles in the series | |
| Taligent | |
Fuchsia is anopen-sourcecapability-basedoperating system developed byGoogle. In contrast to Google'sLinux-based operating systems such asChromeOS andAndroid, Fuchsia is based on a customkernel named Zircon. It publicly debuted as a Google-hostedgit repository in August 2016[5] without any official corporate announcement. After years of development, its official product launch was in 2021 on the first-generationGoogle Nest Hub, replacing its originalLinux-basedCast OS.
Fuchsia is named for the colorfuchsia, which is a combination of pink and purple.[6][7] The name is a reference to two operating systems projects withinApple which influenced team members of the Fuchsia project:Taligent (codenamed "Pink") andiOS (codenamed "Purple").[8] The color-based naming scheme derives from the colors of index cards which Apple employees used to organize their ideas.[9]
The name of the color fuchsia is derived from the Fuchsia plant genus, which is derived from the name of botanistLeonhart Fuchs.
In August 2016, media outlets reported on a mysterioussource code repository published onGitHub, revealing thatGoogle was developing a new operating system named Fuchsia. No official announcement was made, but inspection[by whom?] of the code suggested its capability to run on various devices, including "dash infotainment" systems for cars, embedded devices liketraffic lights,digital watches,smartphones,tablets, andPCs. Its architecture differs entirely from theLinux-based Android and ChromeOS due in part to its unique Zircon kernel, formerly named Magenta.[10][11][12][13][14][15]
In May 2017,Ars Technica wrote about Fuchsia's newuser interface, an upgrade from itscommand-line interface at its first reveal in August. A developer wrote that Fuchsia "isn't a toy thing, it's not a20% 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.[16][17] 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"[18] or replace Android[19][20][21] in a way that fixes its problems.[16]
In January 2018, Google published a guide on how to run Fuchsia onPixelbooks.[22][23] This was implemented successfully byArs 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.[24]
A Fuchsia device was added to the Android ecosystem in January 2019 via theAndroid Open Source Project (AOSP).[25][26] Google talked about Fuchsia atGoogle I/O 2019.[27]Hiroshi Lockheimer, Senior Vice President of Chrome and Android, described it as one of Google's experiments around new operating system concepts.[28]
On July 1, 2019, Google announced the official website of the development project with source code and documentation.[17] Roughly a year and a half later, on December 8, 2020, Google announced that it was "expanding Fuchsia's open-source model"[29] including makingmailing lists public, introducing a governance model, publishing a roadmap, and using a publicissue tracker.
In May 2021, Google employees confirmed that Fuchsia had been deployed in the consumer market for the first time, within a software update to the first-generationGoogle Nest Hub that replaces its existingChromecast-based software. The update contains no user-facing changes to the device's software or user interface.[30][31] After the initial wave of updates to preview devices, the update was rolled out to all Nest Hub devices in August 2021.[32] Around February 21, 2022, the Chrome browser was fully working on Fuchsia.[33]
In January 2023, Google announced layoffs across the company with 16% of Fuchsia employees being impacted.[34] In May 2023, Google began rolling out a Fuchsia-based update to the second-generationGoogle Nest Hub.[35]
Fuchsia'suser interface andapps are written inFlutter, asoftware development kit allowing cross-platform development abilities for Fuchsia, Android, andiOS. Flutter produces apps fromDart. Escher is theVulkan-basedgraphicsrendering engine, with specific support for "volumetric soft shadows", an element thatArs Technica wrote, "seems custom-built to run Google's shadow-heavy 'Material Design' interface guidelines".[36] The Flutter cross-platform software development kit allows users to install parts of Fuchsia on Android devices.
A special version ofAndroid Runtime for Fuchsia is planned to run from a FAR file, the equivalent of theAndroid APK.[37]
LK was born out of @tkgeisel getting sick of writing the same mini-OS for bootloaders or test firmware again and again so he took some time off between jobs and did an open source version of the concept. It now lives in billions of bootloaders and other crazy places.
Fuchsia is based on a newobject-capability kernel, named Zircon afterthe mineral. Itscodebase was derived from that of Little Kernel (LK) forembedded devices, aimed for low-resource uses on a wide variety of devices.[39] LK was developed by Travis Geiselbrecht, who had also co-authored the NewOS kernel used byHaiku, a free software reimplementation ofBeOS.
Zircon is written mostly inC++, with some parts inC andassembly language.[3] It is composed of a kernel with a small set of user services,drivers, andlibraries which are all necessary for the system to boot, communicate with the hardware, and load the user processes.[40] Its present features include handlingthreads,virtual memory,inter-process communication, andwaiting for changes in the state of objects.[41]
It is heavily inspired byUnix kernels,[42] but differs greatly. For example, it does not supportUnix-like signals, but incorporatesevent-driven programming and theobserver pattern. Most system calls do not block the main thread. Resources are represented asobjects rather than files, unlike traditional Unix systems in whicheverything is a file.
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.