rewks

The future's bright, the future's ... Fuchsia?

2022-04-26

Ok, take that title with a gigantic grain of salt. I saw the opportunity to paly on Orange's slogan and I took it. The subject matter of this blog post is Fuchsia, a 'new' operating system that Google is developing from the ground up. Development started in 2016 so it is not really new but there is still a long way to go before it will hit the mainstream - that's if it gets there at all, I'm sure we can all name a multitude of Google projects that have been unceremoniously discarded over the years.

Whatever the future may hold for this fledgling OS, this blog post is intended to give just a bit of background info; where did it come from, what is it for, how does it differ to existing operating systems, where can I learn more?

Before we dive in, I'll answer one more question right here: why should I care? The answer to that is you shouldn't! Or you should. It's completely up to you, I'm willing to bet that many people - even techies - don't yet even know that Fuchsia exists, and it will likely be years before it starts popping up with regularity on user devices. Still, I'm a firm believer in keeping an eye on the horizon and at least being aware of major porjects that may come to the forefront over the next decade. Gaining understanding and experience with technologies early on can turn out to be very advantagous.

fuchsia-logo.png

Background

Fuchsia is a modern open source operating system that's simple, secure, updatable, and performant.

- Google

Everyone knows that Google developed Android, one of the most common operating systems in the world today. So why are they building a potential competitor? It would appear that they want to move away from the Linux kernel which Android is built on. Fuchsia uses instead a 'microkernel' which along with a few other components is collectively known as Zircon.

The concept of this new OS is built on the principle of least privilege - something that all those working in information security will be familiar with. For anyone out of the loop, the idea is that anything or anyone should only be given the least possible set of permissions required to perform its or their role. Applying this to Fuchsia, Zircon itself only contains a minimal number of services necessary for the system to boot, talk to hardware and run userspace processes. Everything else, including the file system and network stack are loaded as isolated userspace components, greatly reducing the amount of system code running at the highest level of privilege.

kernel-services.png

State of development

Creating an operating system is no small task, especially when creating a design where system components integrate in a different way to established, mature operating systems. So yes, six years in and there is still a long way to go on the development front. However, it is at a point where you can build from source and start experimenting in an emulator. Just follow the guidance in the official docs here - be warned, building from source is resource intensive! You could even have a go at running the Chrome browser component in Fuchsia, although there are some notable bugs so I wouldn't recommend making it your primary way of browsing the internet just yet.

fuchsia-chromium.png

In fact even if you can't be bothered with that, if you have a Google Nest Hub in your home you may already be a user. Google started rolling out Fuchsia to Nest Hubs last year, although reportedly users would not notice any significant changes to the interface or user experience. If you do have a Nest Hub, you can check if it is running on Fuchsia by going to the settings, navigating through Device information to Technical information and seeing if an Operating System Version field is present. If it is there, congratulations you could label yourself as an early adopter.

Final Words

Obviously I have not gone in depth on technical stuff here, partly because attempting to do so would explode the length of the post and partly because I couldn't do it any better than Google's own official Documentation which you can dive into for further reading if your interest has been piqued. Docs here

Lastly, if you get really excited about the project, how about trying your hand at attacking it? Google is asking for bug hunters to do their thing and have even provided a few writeups of previously reported bugs.