Fuchsia (operating system)#Kernel

{{Short description|Operating system by Google}}

{{Use mdy dates|date=December 2023}}

{{Infobox OS

| name = Fuchsia

| logo = Google Fuchsia logo.svg

| logo alt = The logo of the Fuchsia operating system is an illustration of a mobius strip, which is intended to be shaped after a lowercase letter "f".

| screenshot = Screenshot of Google Fuchsia (July 2017).png

| screenshot_alt =

| caption = The Fuchsia GUI

| version of =

| developer = Google

| family = Capability-based{{Cite web |url=https://nooberinfo.com/google-fuchsia-os-the-next-big-thing-on-the-internet-next-gen-os/#8-is-fuchsia-a-unix-os |title=Language usage in Fuchsia |website=Noober Info |date=June 15, 2021 |access-date=August 24, 2022 |archive-date=August 24, 2022 |archive-url=https://web.archive.org/web/20220824134424/https://nooberinfo.com/google-fuchsia-os-the-next-big-thing-on-the-internet-next-gen-os/#8-is-fuchsia-a-unix-os |url-status=dead }}

| working state = Current

| source model = Open source

| released = {{Start date and age|2021|05|25|df=no}}

| latest release version = {{wikidata|property|preferred|references|edit|Q26267190|P348}}

| latest release date = {{wikidata|qualifier|preferred|Q26267190|P348|P577}}

| latest preview version =

| latest preview date =

| repo = {{Plainlist|

  • {{URL|https://fuchsia.googlesource.com}}
  • {{URL|https://cs.opensource.google/fuchsia}}

}}

| marketing target =

| programmed in = Rust, C++, C, Dart, Go, Python, assembly language{{Cite web |url=https://fuchsia.dev/fuchsia-src/development/languages |title=Google Fuchsia OS: The next big thing on the internet – Next-Gen OS |website=Fuchsia}}{{cite web |title=C++ in Zircon |url=https://fuchsia.dev/fuchsia-src/development/languages/c-cpp/cxx |website=Fuchsia |access-date=February 7, 2023 |language=en}}

| language = English

| update model =

| package manager =

| supported platforms = ARM64, x86-64

| kernel type = Microkernel

| userland =

| influenced by = Pink, Android, Unix kernel (but not Unix-like), iOS

| ui = Ermine

| license = BSD, MIT, Apache License 2.0

| preceded by =

| succeeded by =

| website = {{official URL}}

| other articles = Taligent

}}

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 in 2021 on the first-generation Google Nest Hub, replacing its original Linux-based Cast OS.

Etymology

Fuchsia is named for the color fuchsia, which is a combination of pink and purple.{{Cite web|title=Fuchsia|url=https://github.com/fuchsia-mirror|website=GitHub}}{{cite news|last=Matte|first=Daniel|date=April 10, 2017|title=Open-Source Clues to Google's Mysterious Fuchsia OS|work=IEEE Spectrum|publisher=Institute of Electrical and Electronics Engineers (IEEE)|url=https://spectrum.ieee.org/a-modern-os-from-google|access-date=March 4, 2019}} The name is a reference to two operating systems projects within Apple which influenced team members of the Fuchsia project: Taligent (codenamed "Pink") and iOS (codenamed "Purple").{{Cite tweet |last=McKillop |first=Christopher |user=chrismckillop |number=1397218897523265540 |date=May 25, 2021 |title=Pink was an OS project started by Apple in 1988 (became Tailgent). Purple was the codename of the original iPhone OS. [...] |access-date=August 16, 2023 |link= |url-status=live |archive-url=https://web.archive.org/web/20220408222017/https://twitter.com/chrismckillop/status/1397218897523265540 |archive-date=April 8, 2022 }} The color-based naming scheme derives from the colors of index cards which Apple employees used to organize their ideas.{{Cite web |last=Hormby |first=Tom |date=April 27, 2014 |title=Pink: Apple's First Stab at a Modern Operating System |url=https://lowendmac.com/2014/pink-apples-first-stab-at-a-modern-operating-system/ |url-status=live |archive-url=https://web.archive.org/web/20230321012500/https://lowendmac.com/2014/pink-apples-first-stab-at-a-modern-operating-system/ |archive-date=March 21, 2023 |access-date=August 16, 2023 |website=Low End Mac }}

The name of the color fuchsia is derived from the Fuchsia plant genus, which is derived from the name of botanist Leonhart Fuchs.

History

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.{{cite web |last=McGrath |first=Roland |title=[zx] Magenta -> Zircon |url=https://fuchsia.googlesource.com/zircon/+/f3e2126c8a8b2ff64ca6cb7818f0606ceb5f889a |website=zircon - Git at Google |access-date=September 19, 2017 |date=September 12, 2017 |url-status=dead |archive-url=https://web.archive.org/web/20180711190811/https://fuchsia.googlesource.com/zircon/+/f3e2126c8a8b2ff64ca6cb7818f0606ceb5f889a |archive-date=July 11, 2018}}{{cite web |last=Etherington |first=Darrell |date=August 15, 2016 |title=Google's mysterious new Fuchsia operating system could run on almost anything |url=https://techcrunch.com/2016/08/15/googles-mysterious-new-fuchsia-operating-system-could-run-on-almost-anything/ |website=TechCrunch |publisher=AOL |access-date=October 5, 2016}}{{cite web |last=Fingas |first=Jon |date=August 13, 2016 |title=Google's Fuchsia operating system runs on virtually anything |url=https://www.engadget.com/2016/08/13/google-fuchsia-operating-system/ |website=Engadget |publisher=AOL |access-date=October 5, 2016}}{{cite AV media |last=Szász |first=Attila |first2=Gergő |last2=Hosszú |date=November 8, 2017 |title=Dive into Magenta: fuzzing Google's new kernel |url=https://www.youtube.com/watch?v=aYZCiLI-LZM |via=YouTube |publisher=Hacktivity |url-status=live |archive-url=https://web.archive.org/web/20221122124516/https://www.youtube.com/watch?v=aYZCiLI-LZM |archive-date= Nov 22, 2022 }}{{Cite news |title=Google's Fuchsia OS Magenta Becomes Zircon |first1=Michael |last1=Larabel |date=13 September 2017 |website=Phoronix |url=https://www.phoronix.com/scan.php?page=news_item&px=Fuchsia-OS-Magenta-Zircon |access-date=May 20, 2018}}{{Cite web |last=Vaughan-Nichols |first=Steven J. |title=Google Fuchsia is not Linux: So, what is it and who will use it? |url=https://www.zdnet.com/article/google-fuchsia-is-not-linux-so-what-is-it-and-who-will-use-it/ |access-date=August 18, 2018 |website=ZDNet}}

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.{{cite web |last=Amadeo |first=Ron |date=May 8, 2017 |title=Google's "Fuchsia" smartphone OS dumps Linux, has a wild new UI |url=https://arstechnica.com/gadgets/2017/05/googles-fuchsia-smartphone-os-dumps-linux-has-a-wild-new-ui/ |website=Ars Technica |publisher=Condé Nast |access-date=May 9, 2017}}{{cite news |last1=Altavilla |first1=Dave |title=Google's Mysterious Fuchsia OS Developer Site Debuts With New Fascinating Details |url=https://www.forbes.com/sites/davealtavilla/2019/06/30/googles-mysterious-fuchsia-os-developer-site-debuts-with-new-fascinating-details |access-date=August 29, 2019 |work=Forbes |date=June 30, 2019}} 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"{{cite web |last=Fingas |first=Jon |date=May 8, 2017 |title=Google's mysterious Fuchsia OS looks like an Android re-do |url=https://www.engadget.com/2017/05/08/google-fuchsia-os-matures/ |website=Engadget |publisher=AOL |access-date=May 9, 2017}} or replace Android{{cite web |last=Gartenberg |first=Chaim |date=May 8, 2017 |title=Google's mysterious new Fuchsia OS has a UI now |url=https://www.theverge.com/circuitbreaker/2017/5/8/15579846/google-fuchsia-os-magenta-armadillo-first-look-ui |website=The Verge |publisher=Vox Media |access-date=May 9, 2017}}{{cite web |last=Davenport |first=Corbin |date=May 8, 2017 |title=Google's "Fuchsia" operating system is taking shape with a new design |url=http://www.androidpolice.com/2017/05/08/googles-fuchsia-operating-system-taking-shape-new-design/ |website=Android Police |access-date=May 9, 2017}}{{cite web |date=January 18, 2018 |title=First Look at all new Fuchsia OS from Google |url=https://ibcomputing.com/first-look-all-new-fuchsia-os-google/ |website=IB Computing |access-date=January 18, 2018}} in a way that fixes its problems.

In January 2018, Google published a guide on how to run Fuchsia on Pixelbooks.{{Cite news|url=https://chromeunboxed.com/news/fuchsia-pixelbook-install-google-developer|title=Yes, Google Is Running Fuchsia On The Pixelbook: Calm Down|date=January 1, 2018|work=Chrome Unboxed - The Latest Chrome OS News|access-date=January 3, 2018|language=en-US}}{{Citation|title=Install Fuchsia on Pixelbook|url=https://fuchsia.dev/fuchsia-src/development/hardware/pixelbook|access-date=December 9, 2020}} 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.{{cite news |last=Amadeo |first=Ron |date=January 8, 2018 |url=https://arstechnica.com/gadgets/2018/01/googles-fuchsia-os-on-the-pixelbook-it-works-it-actually-works/ |title=Google's Fuchsia OS on the Pixelbook: It works! It actually works! |website=Ars Technica |publisher=Condé Nast |access-date=January 22, 2018 |quote=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.}}

A Fuchsia device was added to the Android ecosystem in January 2019 via the Android Open Source Project (AOSP).{{Cite web|url=https://android-review.googlesource.com/c/device/google/fuchsia/+/859930|title=Add initial fuchsia target|date=January 22, 2019}}{{Cite web|url=https://9to5google.com/2019/01/02/android-runtime-app-support-fuchsia/|title=Google's Fuchsia OS confirmed to have Android app support via Android Runtime|last=Bradshaw|first=Kyle|date=January 3, 2019|website=9to5Google|language=en-US|access-date=January 4, 2019}} Google talked about Fuchsia at Google I/O 2019.{{Cite web|url=https://9to5google.com/2019/05/09/what-is-google-fuchsia/|title=Fuchsia is Google's investment in trying new OS concepts|first=Abner|last=Li|date=May 9, 2019}} Hiroshi Lockheimer, Senior Vice President of Chrome and Android, described it as one of Google's experiments around new operating system concepts.{{Citation |title=Fireside Chat with Hiroshi Lockheimer, Google Sr. VP, Platforms and Ecosystems (Google I/O'19) 28 minutes in | date=May 9, 2019 |url=https://www.youtube.com/watch?v=CgEjbHILudU&t=1682s |language=en |access-date=January 6, 2023}}

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"{{Cite web|title=Expanding Fuchsia's open-source model|url=https://opensource.googleblog.com/2020/12/expanding-fuchsias-open-source-model.html|access-date=May 26, 2021|website=Google Open Source Blog}} 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 Fuchsia had been deployed 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.{{Cite web|last=Amadeo|first=Ron|date=May 25, 2021|title=Google launches its third major operating system, Fuchsia|url=https://arstechnica.com/gadgets/2021/05/google-launches-its-third-major-operating-system-fuchsia/|access-date=May 25, 2021|website=Ars Technica|language=en-us}}{{Cite web|last=Bradshaw|first=Kyle|date=May 25, 2021|title=Google is releasing Fuchsia OS, starting w/ 1st-gen Nest Hub|url=https://9to5google.com/2021/05/25/google-releases-fuchsia-os-nest-hub/|access-date=May 25, 2021|website=9to5Google|language=en-US}} After the initial wave of updates to preview devices, the update was rolled out to all Nest Hub devices in August 2021.{{Cite web |last=Byford |first=Sam |date=August 18, 2021 |title=Google's Fuchsia OS is rolling out to every first-gen Nest Hub |url=https://www.theverge.com/2021/8/18/22630245/google-fuchsia-os-nest-hub-rollout-release-date |access-date=August 18, 2021 |website=The Verge |language=en-us}} Around February 21, 2022, the Chrome browser was fully working on Fuchsia.{{Cite web |last=Bradshaw |first=Kyle |date=March 4, 2022 |title=Here's the full Google Chrome browser running on Fuchsia [Gallery] |url=https://9to5google.com/2022/03/04/full-google-chrome-browser-running-on-fuchsia/ |access-date=July 16, 2023 |website=9to5Google |language=en-US}}

In January 2023, Google announced layoffs across the company with 16% of Fuchsia employees being impacted.{{Cite web |last=Amadeo |first=Ron |date=January 23, 2023 |title=Google's Fuchsia OS was one of the hardest hit by last week's layoffs |url=https://arstechnica.com/gadgets/2023/01/big-layoffs-at-googles-fuchsia-os-call-the-projects-future-into-question/ |access-date=January 23, 2023 |website=Ars Technica |language=en-us}} In May 2023, Google began rolling out a Fuchsia-based update to the second-generation Google Nest Hub.{{Cite web |last=Bradshaw |first=Kyle |date=May 2, 2023 |title=Nest Hub 2nd Gen updates to Google's Fuchsia operating system |url=https://9to5google.com/2023/05/02/nest-hub-2nd-gen-fuchsia-update/ |access-date=May 3, 2023 |website=9to5Google |language=en-us}}

Overview

=UI and mobile apps=

Fuchsia's 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".{{cite news |last1=Amadeo |first1=Ron |title=Google's "Fuchsia" smartphone OS dumps Linux, has a wild new UI |url=https://arstechnica.com/gadgets/2017/05/googles-fuchsia-smartphone-os-dumps-linux-has-a-wild-new-ui/ |access-date=August 31, 2022 |work=Ars Technica |publisher=Condé Nast |date=May 8, 2017 |language=en-us}} 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.{{Cite web |url=https://9to5google.com/2019/01/02/android-runtime-app-support-fuchsia/ |title=Google's Fuchsia OS confirmed to have Android app support via Android Runtime |date=January 3, 2019 |website=9to5Google |access-date=March 27, 2019}}

=Kernel=

{{quotebox |align=right |width=33% |author={{mdash}} Brian Swetland, one of the early Android OS engineers.{{cite twitter|user=dnaltews |name=@swetland|date=May 10, 2022 |tweet= |url=https://twitter.com/dnaltews/status/1524159666959183880 |archive-url=https://archive.today/20230127010341/https://twitter.com/dnaltews/status/1524159666959183880 |archive-date=January 27, 2023 |title=LK was born out of @tkgeisel getting sick of writing the same mini-OS for bootloaders |number=1524159666959183880}}

|quote=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 new object-capability kernel, named Zircon after the mineral. Its codebase was derived from that of Little Kernel (LK) for embedded devices, aimed for low-resource uses on a wide variety of devices.{{cite web |last=Sims |first=Gary |date=August 17, 2016 |title=What we learned from running Fuchsia, the mysterious new OS from Google |url=http://www.androidauthority.com/we-compiled-fuchsia-os-710491/ |website=Android Authority |access-date=May 9, 2017}} 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 C and 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.{{Cite news |date=April 15, 2018 |title=An Early Look at Zircon, Google Fuchsia New Microkernel |url=https://www.infoq.com/news/2018/04/google-fuchsia-zircon-early-look |access-date=May 20, 2018 |quote=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.}} Its present features include handling threads, virtual memory, inter-process communication, and waiting for changes in the state of objects.{{Cite web|title=Overview|url=https://fuchsia.dev/fuchsia-src/concepts|access-date=June 18, 2020|website=Fuchsia|language=en}}

It is heavily inspired by Unix kernels,{{Cite web |date=2023-07-30 |title=Fuchsia: Rethinking OS security design after 50 years {{!}} Computer Science Blog @ HdM Stuttgart |url=https://blog.mi.hdm-stuttgart.de/index.php/2023/07/30/fuchsia-rethinking-os-security-design-after-50-years/ |access-date=2024-08-29 |website=blog.mi.hdm-stuttgart.de |language=en-US}} 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 in which everything is a file.

References

{{Reflist}}