You are on page 1of 9

Google Chrome Operating System

COSC 460
Operating System Concepts
10/27/2012
Scott Dieter

Google Chrome Operating System is an operating system designed by Google, for Google’s own line of netbooks
th
and desktop computers. It was introduced by Google on July 7 , 2009 and caters to those who use the computer
mainly for online applications. The operating system utilizes the Monolithic Linux-based kernel allowing for pre-
emptive multitasking. Google Chrome Operating System’s architecture is comprised of four main layers. The bottom
layer is the Hardware Controller layer which provides an abstraction of the Hardware Layer’s architecture to the
higher levels applications. The Operating System Services layer offers services to the user and programs such as
User interface, Program execution, I/O operations, File system management, Network Interface, and Inter process
communications. Finally the Application Layer consists of all web applications that came preinstalled or the user
installed such as, Gmail, Chrome browser, Google Maps, etc. The Google Chrome Operating System kernel is a
Monolithic Linux-based kernel. Monolithic kernels differ from microkernels in that the Google Operating System is
being run in kernel mode and also by itself in supervisor mode. An overview of the Linux-based kernel shows it can
be further dissected into five categories. The Process Scheduler, Memory Manager, Virtual File System, Network
Interface, and Inter-Process Communication all make up the Linux Kernel. Chrome OS uses the Completely Fair
Scheduler. This scheduler is designed to balance or maintain fairness, by splitting up processor time to tasks using
virtual runtime to keep track of time. This ensures processes that need process time the most, will receive it. The
Memory Manager of Chrome OS allows for separate processes to access the computers main memory at the same
time. The memory manager also manages virtual memory which allows processes that use larger amount of memory
than the machine physically has. The Virtual File System of The Google Chrome Operating System provides an
abstraction of most of the hardware devices in the machine and puts the abstraction in a common file interface for the
rest of the devices on the machine. The Virtual File System also supports other file system formats that are
associated with other operating systems such as Windows. The Network Interface of the Google Chrome Operating
System allows the Chrome OS to communicate to other systems in a network. The Network Interface abstracts
hardware devices and network protocols for the user processes other systems on the kernel so they can access the
network without knowing what physical protocol or devices are actually being used. Security on the Chrome OS is
accomplished by the use of Sandbox. Sandbox is a virtual machine that runs applications of the users choosing.
Sandbox provides security by allowing only code that isn’t going to make persistent changes to the machine or gain
access to private information that to execute.
Page |1

Contents

1. CONTENTS…………………………………………………………………………………………..........1

2. INTRODUCTION…………………………………………………………………………………………...2

3. BACKGROUND…………………………………………………………………………………………….2

4. HISTORY…………………………………………………………………………………………………....3

5. DESIGN……………………………………………………………………………………………………..3

6. KERNEL……………………………………………………………………………………………............4

7. CPU SCHEDULING…………………………………………………………………………………….....5

8. SECURITY………………………………………………………………………………………………….5

9. SYSTEM BOOT…………………………………………………………………………………………….6

10. EVENT HANDLING………………………………………………………………………………………..6

11. CLOUD STORAGE………………………………………………………………………………………...6

12. CURRENT RESEARCH…………………………………………………………………………………...7

13. CONCLUSION……………………………………………………………………………………………...7

14. REFERENCE……………………………………………………………………………………………….8
Page |2

1. Introduction

In the world of Operating Systems, Microsoft’s Windows Operating System has dominated since
its arrival. Microsoft’s Windows takes up a staggering 82% of the Operating System Market Share,
Apple’s Macintosh and iOS take up another 12%, Android at 3%, and Linux with 1%. With such as a
small chance of another Operating System becoming competitive with Microsoft’s Juggernaut of an OS,
Google stepped up to the plate and released their second Operating System to the world, The Google
Chrome Operating System.

The Google Chrome OS is a web heavy operating system, designed and optimized for users who
spend a majority of their time on the web. This includes the actual operating system as well as the
distributed applications and Google’s own line of applications. After its initial release, Google made its
operating system an open source project called Chromium OS. “The Chromium Projects” provides
Software Developers the necessary information, tools, and libraries to create and produce software for
the Chrome OS.

