Right Money Management App For Your Financial Goals
Â
Chromium os architecture report
1. Report:
Chromium OS Architecture
Presented to:
DR.Eng. Ahmed Lotfy
BY Student:
Amr Abd El Latief Abd El Al
Mohamed Refaat
Mohamed Reda Mohamed
Track: EWD (Enterprise web Development Java)
2. Introduction
ChromiumOperatingSystemisanopensource developmentversionof Google’s Chrome OSbasedonLinux
kernel and its targetsthe userswhichspendmostof theirtime onthe internet. ThisReportwilloverview the
operatingsystemarchitecture,anditsorganizedintothree sections,inthe firstsectionwe will review Linux
kernel Architecture,inthe secondsectionwe will talkaboutthe FirmWare ,andFinallyinthe Last sectionwe will
illustrate the ApplicationLayerof ChromiumOS.
Fig.1: Chromium Operating System Layers [3]
Chromium OS consists of three major components:
ď‚· Linux Kernel
ď‚· Firmware
ď‚· The Chromium-based browser and the window manager
1.System-level software (Linuxkernel)
Chrome OS is an operating system based on the Linux kernel.
1.1. Kernel:
is a computer program that manages input/output requests
from software, and translates them into data
processing instructions for the central processing unit and
other electronic components of a computer. The kernel
performs its tasks, such as system call interface (sci), process
management, virtual file system, memory management and
device driver and network stack.
Fig.2.Linux kernel in main memory [1]
3. 1.2. Subsystems of the Linux kernel
System call interface
Is a layer between user-space and kernel, Perform function calls
from user space to kernel such as create new process, exec, stop
process(kill, exit) and communicate between them.
Process management
Is focused on execution of processes. Process represent an
individual virtualization of processor (thread code, data, stack,
CPU registers), is the need to share the CPU between the active
processes. The kernel implements a scheduling algorithm that
operates in constant time. There is an algorithm is Preemptive
scheduling only user processes are preemptive, in addition to
time quantum expiration, execution of processes in user mode
would be interrupted if higher priority entered and also can
executed with kernel mode but not all sections of kernel code
can be preemptive. Kernel uses default- scheduler Known as
sched-other but also kernel contains two scheduler’s first-in-first-
out and round-robin .
Memory management
This memory management scheme uses 4KB buffers as its base, but then allocates structures
from within, keeping track of which pages are full, partially used, and empty. This allows the
scheme to dynamically grow and shrink based on the needs of the greater system.
Supporting multiple users of memory, there are times when the available memory can be
exhausted. For this reason, pages can be moved out of memory and onto the disk. This process
is called swapping because the pages are swapped from memory onto the hard disk.
Virtual file system
Is an interesting aspect of the Linux kernel because it provides a switching layer between the
system calls interface (SCI) and the file systems supported by the kernel.
Network stack
Follows a layered architecture modeled after the protocols themselves. Recall that the
Internet Protocol (IP) is the core network layer protocol that sits below the transport protocol.
Above TCP is the sockets layer, which is invoked through the SCI.
The sockets layer is the standard API to the networking provides a user interface to a variety
of networking protocols. From raw frame access to IP protocol data units (PDUs) and up to
Fig.3:Linux kernel Layer [1]
4. TCP and the User Datagram Protocol (UDP), the sockets layer provides a standardized way
to manage connections and move data between endpoints
Device driver:
The most of the source code in the Linux kernel exists in device drivers that make a particular
hardware device usable.
2. Firmware:
The firmware plays a key part to make booting the OS faster and more secure. To achieve this goal we
are removing unnecessary components and adding support for verifying each step in the boot process.
We are also adding support for system recovery into the firmware itself. We can avoid the complexity
that's in most PC firmware because we don't have to be backwards compatible with a large amount of
legacy hardware. For example, we don't have to probe for floppy drives.
Fig. 4 Chromium OS Firmware Overview [2]
Our firmware will implement the following functionality:
2.1 Firmware Boot and Recovery
• The layout and structure of firmware for Chromium OS is designed for security,
recovery and development.
• Chromium OS wants to support developers as well. Developers are provided with a
means of running alternate software. In the alternate boot paths, the user is notified
that they are not running a boot path provided as part of Chromium OS.
• The boot and recovery procedures outlined will be implemented and required for all
Chromium OS platforms regardless of architecture (ARM/Intel/etc...).
• All firmware will contain a recovery code path, which will restore the machine to its
Original Chromium OS state. This recovery code path will be initiated either when
5. Any chain in the boot path is not verified or when a user manually triggers recovery
Mode, likely via an explicit recovery button on the device.
2.2Verified Boot (For Security)
•The Chromium OS team is implementing a verified boot solution that strives to
ensure that users feel secure when logging into a Chromium OS device. Verified
boot starts with a read-only portion of firmware, which only executes the next chunk
of boot code after verification.
•Verified boot strives to ensure that all executed code comes from the Chromium OS
source tree, rather than from an attacker or corruption.
•erified boot is focused on stopping the opportunistic attacker. While verified boot is
not expected to detect every attack, the goal is to be a significant deterrent which will
be improved upon iteratively.
•Verification during boot is performed on-the-fly to avoid delaying system start up. It
uses stored cryptographic hashes and may be compatible with any trusted kernel.
Verified Boot should provide a mechanism that aids the user in detecting when their
system is in need of recovery due to boot path changes. In particular, it should meet
these requirements:
•Detect non-volatile memory changes from expected state (rw firmware).
•Detect file system changes relevant to system boot (kernel, init, modules, fs
metadata, and policies).
•Support functionality upgrades in the field.
This feature is not expected to provide 100% detection of attacks. Instead, it is meant to raise
the attack bar significantly and in a way that can be improved upon iteratively .It is important to
note that restraining the boot path to only Chromium-project-supplied code is not a goal. The
focus is to ensure that when code is run that is not provided for or maintained by upstream, that
the user will have the option to immediately reset the device to a known-good state. Along these
lines, there is no dependence on remote attestation or other external authorization. Users will
always own their computers.
6. 3. Application Layer
The last layer of the operating System (Chromium OS) is the App Layer; it’s very simple
Such that it doesn’t take too time to reach the Browser. It takes Around 5 sec from
turning on your PC until Reaching the Browser (Note that the fastest windows PC take
around 45 sec). This Layer mainly Consists of Window manager –Which is the most
important Component in this Layer- , Weskit for HTML -5++, JavaScript Engine Version
8, And Finally Flash.
In this Section we will try to go through those four Components.
Fig.5:The Application Layer in the Chromium OS [4]
3.1 The Application Layer Components:
ď‚· Window Manager
ď‚· Webkit
ď‚· Javascript engine
3.1.1 First Window Manager:
the window manager is a piece of software responsible for managing the different windows that
aoppear on your screen.
It controls :
Placement of Windows
Drawing of the borders and scrollbars
Ensures that the programs are shown well
Window manager uses the X server which is the software responsible for drawing everything on
the screen. But the window manager is much more responsible for the Decisions about feel and
look of the windows on your screen. [4]
7. Fig.4: the window manager is a layer between X server and Applications [6]
3.1.2 webkit :
webkit is a Layout engine for rendering webpages in web browser , its used in many browsers as
Apple Safari ,and chromium based web browsers as Opera and Google chrome. Its written in
C++ and it consists of Mainly two components a Layout engine the basic component which
responsible for combining content and formatting options, and a parser for Markups of the HTML
3.1.3 JavaScript Engine V8:
In the web Applications JavaScript is one of the most popular Languages ,its Cross platform i.e.
has support on Most Famous Operating Systems Like Mac os ,Windows ,and Linux,Besides that
its usage in most website as a Client server Language besides HTML. So Google made an open
source project called V8 to make an new fast engine for Java Script using C++. [3]
A java Script engine is a program act lice compilers it translate code written in java script to
machine code specific for the operating system and/or the Hardware , the V8 engine/compiler
comes with three new features which make it the fastest amonge other competitors from other
companies like JScript (in Internet Explorer), SpiderMonkey (in Firefox), and JavaScriptCore (in
Safari).those concepts are :
ď‚· Fast Property Access
Java Script is a dynamic language so its objects are dynamically change ,which make the
engine adds to the main memory in a non-ordered form (which mean that the same
object could be in many locations ) the engines are using a dictionary-like data
structure as storage for object properties - each property access requires a
8. dynamic lookup to resolve the property's location in memory, which takes some
time to reach the location. Google V8 team used other technique to try to speed up the
process of memory ret rival , it used a technique called Hidden classes which yields a
better performance.
ď‚· Dynamic Machine Code Generation
V8 engine compiles the Source code Directly into Machine code there are no
intermediate or Byte code.
ď‚· Efficient Garbage Collection
V8 use Garbage Collection technique to Remove the objects which are not used even
more , which make the memory more Compressed, Hence Faster to reach the Target
location.[3]
3.2 On the Top of the Chromium there are four types of apps:
1 – Websites : any website
2 – Extensions : small size Software which enhance the capabilities of Chrome
Browser ,and they are written in html ,javascript. have little to no user interface. For
example, the image to the right shows the icon that provides the UI for the Google Mail
Checker extension. [2]
Fig 6: Extension example [4]
3 – Chrome Applications: they are applications written for Chrome web browser and it
usually are Server side and on Chrome store.
4 – Themes: are many graphical designs for google chrome/chromium web browser.