Professional Documents
Culture Documents
Fuchsia 1
Fuchsia 1
Abstract:
Fuchsia is a capability-based, real-time operating system (RTOS) currently being
developed by Google. Fuchsia is an evolving pile of code. It was first discovered as a
mysterious code post on GitHub in August 2016, without any official announcement. In
contrast to prior Google developed operating systems such as Chrome OS
(Google's desktop and laptop OS) and Android (Google's mobile OS), which are based
on Linux kernels.
Fuchsia is based on a new microkernel called "Zircon", derived from "Little Kernel", a
small operating system intended for embedded systems, which was developed by Travis
Geiselbrecht, a creator of NewOS kernel used by Haiku OS. Upon inspection, media outlets
noted that the code post on GitHub suggested Fuchsia's capability to run on universal devices,
from embedded systems to smartphones, tablets and personal computers.
In May 2017, Fuchsia was updated with a user interface, along with a developer writing
that the project was not a "dumping ground of a dead thing", prompting media speculatio n
about Google's intentions with the operating system, including the possibility of it replacing
Android.
Possibly android is riddled with problems that Google has yet to fix.
Key Words:
Real time operating system, micro kernel, little kernel.
1
1. INTRODUCTION
Fuchsia is based on a new microkernel called "Zicron", derived from "Little Kernel", a
small operating system intended for embedded systems, which was developed by Travis
Geiselbrecht, a creator of New OS kernel used by Haiku OS. Upon inspection, media outlets
noted that the code post on GitHub suggested Fuchsia's capability to run on universal devices,
from embedded systems to smartphones, tablets and personal computers.
In May 2017, Fuchsia was updated with a user interface, along with a developer writing
that the project was not a "dumping ground of a dead thing", prompting media speculatio n
about Google's intentions with the operating system, including the possibility of it replacing
Android.
Possibly android is riddled with problems that Google has yet to fix.
2
1.2 HISTORY FUCHSIA :
Android is a mobile operating system developed by Google, based on a modified version of
the Linux kernel and other open source software and designed primar ily
for touchscreen mobile devices such as smartphones and tablets. In addition, Google has
further developed Android TV for televisions, Android Auto for cars, and Android Wear for
wrist watches, each with a specialized user interface. Variants of Android are also used
on game consoles, digital cameras, PCs and other electronics.
Initially developed by Android Inc., which Google bought in 2005, Android was unveiled in
2007, with the first commercial Android device launched in September 2008. The operating
system has since gone through multiple major releases, with the current version being 8.1
"Oreo", released in December 2017.
Android has been the best-selling OS worldwide on smartphones since 2011 and on tablets
since 2013. As of May 2017, it has over two billion monthly active users, the largest installed
base of any operating system, and as of 2017, the Google Play store features over 3.5 millio n
apps.
Chrome OS is an operating system designed by Google that is based on the Linux kernel and
uses the Google Chrome web browser as its principal user interface. As a result, Chrome OS
primarily supports web applications.
Google announced the project in July 2009, conceiving it as an operating system in which both
applications and user data reside in the cloud: hence Chrome OS primarily runs web
applications. Source code and a public demo came that November. The first Chrome OS laptop,
known as a Chromebook, arrived in May 2011. Initial Chromebook shipments
from Samsung and Acer occurred in July 2011.
Chrome OS has an integrated media player and file manager. It supports Chrome Apps, which
resemble native applications, as well as remote access to the desktop. A few Android
applications have been available for the operating system since 2014. Reception was initia lly
skeptical, with some observers arguing that a browser running on any operating system was
functionally equivalent. As more Chrome OS machines have entered the market, the operating
system is now seldom evaluated apart from the hardware that runs it.
Chrome OS is only available pre-installed on hardware from Google manufacturing partners.
An open source equivalent, Chromium OS, can be compiled from downloaded source code.
Early on, Google provided design goals for Chrome OS, but has not otherwise released a
technical description.
In August 2016, media outlets reported on a mysterious codebase post published on GitHub
that revealed that Google was developing a new operating system called "Fuchsia". While no
official announcement was made, inspection of the code suggested its capability to run on
universal devices, including "dash infotainment systems for cars, to embedded devices like
traffic lights and digital watches, all the way up to smartphones, tablets and PCs". The code
differs from Android and Chrome OS due to its being based on the "Zicron" kernel (formerly
"Magenta") rather than on the Linux kernel.
3
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, along with a developer writing 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". 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" or replace
Android in a way that fixes problems on that platform.
In November 2017, initial support for the Swift programming language was committed.
In January 2018, Google published a guide how to run Fuchsia on Pixelbooks. This was done
successfully by Ars Technica.
4
2. ABOUT THE PROJECT
5
Fuchsia is based on Magenta Kernel which is developed based on the LittleKernel project. So,
Fuchsia will be using Magenta Kernel like Android on Linux Kernel. Unlike Linux, Magenta
Kernels are designed to scale much better, enabling Magenta to work on embedded devices
like car dashboard, refrigerator, smartphones, and desktop computers. With cars and home
appliances getting smarter day by day, Google is finding a future in Embedded OSes. With this
approach, Google is try to put a tight competition to commercial embedded OSes, such
as FreeRTOS or ThreadX.Google is secretly trying to improve upon their Material Design
thing and trying to make an ideal Operating System which looks great, functions well using
less resources. Some what like the iOS.
6
3. DESCRIPTION OF PROJECT
3.1 GENERAL DESCRIPTION:
The OS is built on Zicron, a "medium-sized microkernel" that is itself based on a project called
Little Kernel, which is designed to be used in embedded systems (computers that have a
specialized function and often don't need an actual operating system, like the software in a
digital watch). Similarly, both of the developers listed on Fuchsia's GitHub page — Christopher
Anderson and Brian Swetland — are experts in embedded systems. Swetland is a senior
software engineer at Google and Anderson has previously worked on the company's Android
TV and Nexus Q projects.
However, the Magenta kernel can do a lot more than just power a router. Google's
own documentation says the software "targets modern phones and modern personal
computers" that use "fast processors" and "non-trivial amounts of RAM." It notes that Magenta
supports a number of advanced features, including user modes and a "capability-based security
model." Further evidence that Fuchsia is intended for more than just Wi-Fi-connected gadgets
include the fact that Google already has its own IoT platform (the Android-based Brillo), and
the fact that the new OS includes support for graphics rendering. Some users of Hacker
News have even suggested that Fuchsia could be use for augmented reality interfaces. (Google
itself has yet to respond to requests for comment.)
This is just speculation for now, and the only Real description we have of Fuchsia is what it
says at the top of the GitHub page: "Pink + Purple == Fuchsia (a new Operating System)." The
question of why the project would be revealed in this way is also confusing, although when
pressed on the subject during an IRC chat, Swetland reportedly said: "The decision was made
to build it open source, so might as well start there from the beginning."
Well, we've certainly got the beginning of Fuchsia, but where it goes next isn't clear. From
what we can see, it's currently being tested on all sorts of systems. Swetland says it's "booting
reasonably well" on small-form factor Intel PCs (NUCs) as well as an Acer Switch Alpha 12
laptop ("although driver support is still a work in progress"), while another Google developer
involved in the project, Travis Geisel Brecht, says they'll soon have support for the Raspberry
Pi 3. At this rate, it looks like Fuchsia will be popping up all over the place.
Zircon is the core platform that powers the Fuchsia OS. Formerly Zicron is called as Magenta
kernel. Zicron is micro kernel derived from little kernel. Zircon is composed of a microkerne l
as well as a small set of user space services, drivers, and libraries necessary for the system to
boot, talk to hardware, load user space processes and run them, etc. Fuchsia builds a much
larger OS on top of this foundation.
The Zircon Kernel provides system calls to manage processes, threads, virtual memory, inter-
process communication, waiting on object state changes, and locking.
7
Currently there are some temporary syscalls that have been used for early bring up work, which
will be going away in the future as the long term syscall API/ABI surface is finalized. The
expectation is that there will be about 100 syscalls.
LK (Little Kernel) is a tiny operating system suited for small embedded devices, bootloaders,
and other environments where OS primitives like threads, mutexes, and timers are needed, but
there’s a desire to keep things small and lightweight. On embedded ARM platforms the core
of LK is typically 15-20 KB.
LK is the Android bootloader and is also used in Android Trusted Execution Environment -
"Trusty TEE" Operating System. Newer Android phones have some chance of LK running all
the time alongside Linux. A few ARM SoC manufacturers use LK as their default bootloader
such as Dragon Board 410c based on Qualcomm Snapdragon 410 processor.
8
4. FUCHSIA USER INTERFACE
4.1 Armadillo:
The first thing you’ll notice when you log in is that Material Design is here in a big way.
Fuchsia uses its own special renderer, Escher, that specializes in shadows. Your windows,
notifications, buttons, pop up boxes, and more are all cleanly layered, giving a depth to your
view. Your wallpaper feels less like a picture hiding flatly behind your applications and more
like a view out of a nearby window.
Fuchsia currently offers two layouts: a novel mobile-centric design codenamed Armadillo, and
a more traditional desktop experience codenamed Capybara. Armadillo drops the app drawer
and shortcuts model for a combined view of Recent Apps, Quick Settings, and your Google
Feed. Capybara is still very much a work-in-progress, with only a taskbar containing the time,
a placeholder for quick settings, and something reminiscent of a start button. You can check
out our look at Armadillo from last year in the presentation.
Every application you open is in its own card, or you can combine multiple apps into one shared
card. Some suggestions from your Feed will directly open two apps in one card to offer a
combined action. Overall, it’s an interesting evolution of the traditional app-home-screen
model, which seems to put the focus on actual tasks rather than individual apps.
Armadillo, This all leads us to an interesting point right now: the Fuchsia interface is written
with the Flutter SDK, which is cross-platform. This means that, right now, you can grab chunks
of Fuchsia and run it on an Android device. Fuchsia first went public in August 2016, and but
back then compiling it would get you nothing more than a command line. Thanks
to Hotfixit.net for pointing out that the Fuchsia System UI, called "Armadillo" is actually pretty
interesting now.
It's possible to download the source and compile Fuchsia's System UI into an Android APK
and install it on an Android device. It consists of a wild reimagining of a home screen along
with a keyboard, a home button, and (kind of) a window manager. Nothing really "works"—
it's all a bunch of placeholder interfaces that don't do anything. There's also a great readme in
the Fuchsia source that describes what the heck is going on.
The home screen is a giant vertically scrolling list. In the centre you'll see a (placeholder)
profile picture, the date, a city name, and a battery icon. Above there are "Story" cards basically
Recent Apps and below it is a scrolling list of suggestions, sort of like a Google Now
placeholder. Leave the main screen and you'll see a Fuchsia "home" button pop up on the
bottom of the screen, which is just a single white circle.
The center profile picture can be tapped on, and here you'll bring up a menu that's a bit like
Android's Quick Settings. The top row of icons shows the battery and connectivity. Below that
you'll get sliders for volume and brightness, and icons for airplane mode, do not disturb, and
auto rotate. You can interact with the buttons and sliders, but they won't actually do anything
on Android. Below that are buttons labeled "log out" and "more," which don't work at all.
9
Above the profile section are a bunch of cards labeled "Story [something]." The readme
describes stories as "a set of apps and/or modules that work together for the user to achieve a
goal." That seems pretty close to a recent apps list, maybe (eventually) with some kind of
grouping feature. Tapping on any card will load it as a full-screen interface, and since one is
labeled "email," it's pretty obvious that these are apps. The list is sorted by "last opened" so the
most recently-used cards will sit at the bottom of the list.
This list also has some window-management features. You can long press on a card and drag
it around, and if you drop it on top of another app, it will trigger a split screen mode. The split
screen system seems really capable, and probably needs to be reigned in a bit. You can do a
50/50 split vertically or horizontally. You can drag in a third app and 33/33/33 split horizonta lly
or vertically, or a 50/50 split next to a full-height app, or a have a tab bar appear for the three
full screen interfaces. You can drag in four apps and do a 75/25 split on one side of the screen
and 25/75 on the other, and then you can keep dragging in apps until the whole thing crashes.
Go back the story list and you'll see your split screen layout is reflected in the card, too, which
is nice.
The bottom "Google Now" panel starts with a search bar mockup. Tapping on it will bring up
a keyboard, but this is not the Android system keyboard, and it is instead a custom Fuchsia
interface. It has a new, dark theme, and things like long-pressing for symbols or settings do not
work. Below that appears to be Google Now, which has several "suggestion" cards. They seem
to be a little different than Google Now's news, weather, and calendar suggestions though, with
the docs saying "Conceptually a suggestion is a representation of an action the user can take to
augment an existing story or to start a new one." That almost makes it seem like an app launcher
With any new project at Google, it's hard to know what the scale of the project will be. Is this
a "20 percent" project that will be forgotten about in a year or something more important?
Luckily, we have a direct statement from a Fuchsia developer on the matter. In the public
Fuchsia IRC channel, Fuchsia developer Travis Geiselbrecht told the chat room the OS "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."
A ndroid was conceived in the days before the iPhone. It started as an OS for cameras, and then
became a BlackBerry clone, before being quickly retooled after the iPhone unveiling. With
Android, Google is still chained to decisions it made years ago, before it knew anything about
managing a mobile OS that ships on billions of smartphones. I'd say the two biggest problems
with Android right now are
Getting OS updates rolled out across the third-party hardware ecosystem
A lack of focus on smooth UI performance.
While there hasn't been anything said about an update plan, the OS's reliance on the Dart
programming language means it has a focus on high-performance.
Fuchsia really seems like a project that asks "how would we design Android today, if we could
start over?" It's a brand-new, Google-developed kernel running a brand-new, Google-
developed SDK that uses a brand-new, Google-developed programming language and it's all
geared to run Google's Material Design interface as quickly as possible. Google gets to dump
Linux and the GPL, it can dump Java and the problems it caused with Oracle, and Google can
10
basically insulate itself from all of Android's upstream projects and bring all the developme nt
in-house. Doing such a thing on the scale of Android today would be a massive project.
The hardest part might not even be developing the OS, but coming up with some kind of
transition plan from Android, which has grown to be the world's most popular operating
system. The "cross platform" feature of the Flutter SDK sounds important for a transition plan.
If Google could get developers to start writing apps in Flutter, it would be creating an app
ecosystem that ran on iOS, Android, and, eventually, Fuchsia. Google has also shown that it is
able and willing the make the Android Runtime work on non-Android platforms with Chrome
OS, so if Google does choose to go through with a transition plan, perhaps it could port and
entire Android stack over to Fuchsia as a stop-gap app solution.
Back in August when Fuchsia went public, Geiselbrecht told the Fuchsia IRC channel "The
Magenta project [started] about 6 months ago now" which would be somewhere around
February 2016. Android hung around inside Google for about five years before it launched on
a real product. If Fuchsia follows a similar path, and everything goes well, maybe we can expect
a consumer product sometime around 2020. Then again this is Google, so it could all be
cancelled before it ever sees the light of day. Fuchsia has a long road ahead of it.
From the ground up, Fuchsia seems designed to accommodate the Google Assistant.
Everything on-screen, everything you’ve done and anything you can do is visible to the Google
Assistant — or at least that’s how the current Fuchsia documents make it seem.
Assistant in Android can inspect your screen for information for its use if you hold the home
button, but it seems Fuchsia will provide even deeper access. In Fuchsia, you can be in your
browser looking at reviews for a restaurant, then you open your calendar to check a date, then
say “Okay Google, invite Samantha to lunch” and it would have all that context.
Assistant will have access to all “entities” (“an identifiable person, place, thing, event, or
concept which is represented within the Fuchsia platform”). And notably, the developers
have specifically called out access to entities seen on-screen in the past: Entities will enable
“the Assistant to inspect and manipulate entities present in the current context or seen in the
past.”
11
4.3 FUCHSIA IS A CROSS DEVICE OS:
In today’s technological world, most people don’t have just one device, but multiple. Phone,
tablet, desktop, laptop, wearables, and more. Based on the current state of the OS, Google
seems to be working to make Fuchsia run on all of these seamlessly and in unison.
Traditionally, the problem with doing this is maintaining progress and context. That’s where
something called Ledger comes in: once signed in with your Google Account,
your applications automatically save their place across devices. Google describes Ledger as “a
distributed storage system for Fuchsia.” Everything is stored in the cloud.
The idea is a futuristic but cool one: Close Chrome on your phone, then open it on your laptop
and your tabs are right where you left them. The document you forgot to save before you left
work? Just open Docs on your phone and save it. Your battery died right in the middle of a
research project? Borrow a public computer and pick up where you left off.
Additionally, since there’s no difference between Fuchsia for laptop and desktop and Fuchsia
for mobile, for some there may not be a need to carry both. Theoretically, you could just plug
your phone into a dock (similar to Samsung’s DeX or Razer’s Project Linda, perhaps), and you
can be up and running with a bigger screen and a desktop/laptop-like experience
12
4.4 ARCHITECTURAL BENEFITS OVER ANDROID/CHROME OS:
Android and Chrome OS are both based on Linux, which has a solid 25-year foundation. One
problem for Android is that before Treble, patching to the latest Linux kernel was reliant on
device OEMs putting in the work, which few did (or at least not in a timely manner). Even
now, after Treble has been available for a few months, some OEMs are reluctant to include it
on their devices. This leaves Android users potentially vulnerable to new exploits that have
already been patched upstream.
Fuchsia avoids these pitfalls by using its own custom kernel, Zircon, which is designed to be
consistently upgradeable. To help make this possible, applications are isolated from having
direct kernel access. This both gives an extra layer of security and prevents apps from being
incompatible after a system upgrade, a problem that has plagued Android before.
Google is reaching out to developers of all backgrounds with this project. Most of the UI is
written in Dart (a language that is designed to feel familiar to JavaScript and Java developers),
through the Flutter framework. Support for Go, another Google-designed language is also
included. Systems developers will find comfort in the availability of Rust. Google is also
targeting Apple’s developer base by introducing Swift support.
The icing on the cake, though, is the native interoperability support for most of these langua ges.
Through the FIDL protocol, your Dart UI code can directly interface with your Go backend or
any other combination. This gives developers the opportunity to be more expressive and use
the best language for the job at hand. We’ll dive a bit more into this later.
That’s the tricky part. While Fuchsia in its current state is looking pretty, the underlying
functionality has a long way to go. It doesn’t even have a fully functioning web browser,
(though a port of Chrome is in progress). And if you’ve seen it running on a Pixelbook, you
know it still has a way to go.
Some signs we’ve seen point to some kind of initial Fuchsia release that would be sooner rather
than later, but everything’s really up in the air for now. Based on looking at the current state of
things, we’re inclined to think we won’t see any devices running Fuchsia until 2019 or later.
Notably, everything in this post is simply us doing our best to deduce Google’s current progress
and hopes for the project — as with anything in this stage in development, it’s all subject to
change. Probably lots of change before you ever see this on a consumer product.
13
5. QUERIES REGARDING FUCHSIA
5.1 WILL IT REPLACE ANDROID?
Possibly. Android is riddled with issues that Google has yet to address. First, there's
fragmentation caused by hundreds of different devices from dozens of manufacturers using
different, tweaked versions of Android rather than the latest, purest version. Second, there's
an update problem. Google has an annual release schedule for Android updates, but it takes
about four years for an update to fully flood the ecosystem.
Although many of these problems are related to Android being open source - which means
Google gives it to OEMs and carriers and lets them tinker with it and load it onto random
hardware, resulting in fragmentation, as Google can't then decide to push Android direct to
these devices if any modifications and tinkering has been done - another problem is
that Android is based on Linux.
Linux is dogged by many legal issues - and subsequent licensing fees from Android hardware
OEMs eat away at profit margins. The Linux kernel was also not originally designed
for smartphones and IoT devices, and yet the kernel's been completely tweaked and loaded
onto those devices, creating a prime environment for bugs and vulnerabilities and security
issues to grow.
A new operating system and platform would solve all these issues. It wouldn't be shackled by
pricey patent licensing deals. It would be safer, built, and optimised for today. It could also be
modular and be truly unified, meaning it would work across many devices. Google could
even begin licensing it to hardware developers, solving those fragmentation and update
problems. But, again, who knows.
14
6. PROGRAMMING ENVIRONMENT OF FUCHSIA
15
6.2 FRAME WORK:
FLUTTER FRAMEWORK:
Java is one of the most popular and extensively used programming languages out
there. From Websites to awesome Android apps, It’s all Java. But Google recently
had brought about another framework to build apps for both iOS and android us ing
their own Flutter Framework.
Flutter is still in its infancy and it’s library is still small. But, It is efficie nt, faster,
builds high- performance apps and above all, Cross platform.
16
7. ADVANTAGES OF FUCHSIA
17
7.3 LIGHT WEIGHT PROCESSING:
In computer operating systems, a light-weight process (LWP) is a means of
achieving multitasking. In the traditional meaning of the term, as used in Unix System
V and Solaris, a LWP runs in user space on top of a single kernel thread and shares its address
space and system resources with other LWPs within the same process. Multiple user
level threads, managed by a thread library, can be placed on top of one or many LWPs -
allowing multitasking to be done at the user level, which can have some performance benefits.
In some operating systems there is no separate LWP layer between kernel threads and user
threads. This means that user threads are implemented directly on top of kernel threads. In
those contexts, the term "light-weight process" typically refers to kernel threads and the term
"threads" can refer to user threads. On Linux, user threads are implemented by allowing certain
processes to share resources, which sometimes leads to these processes to be called "lig ht
weight processes". Similarly, in SunOS version 4 onwards (prior to Solaris) "light weight
process" referred to user thread.
In today’s technological world, most people don’t have just one device, but multiple. Phone,
tablet, desktop, laptop, wearables, and more. Based on the current state of the OS, Google
seems to be working to make Fuchsia run on all of these seamlessly and in unison.
Traditionally, the problem with doing this is maintaining progress and context. That’s where
something called Ledger comes in: once signed in with your Google Account,
your applications automatically save their place across devices. Google describes Ledger as
“a distributed storage system for Fuchsia.” Everything is stored in the cloud.
The idea is a futuristic but cool one: Close Chrome on your phone, then open it on your laptop
and your tabs are right where you left them. The document you forgot to save before you left
work? Just open Docs on your phone and save it. Your battery died right in the middle of a
research project? Borrow a public computer and pick up where you left off.
18
8. CONCLUSION
Fuchsia is really going to change world of operating systems by giving a simple and differe nt
operating system to the world which can be used in any system, tablet, mobile or any embedded
system.
Fuchsia is proof for advancement in the modern world, and the tech giant google is going to
create a revolution in the world of technology.
19
9. REFERENCES:
1) https://github.com/fuchsia-mirror [git hub]
2) https://en.wikipedia.org/wiki/Google_Fuchsia [Wikipedia]
3) https://www.slideshare.net/PRUTHVIRAJBANDA1/fuchsia-66670739 [my last year
presentation on slide share]
4) https://www.youtube.com/watch?v=dziInGrVHac [YouTube]
5) https://www.pocket- lint.com/laptops/news/google/138518-google- fuchsia-os-what-s-
the-story-so-far [pocket lint]
6) https://9to5google.com/2018/01/23/what- is-google- fuchsia-os/ [9to5 google]
7) https://www.theverge.com/2016/8/15/12480566/goo gle-fuchsia- new-operating-
system
8) http://www.livemint.com/Leisure/Ij8KANz6EZs9amKaqHqkiP/Why- is-Google-
working-on-the-new-Fuchsia-operating-system.html [live mint]
9) https://arstechnica.com/gadgets/2017/05/googles-fuchsia-smartphone-os-dumps-
linux-has-a-wild-new-ui/
10) https://itsfoss.com/fuchsia-os-what-you-need-to-know/ [its FOSS]
11) https://www.quora.com/Why- is-Google- making-Fuchsia [quora]
20