The Google Chrome Operating System has created a platform designated design for the
machines it is being ran on and the fact that it is open source has caught many developer’s eyes. Like its
Ubuntu counterpart The Google Chrome OS harbors the opportunity to develop the operating system
design. The Google Chrome OS uses Java based languages for their apps as well as glibc or GNU C
Library, which is a C and C++ library that can be used to create the infrastructure of The Google Chrome
OS as well as The Chromium Projects own library for developers. The Google Chrome OS uses the 3.4.6
Linux kernel to provide a virtual machine interface to user level programs and processes allowing
developers to write software without worrying about the hardware is in the machine.

The purpose of this paper is to provide an in depth architectural perception of The Google
Chrome OS. To do so, the paper will cover various topics such as a background of The Chrome OS,
history of the project, current issues in design, kernel architecture, CPU Scheduling in the OS, Memory
Management, the Virtual File System, the network interface, and how security is handled.

2. Background

Google is one of the most successful companies in the world. It was no surprise when Google
announced its entrance into the world of Operating Systems. Early in July, 2009 Google released the
Google Chrome Operating System that could be downloaded online. The development phase of the
project started early in 2009 with Matthew Papakipos as engineering director. Google was able to develop
the operating system rapidly by providing a prototype Chrome operating system to a group of their
employees and monitoring usage patterns on the operating system to determine what aspects were used
the most, and trimming those that weren’t. Google was no rookie in the world of operating systems as
proven by the success of their highly successful mobile Android operating system they released in
2007[1].

After the initial release in July of 2009, Google released its Chrome Operating System as an open
th
source project calling it the Chromium Operating System Project on the 19 of November, 2009. This split
meant that the Google Chrome Operating System would come preinstalled and configured on Google’s
line of Samsung machines, while flavors of Chromium OS can be downloaded online from multiple
developers. Allowing multiple developers to come up with their own version of the Chromium OS raises
the bar to build the best web biased operating system.
Page |3

3. History

Google Chrome Operating System’s design gives developers full reigns to develop current code
base and overall design of the operating system. By releasing the Google Chrome Operating System’s
source code and making it open source, it allows developers to create their own versions of the operating
system and build off other developer’s success. The Chromium Project has created a database of
features implemented into different developer versions of the Chromium OS, making the operating
system a beautiful and more productive environment.

Google Chrome Operating System uses the 3.4.6 Linux kernel to provide a virtual machine
interface designed to abstract the hardware layer to maximize productivity. The kernel is an upgrade from
the original 2.6 Linux kernel that Google Chrome Operating System was originally using and provides
services such as the Process Scheduler, Memory Manager, Virtual File System, Network Interface, and
Inter-Process Communication.

4. Design

User Applications - The Google Chrome Operating System’s architecture can be divided up into
four separate layers. The first is the User Application’s layer. Applications are written mainly in Java
Based such as JVM, Java servlets, JavaScript and Ruby. Applications run in The Sandbox which
provides a protective environment which does not rely on the Hardware Layer, instead it provides an
abstraction that does not care for the hardware specifics. Applications such as Chrome Browser, Chrome
Web Store, Gmail, Games, Google Calendar, Google Maps, Google Play Music, Netflix, and YouTube all
come standard when on Chromebooks and Chromeboxes [2].

Operating System Services – The operating system offers services to programs and the user
whom are executing the programs. The services that are offered can be broken down into six main
categories.

 User Interface – Google Chrome Operating System offers both the Command Line Interface and
the Graphical User Interface. The Command Line Interface allows the user to enter input through
the keyboard as text commands. The Graphical User Interface is a windowing system with a
touchpad/mouse that allows the user to enter I/O, virtually touch software, and enter input through
the keyboard.

 Program Execution – Program Execution allows The Google Chrome Operating System to
transfer a program to memory, execute the program, and finally end the program.

 I/O Operations – Many Programs often have the need for I/O, where I/O devices or files are
involved. For these devices, specific functions are often needed such as burning a disk. Because
I/O devices are normally not accessible to the user, for both security reasons and from a
productivity viewpoint, they are handled by The Google Chrome Operating System.

 File System Manipulation – Programs have the quintessential need to write to files, read, create,
delete, search, and list files. The Google Chrome Operating System provides a set of file
systems to cater to the user’s decision, individual functions, or efficiency.
Page |4

 Communications – Processes often need to communicate with each other. The Google Chrome
Operating System provides the communication feature through shared memory, where packets
are sent to and from processes.

 Error Detection - Google Chrome Operating System is always checking for errors, whether it be a
