When describing the organization of Fuchsia code, Google uses a “layer cake” metaphor. Fuchsia is the name of the project as a whole and of the finished product (we presume), but under the hood there are 4 distinct layers that it’s divided into. This week’s Fuchsia Friday details each layer and what we know about them.
The first layer, and the foundation upon which Fuchsia is built is called Zircon. Zircon (previously Magenta) is a new kernel designed by Google, and primarily handles access to hardware and communication between software.
Put simply, Zircon is to Fuchsia as Linux is to Android. Just as there are multiple operating systems built on the Linux kernel — Ubuntu, Android, Red Hat, and even Chrome OS — there could eventually be more than just Fuchsia that is built on Zircon.
The first Fuchsia-specific layer built onto Zircon is called Garnet. Garnet contains a variety of low-level things that every OS needs including device drivers (network, graphics, etc) and software installation. The most exciting things at this layer are Escher (the graphics renderer), Amber (Fuchsia’s updater, which we dug into last week), and the Xi Core, which is the underlying engine for the Xi text and code editor (formally announced earlier this year).
Peridot is the next layer up, and mostly handles Fuchsia’s modular app design (which is worth a refresher). The two other major components of Peridot play directly into modules. Ledger saves your place in apps/modules across devices and is synced to your Google account. (More about Ledger) Maxwell is a more complicated subject that we’ll delve into soon, but suffice it to say that Maxwell is the “intelligence” that will make Fuchsia magic. (Part of this intelligence is “Kronk”, aka Google Assistant)
Topaz is the top layer of the cake, and the one you’ll probably be most affected by. Topaz is where Flutter support is introduced, and with Flutter support comes a variety of gorgeous apps, mostly demos that will one day be fleshed out into fully-featured apps that you will use every day. The most impressive right now is of course Armadillo, Fuchsia’s main UI & home screen.
Think of apps included at the Topaz layer as similar to Android’s stock apps. It’s going to be your essentials like Contacts, Music, File Explorer and text editor Xi (the visual front end in Topaz connects to the back end in Garnet). Anything you need that’s not included can simply be installed.
Fuchsia’s layered design, on the surface, seems like it’s for team organization more than anything else. It also helps to divide the code into easier-to-read pieces. However, the reasons go deeper than that. Hardware vendors will also be able to have their own layers. I believe this means that companies will be able to replace one (or more) of the four layers with one of their own (or a modified version).
Most[?] phone makers customize the Android user experience to differentiate themselves from the competition, instead of using Google’s default aesthetic. The ability to replace a layer further shows that Google is learning from their experience with Android. They’re making it easier for vendors to use their customizations to the UI without affecting the rest of the system. Samsung, for example, can replace stock Topaz with a TouchWiz themed version.
Additionally, the Android team couldn’t have expected a company like Amazon would heavily modify the OS for Kindle Fire devices. The same undertaking is made simpler with Fuchsia’s layers. Replace Peridot’s Google Cloud and Google Assistant with Amazon Web Services and Alexa. And, of course, replace Topaz with Amazon’s design language. All the while still enjoying the features and security updates of stock Fuchsia’s Zircon and Garnet.
All in all, a recurring theme of Fuchsia is taking to heart the lessons that the Android team had to learn the hard way. Separating Fuchsia into layers that only build upward should help with ensuring updatability and unity, compared to Android’s fractured ecosystem. Of course, companies may still be able to disregard this design. Only time will tell if the Fuchsia team’s plan will be a success.
If you have any questions about how Fuchsia will work, reach out in the comments or on Twitter. You may find your answers in a future article!
Fuchsia Friday is a weekly series where we dive into the Fuchsia source code and interpret what the current state of the OS might mean for the finished product. All information in this article is speculation based on available information and is subject to change.
Read more in our Fuchsia Friday series:
- Fuchsia Friday: Ledger picks up where you left off
- Fuchsia Friday: A system built for ‘Instant Apps’ on steroids
- Fuchsia Friday: The structure of Google’s Lego-like modular OS, explained
- Fuchsia Friday: How Flutter is paving the way for Fuchsia (and our first Fuchsia app!)
- Fuchsia Friday: Amber keeps Fuchsia up to date and secure.