Reading Time: 8 minutes

Today, I will be discussing with you the future of Operating System – Fuchsia OS. I will be discussing everything, right from the point, it started to the current stage it has reached right now.

The blog will act as a complete guide to Fuchsia OS, and I will keep updating it with all the future updates happening around Fuchsia.

So without further ado, let’s get started.

Why did Google decide to go for Fuchsia OS?

Kernels act as the core of any operating system that provides the primary mechanism around which the complete OS can be built.

A lot of problems posted by Android comes from the fact that it is based on the Linux kernel which was never intended for phones.

Even the Android OS was initially built for digital cameras.

The next biggest downside of Android is fragmentation. Fragmentation is the only reason why a lot of these smartphones don’t perform to the level of their hardware capabilities.

The reason fragmentation exists is because Android is a huge mess.

Android consists of Software + Kernels + Drivers all woven together in a slightly different configuration for each device available in the market.

That’s the reason Google is not able to push updates to every smartphone available in the market as all these three aspects need to be decoupled manually by OEMs like Samsung, Huawei, Lenovo, Motorola, etc.

And these OEMs focus very little on pushing the latest updates as their profits are linked to the hardware sales and how quickly a device becomes obsolete so that you come in the market to purchase a new one.

Google also has very little control over how people are experiencing Android on 95% of smartphones available.

A little introduction to Fuchsia OS

Fuchsia OS came into the limelight back in August 2016. It will be the third operating system offering from Google after Android and Chrome OS.

Fuchsia in no way is a replacement or upgrade to Android and Chrome OS but is instead a standalone offering. Fuchsia is also completely different from Android and Chrome OS as it is not based on Linux.

Fuchsia might be an OS for IoT devices

As everything is skeptical right now, but a Redditor with anonymous identity claimed to talk with one of the Google employees who is working on Fuchsia OS.

According to the Google employee, we might see the first showcase device with Fuchsia OS in late 2019 or early 2020. Google employee also said that Fuchsia is an IoT; first OS means OS for your fridge, RaspberryPi, car, TV, etc.

Cross-device OS

Fuchsia is a cross-device OS which will work seamlessly on any device be either your phone, tablet, desktop, laptop, wearables, and more.

Once you sign in with your Google account, the application will automatically save their place across multiple devices. Google is calling it as Ledger – “A distributed storage system for Fuchsia.”

It means if you were listening to some music on Google Home, and then you move out in your car, the music will resume at the same state it was paused at Google Home.

Deeply integrated Google Assistant

Fuchsia is Assistant-first OS. Everything you are doing on the screen will be visible to Google Assistant.

How is Flutter paving the way for Fuchsia?

Flutter is an open-source, cross-platform mobile app development framework. Flutter is intended to help developers build attractive apps with a native app experience from a single codebase.

Although cross-platform app development is nothing new but emphasizing on speed and developer control is what makes Flutter unique.

Flutter offers unified toolkit and faster development experience by integrating with the development environment of your choice such as Android Studio, Visual Studio Code, Xcode, etc.

Flutter currently supports iOS and Android app development with support for desktop coming in the future.

Flutter differentiates itself from React Native and Xamarin by offering consistency across the platform. It means that a Flutter app developed using Material Design will look exactly similar in both iOS and Android.

Flutter helps in

Fast development

Flutter has Hot Reload functionalities which brings your app to life in milliseconds. It also helps in building native interfaces with its customizable widgets.

Expressive and flexible design

With fast deliver features focus on native end-users experiences. Full customization is achieved for its layered architecture which helps in the flexible design and fast rendering.

Native performance

It’s widgets contain all essential platform differences together with scrolling, navigation, icons, and fonts to provide complete native performance on both iOS and Android.

Flutter architecture

Dart

Flutter is an SDK that works on a programming language called Dart.

Dart is a general-purpose programming language that was developed by Google. It can be used to build web, server, and mobile apps and for IoT devices as well.

Dart is influenced by many different languages. The strongest among these influences would be of Java. A Java programmer can quickly notice similarities between these two languages.

Dart is an object-oriented programming language and supports things like abstraction, encapsulation, inheritance, and polymorphism.

Dart programs can run in one of these two modes:

Checked modes

In this dynamic type, assertions are enabled. These type assertion can turn on if static types are provided in the code. The checked mode is recommended for development and testing as it helps catch errors in your system when types do not match.

Production modes

It is the default mode of all Dart programs. It provides a faster way to run your application.

Google bets on Flutter

Google is betting big on Flutter, and it is also one of the smart moves by Google to get developers comfortable with Flutter instead of forcing everyone to switch at a later stage.

The other reason behind the big push of Flutter is when you create a new operating system, the biggest problem is the lack of third-party applications.

People will don’t buy a device that lacks useful apps and developers will never focus on devices that aren’t selling. But with the move of Flutter, Google is making sure that there are ready-to-go apps available at the launch of Fuchsia.

Google might be working on a YouTube app for Fuchsia

It is not a surprise that YouTube plays a critical role in Google’s strategy. With offerings of YouTube TV, YouTube Premium, YouTube Music it is evident that Google would love to bring their popular application on the next generation mobile and desktop operating system.