CPU error, memory errors, I/O errors, and the applications. Because Google Chrome Operating
System is constantly updating it always had the most up to date error detection tools.

Kernel – Google Chrome Operating System utilizes the new 3.4.6 Linux kernel. The kernel
provides a virtual environment in order to create an abstraction of the hardware layer. The kernel provides
services such as the Process Scheduler, Memory Manager, Virtual File System, Network Interface, and
Inter-Process Communication.

Hardware Controllers – Google Chromebooks, with the installed Google Chrome Operating
System, come in a variety of hardware with the top of the line Samsung Series 5 Chromebook having the
Intel Celeron Processor 867, 4GBs DDR3 memory, 16GB SSD for storage, and Intel shared integrated
HD Graphics along with other various hardware components.

5. Kernel

The Google Chrome Operating System kernel is the Monolithic Linux-based kernel. Like all
Monolithic kernels the operating system is being run in kernel mode and also by itself in supervisor mode.
In addition the services are all share a common location. An overview of the Linux-based kernel shows it
can be further dissected into five categories. The Process Scheduler, Memory Manager, Virtual File
System, Network Interface, and Inter-Process Communication all make up the Linux Kernel.

 The Process Scheduler – The Process Scheduler’s purpose it to control process access
to the CPU. Operating systems use a variety of types of schedulers to do so. The Google
Chrome Operating System uses the Completely Fair Scheduler. This scheduler is
designed to balance or maintain fairness, by splitting up processor time to tasks. To do
this the scheduler uses a virtual runtime to keep track of the length of time provided to
task at hand. This way the task that has been permitted the least amount of time to the
processor, becomes the task that needs the processor the most.

 The Memory Manager - The Memory Manager, of The Google Chrome Operating
System’s, purpose is to control process access to the hardware’s memory components.
The Memory Manager is able to do so by using a hardware memory management system
which supports mapping to occur from the process memory identifying code to the
systems memory. This allows processes to all access main memory at the same time.

 The Virtual File System – The goal of the VFS is to provide a generic format of hardware
data to other devices on the system. The VFS of The Google Chrome Operating System
provides an abstraction of most hardware devices in the machine and puts the
abstraction in a common file interface for that rest of the devices on the machine can
interpret. The Virtual File System also supports other file system formats that are
associated with other operating systems such as Windows [3].
Page |5

 The Network Interface - The Network Interface of the Google Chrome Operating System
allows the Chrome OS to communicate to other systems in a network. The Network
Interface abstracts hardware devices and network protocols for the user processes other
systems on the kernel so they can access the network without knowing what physical
protocol or devices are actually being used.

 Inter-process Communication – This is an essential subsystem of the Google Chrome


Operating Systems. Inter-process Communication inhibits process to process
communication running on the same machine. This is important if a process uses another
process in order to function.

6. CPU Scheduling

The Google Chrome Operating System runs the Linux 3.4.6 kernel which utilizes the Completely
Fair Scheduler. The goal of the Completely Fair Scheduler is to ensure fairness. This is done by allowing
processes an equal share of the Central Processing Unit. For example, the process that has had the least
amount of time with the CPU needs the CPU the most. In order for the Completely Fair Scheduler to
maintain balance, the scheduler keeps track of the amount of time each process has had with the CPU
using a virtual runtime. The Completely Fair Scheduler uses a red black tree to sort by time. The red
black tree is ideal for the scheduler, for red black trees only allow the furthest node to be one level lower.
In addition, red black trees big O time is O(log n) allowing for fast operations.

The Completely Fair Scheduler also allows for group scheduling. Group scheduling ensures that
in situations where tasks spawn other tasks, each single task is ensured their own virtual runtime rather
than treating tasks uniformly.

7. Security

While the Google Chrome Operating System is by default more secure than most operating
systems due to its constant update on each boot it also utilizes Sandbox to maintain security. Sandbox is
able to provide security by only allowing programs to run that are not going to alter unauthorized areas of
the operating system, machine, or private information. The Sandbox was designed for user mode only.
This means that the user does not need to be a super user in order to use the Sandbox. The Sandbox is
configured into two separate processes.

