Say Hi to Fuchsia

Pink + Purple == Fuchsia (a new operating system)

Atri Das
6 min readMay 26, 2021

--

Technology is now expanding beyond our thoughts. Every week our news feed gets filled with new tech updates. One of such exciting recent updates is Google, the tech giant is going to launch another OS after Android and Chrome OS and, it is called Fuchsia. In the beginning, I have mentioned that Pink + Purple == Fuchsia. Pink is Apple’s first effort to make an object-oriented micro-kernel-based operating system and, Purple is iPhone’s nickname.

So, your mind is now asking some general questions like:

  1. What is Fuchsia?
  2. What problem will it solve?

Before peeping into the in-depth tech concepts, let’s figure out the answers to the above questions.

Fuchsia is an open-source-based Operating System. Fuchsia is basically built to run on universal devices, such as cars, digital displays, embedded systems like traffic lights, and your phone, pc, tablet smart-watch, etc. This single OS will be able to manage all.

Developer: Google

Source model: Open source

License: BSD, MIT, Apache License 2.0

Platforms: ARM64, x86–64

Written in: C, C++, Dart, Go, Rust, Python

Want to read this story later? Save it in Journal.

An Overview:

If we look into the Apple ecosystem, we will get to know that Apple has a hold on its Operating System. In simple words, if we are reading something on the iPad and leave it in the middle, then we can start from the point where we left the last time. But Google doesn’t have that kind of ecosystem. Even after installing YouTube on our pc, the app will not run from the OS. It will run over the chrome instance, thus leading to lots of battery drainage issues. But Fuchsia can solve this problem, as it will give the control on the OS and, we can perform the tasks synchronously. As Google has a strong hand in Software service, Fuchsia can prove to be a game-changer by giving Google a strong stand with Hardware.

A short history:

In 2016, it was speculated that Google is building a new OS that will be capable of running on any kind of device. But the news was not official.

In 2018, Google published a guide on how to run Fuchsia Os on Pixel book.

at I/O 2019, Google officially announced Fuchsia as an operating system.

In January 2019, a Fuchsia device was added to the Android Eco-system.

After a few more announcements and upgrades, Google deployed Fuchsia in May 2021 for the consumer market and stated that Fuchsia is not a dummy project but ready for production.

This was a short introduction to Fuchsia. So, without wasting any more time, let’s jump into the technicalities.

Let’s Start

First of all, let’s understand the underlying principles that remain constant throughout the rapid development of the evolving OS:

  1. Secure: The OS doesn’t allocate memory to the tasks which are not required
  2. Updatable: updates can be pushed on-demand and can be installed instantly will discuss this later in the blog.
  3. Inclusive: Fuchsia supports various languages, runtimes, and framework, including C++, Web, Rust, Go, Flutter, and Dart
  4. Pragmatic: Fuchsia is a production-grade Operating System. it must adhere to fundamentals like performance.

Moving forward, the well-known operating systems like Android, Ubuntu, etc, are based on the Linux kernel, which is a type of Monolithic Kernel. On the other hand, Fuchsia is powered by Zircon, a micro-kernel.

Monolithic kernel like Linux, the support for small pieces and drivers reside in the memory almost all the time. So when we boot Linux, we have everything we need. But in the case of Microkernel, due to its small size and low footprint, things come and go in the memory as required. When a driver is not required, it will not reside in the memory anymore. The Monolithic Kernel is hard to extend, unlike MicroKernel which is easily extendable.

Linux Kernel uses Signal. So in Linux and Unix, there is an event handler that runs continuously. Whenever some changes occur, a signal or interrupt is generated as an event. When this event is received, OS will take the decision. The Event Handler for Unix and Linux is very slow in execution. Fuchsia doesn’t support the signal. It works on event-driven programming and observer pattern. The execution of the action by the user is very fast and, it doesn’t block the main thread.

Let’s discuss the Layers of Fuchsia.

Fuchsia Layer: copyrighted to Atri Das

Zircon is the Kernel we discussed it

Garnet is the place where you can find the things every OS needs, like device drivers, networking elements, graphics support, etc. The software installer is always present in the Garnet layer. This gives us the advantage of updating the software instantly. For example, whenever an update comes in the case of the Linux kernel, we have to go down to the Linux code. But in Fuchsia

more elements are present in the Garnet layer, like:

Google Escher the graphics renderer

Amber the software-updater

Xi-code test and code editors, etc.

Peridot handles Fuchsia’s modular app design. It has 2 components- Ledger and Maxwell. Ledger helps to sync the files across devices using the Cloud system. Maxwell is the Artificial Intelligence component, that watches the user’s activity on the system. Depending on the user activity, it suggests the operating system perform tasks like shutting down any system, turning on any feature, etc. Thus it helps to manage the system resources according to the way the user works.

Topaz is the top layer that supports the user interface, and here comes Flutter, the standard UI for Fuchsia. Fuchsia is the way with Graphical user interface like Linux where there is a connotation that there are some intermediary layers to handle and, manage how the widgets will be placed on the screen.

There is another component called Sapphire, used to handle Bluetooth 5.0.

So, this is pretty much more info about the Architecture of Fuchsia.

Now let’s compare the Android, Chrome OS with Fuchsia.

as Google said Fuchsia is more secure as the documentation says:

All software that runs on Fuchsia receives the least privilege it needs to perform its job, and gains access only to information it needs to know.

Android and Chrome OS are based on Linux, and it is monolithic and heavy. It takes a lot of space in any device. So putting a Linux-based Operation System in an IoT device is a bit complex and needs much more modification. On the other hand, Fuchsia is lightweight and can be run on all kinds of devices. So, with the ability to maintain 3–4 kernels to support the device, Fuchsia provides more advantages, where we can handle all the devices with just one kernel. Therefore, it is economically powerful too.

In Linux, all the things start together. Whereas in Fuchsia, things get into memory when invoked and, when it has no job left, it releases the memory. Thus battery life is better in any Fuchsia-based device than a Linux-based OS device.

Does that mean Android and Chrome OS will be obsolete?

Ummm, Google didn’t state anything about it. But they are going to roll out the Fuchsia OS for Nest Hub by replacing the Linux-based cast OS.

Android apps will also be functional in Fuchsia OS through a virtual machine? No. Here comes Starnix, a system in Fuchsia that will act as a translator between Linux Kernel and Fuchsia’s Zircon kernel. So, you can hope to get a native experience of using Android apps on Fuchsia OS.

My personal opinion is that Fuchsia is going to be a game-changer as it has proposed the things which we actually need. Though we have to wait and, see if it is actually successful in fulfilling the proposal.

Are you interested to test the Os?

https://fuchsia.googlesource.com/fuchsia/

For more info for Fuchsia OS, head over to: https://fuchsia.dev/

Check out my other Articles:

📝 Save this story in Journal.

--

--

Atri Das

Developer Student Clubs Alumni by Google Developers || Flutter Developer and Explorer