Although there is no official statement about it, for some proposed changes for a Tic-Tac-Toe game being developed for Fuchsia, a Googler Larry Landry posted a link that led to private, in-development “YouTube Player.”

The app will help you carry your video progress between any Fuchsia devices, but we have to wait for the official launch.

The team behind Fuchsia OS

There are approximately 160 employees who are working on Fuchsia OS.

Google also transferred Android’s Head of Platform Security Nick Kralevich to the Fuchsia team.

Google has also hired Apple engineer Bill Stevenson to work on the Fuchsia. Stevenson joined Apple in the year 2004 and has been on the role of Senior Manager for Mac/Window program management.

The move clearly shows how Google is investing heavily on the potential of Fuchsia OS.

Four layers of Fuchsia OS

While describing Fuchsia, Google uses a metaphor called “layer cake.” Fuchsia is divided into four distinct layers. Let’s discuss every layer in detail –

First layer – Zircon

Zircon is the first layer and the foundation of Fuchsia OS. As we have already discussed previously that Fuchsia is not based on Linux. It uses a new kernel which has been designed to scale for every device either be the phone or desktop computers or IoT devices.

Google originally named its kernel “Magenta” but later renamed it Zircon calling it the Great Renaming. According to Google –

Zircon is the core platform that powers the Fuchsia OS. Zircon is composed of a microkernel (source in kernel/…) as well as a small set of userspace services, drivers, and libraries (source in system/…) necessary for the system to boot, talk to hardware, load userspace processes and run them, etc. Fuchsia builds a much larger OS on top of this foundation.

Second layer – Garnet

The first layer built onto Zircon is called Garnet. Garnet is responsible for managing all the things that an OS requires such as device drivers, software installation, network, etc. The different elements available at this layer are –

Escher

Escher is a graphics renderer.

Amber

One of the most significant flows in Android has to be the updates. There are a lot of devices available in the market who haven’t even received Android Pie. To solve this issue in Fuchsia, Google has included Amber – an update system which will update all the components including the apps, kernel, and the bootloader.

As everything is still under development, so nothing can be said for sure.

Xi Core

It is the underlying engine for the Xi text and code editor. It is a modern text editor for enhanced performance. According to the project definition –

Its thoroughly async, loosely coupled design promises performance and rich extensibility, but creates exciting engineering challenges, requiring advanced algorithms and data structures. In addition to pushing the state of computer science for text handling, the project also seeks to build an open-source community for teaching and learning and working together to create a joyful editing experience.

Third layer – Peridot

The next layer in Fuchsia OS is the Peridot and is responsible for handling the Fuchsia modular app design.

Modular design

Fuschia is modular which means that everything in Fuchsia either it is the software or the system files are contained in different packages. Further, these packages can be broken into smaller components.

The component is a piece of code designed to do a single job. By combining all these components, you can do anything. In the future, there will different types of varieties of components, but as of now, we know about two –

Agent – It is the component that works in the background and provides information to other components.

Module – These are the components that you can see, and each module is designed for a specific task.

The other two primary components of Peridot are –

Ledger

In today’s world, we are not sticking to a single device. An average US consumer uses 3.5 connected devices each. Ledger is a distributed storage system devised to manage all the information.

According to Google statement – “Each “component” (you could think of a component as an app) being run by a user has a “separate data store provided and managed by Ledger.”

Maxwell

Maxwell is used to managing the intelligence of Fuchsia. The intelligence is achieved through different small programs called agents (as discussed earlier).

Fourth layer – Topaz

Topaz is the top layer of Fuchsia OS and provides support for Flutter. All the apps we use every day will be included in the layer.

Fuchsia Interface Definition Language (FIDL)

There are a lot of programming languages available, and it is not possible for the developer to get all the languages under its belt.

So instead of telling you how to get the work done, Fuchsia has accommodated the developers by creating FIDL. It is a system that connects various languages together.

Currently, FIDL supports five languages –

Dart

Go

C

C++

Rust

Suppose you are having a library written in Golang and want to use that library in a Flutter application. You can easily do that by creating an interface using FIDL and then connect it with the Go code as an implementation.

Fuchsia UI

There is very little known about the UI of the Fuchsia OS.

We got some early previews of Fuchsia codenamed “Armadillo,” thanks to Kyle Bradshaw.

But last year in December, everything we have seen so far has been removed. As spotted by a Redditor – Alawami, the complete Armadillo code has been removed from Fuchsia Topaz repo.

So we can say that no demos and examples we have seen so far are accurate and we have to wait for any new update.

Fuchsia successfully booted on Honor Play

A new code change reveals that Huawei was able to boot the Zircon kernel on the Honor Play which makes Huawei the first OEM to have a Fuchsia compatible device.

This patch will allow other Kirin 970 powered devices to boot on Zircon kernel.

Well, there are only rumors, and no evidence as when will the OS be available in the market. Every year, just before the Google big I/O developer conference these rumors start heating up.

If we consider all the rumors and speculations it is expected that Fuchsia will be available on a smart speaker within the next three years and a fully functional smartphone in next five years.

Although it is also a very shaky rumor and we cannot do anything but wait for the official announcement from Google.