The first is the broker process. In Chrome OS the broker is solely the browser process. The
broker can be viewed as an administrator that dictates the Sandboxes processes. The broker has a
variety of jobs such as housing Sandbox policy engine service, interception manager, and IPC service,
creating target process, determine policy for all target processes, and execute the policy allowed actions
for the target process[4].

The target process in the Chrome OS is the renderers. The target projects job is to house all the
data that is to be executed in the Sandbox as well as the Sandboxes client side architecture. Such as the
IPC client, policy engine client, interceptions, and any data that goes in the Sandbox.
Page |6

8. System Boot

On most operating systems, once powered on the firmware searches for components inside the
computer, or externally, and initializes them one at a time, followed by a splash screen that displays the
laptop maker. After the firmware finishes it will load the bootstrap loader which locates and retrieves a
program that will boot from the hard drive to intern load the kernel. The kernel searches for all
components once more and initializes them. Next another splash screen will display the operating system
whether it is Windows, Mac, Linux, etc. After all this the user is finally able to login. Upon startup, all
startup applications will then start further slowing down the system such as antivirus software. Finally the
user is able to login (again) to the web browser.

In Chrome OS the boot process has been made much faster by eliminating all unnecessary
procedures. Since the Chromebook has been designed exclusively for Chrome OS the firmware does not
have to search for components, it already knows what is in it. Next it does not check to see if there is a
CD, DVD, or USB inserted in the machine thus eliminating more time. Initializing hardware is slow;
therefore it has been moved from the firmware to the kernel which stops multiple devices from powering
on during startup. Furthermore, all splash screens have been eliminated as they are unnecessary. There
is no bootloader, therefore, we jump straight to the kernel. There are no startup applications other than
the browser, so no waiting for normal start up applications. Finally since it already knows your Google
Account there is no need to login. By replacing the outdate HDD with a much faster SSD, there are no
moving parts, which eliminates the time wasted by waiting for a needle to move to the correct location. In
turn Google Chrome OS can often boot in under five seconds [5].

9. Event Handling

Device drivers that can be found in the kernel perform event handling as well as interrupts. Once
the kernel has been alerted, the application that is waiting for that particular event or interrupts receives a
notification. The parts that are doing the event handling are not aware of any time constraints to execute
the procedure. While not an issue with event handling, it becomes an issue when interrupts are involved.
On a Chrome OS machine such as a Chromebook, interrupts are first priority. This can cause problems
when a task with first priority is cut off by another interrupt. Since the system does not know for sure when
this scenario can happen, there is often setbacks.

10. Cloud Storage

Chromebooks and Chromeboxes both come with 100GB of cloud storage that Google offers for
free as an incentive to sell these machines. The reason Google is able to offer their Samsung version of
Chromebooks much cheaper than Samsung’s Windows PCs is because the demand for 500GB or 1TB
hard drives has been eliminated. Most Chromebooks come with 16 GB’s of storage, the rest of the user’s
data is stored through cloud storage. Cloud storage is a network of online storage where data can be
saved using virtual storage in our case housed by Google. Data centers act as warehouses where cloud
data is stored. For cloud storage to work all that is needed is one server that has access to the web.
When a client decides to store data, a copy of the data instead of the data itself, is sent over the
connection the server’s data center where it will be stored until the client sends the signal to retrieve the
data.

There are multiple advantages of cloud computing. Cloud Storage’s biggest advantage is it
eliminates the use for large HDD and SSD thus cutting cost in hardware. Next, if the client’s computer
were to crash they would be able to then retrieve their data from the server’s data center. Finally, many
Page |7

third party Cloud Storage Companies allow up to a certain amount of storage for free (2GBs standard).
This is enough to backup basics such as pictures, music, and important documents.

11. Current Research

When first introduce the Google Chrome Operating System’s interface was a Chrome web
window allowing for no way to exit out of the window. Chrome OS’s most recent update was their Aura
Shell. Aura gives the advantage of a traditional desktop feel that is familiar with most Windows, Mac, and
Ubuntu users. Icons for applications can be found on the bottom which Google has named “shelf”, which
will feel very familiar to Window’s taskbar. In addition the newest version of chrome now allows for
multiple windows rather than multiple tabs inside the Google Chrome.

Chromebooks and Chromeboxes will also become cheaper in the near future due to a variety of
factors. The first reason is that companies such as HP, Dell, and Asus will soon be in on the action
instead of Samsung being the only producer. The competition while drive the price down in order to sell
the company’s product. Next prices on hardware will continue to go down due to the fact that
Chromebooks do not need the latest and greatest hardware to be proficient. As Intel continues to release
rd th
its 3 and 4 generation i3, i5, i7 processors, the price will go down for their older Pentium processors. In
addition Solid State Drives price per GB is dropping much faster than the Hard Disk Drive ever has.

Finally, Sergey Brin has said that Chrome OS and Android, Google’s highly successful mobile
operating system, will eventually combine to form one universal operating system. Android dominates the
mobile phone operating system market with nearly three out of every four phones is an Android.

12. Conclusion

The Google Chrome Operating System offers a blank canvas to developers and users to create
the operating system of the future. Google’s tactic of making its operating system open source,
professional, non-professional, and hobby programmers are all able to develop Applications, interfaces,
and flavors of the Chrome OS. Originally designed for exclusively web based tasks, Chrome OS has
graduated from the Browser Window only interface to a full-fledged operating system that is ready for
competition with Windows and Mac.

Google Chrome Operating System can be divided into four main layers being the Application
Layer, Operating System Services, the kernel, and Hardware controllers. Chrome OS utilizes the
Monolithic Linux-based 3.4.6 kernel. This kernel can be broken down into individual subsystems to be
further analyzed. The Process Scheduler (PS), Memory Manager (MM), Virtual File System (VFS),
Network Interface (NI), and Inter Process Communications (IPC).

Chrome OS accomplishes Central Process Unit Scheduling with the use of the Completely Fair
Scheduler which provides an even amount of processor time to each process. Chrome OS pushes the
limit of boot time by eliminating many processes of a traditional operating system boot such as splash
screens, certain firmware, and login screens.

As the web becomes more and more the main place users spend their time on the internet,
Chrome Operating System will become increasingly attractive. Eventually we could see a machine that
only needs access to the web to run applications and store data to the cloud. In this scenario Google’s
Chrome Operating System will already be one up on the competition.
Page |8

13. References

1. Google, "Introducing the Google Chrome OS," Google Official Blog, pp. 1, July 7
2009.[journal]. :http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html.
[Accessed 10/27/2012]

2. I. Bowman, "Conceptual Architecture of the Linux Kernel," GradMath, pp. 1-4, 06 JUN
2007.[journal]. :http://oss.org.cn/ossdocs/linux/kernel/a1/index.html. [Accessed 10/27/2012

3. Chromium projects, "Software Architecture," The Chromium Projects, pp. 1-3, 19 NOV
2009.[journal]. :http://www.chromium.org/chromium-os/chromiumos-design-docs/software-
architecture. [Accessed 10/27/2012]

4. M. Jones, "Anatomy of the Linux Kernel," developerWorks, 1-4, 06 JUN 2007.[journal].


:http://www.ibm.com/developerworks/linux/library/l-linux-kernel/. [Accessed 10/27/2012]

5. M. Jones, " Inside the Linux Completely Fair Scheduler," IBM developerWorks, pp. 1-10, 15
DEC 2009.[journal]. :http://www.ibm.com/developerworks/linux/library/l-completely-fair-
scheduler/. [Accessed 10/27/2012]

6. T. Claburn, "Google Chrome OS, Take Two: New Software And


Chromebooks,"InfromationWeekHardware, pp. 1-5, 29 MAY 2012.[journal].
:http://www.informationweek.com/hardware/desktop/google-chrome-os-take-two-new-
software-a/240000980. [Accessed 10/27/2012].

7. C. Dawson, "5 reasons everyone will be using Chrome OS in 3 years," ZDNet, pp. 1-8, 30 MAY
2012.[journal]. :http://www.zdnet.com/blog/google/5-reasons-everyone-will-be-using-chrome-
os-in-3-years/3649. [Accessed 10/27/2012]

8. Chromium projects, "Sandbox," The Chromium Projects, pp. 1-3, 19 NOV 2009.[journal].
:http://www.chromium.org/chromium-os/chromiumos-design-docs/sandbox. [Accessed
10/27/2012]

9. J. Strickland, "How Cloud Storage Works," Howstuffworks, Vol. , no. , pp. 1-4, July
2012.[journal]. :http://computer.howstuffworks.com/cloud-computing/cloud-storage2.htm.
[Accessed 10/27/2012]

You might also like