Rogers 1 Overview: Google Chrome OS is a new Linux operating system that has been designed by Google using a minimalist approach. It is primarily used to work with web applications. In simplest terms, the user interface consists almost entirely of Google Chrome. This is not an OS for a workstation. Instead, it is aimed at people who plan on using mainly just the internet. Google Chrome OS can be easily confused with Chromium OS. These are not actually the same thing. Chrome is built upon Chromium. Chromium OS is an open source Linux-based project. Chrome OS is just the commercial version offered by google on select hardware. Machines running Google Chrome OS are called Chromebooks. These are designed to be used with the internet. Speed and security are the two main focus points of these devices. They are very minimalist in approach. Not even data is stored on the device itself; instead, it is stored in the cloud, which is accessed through the internet connection. Chromebooks are targeted at users who mainly use the web browser when they access their computer. After all, there is so much can be done through the web and web apps now. UI: The user interface in Chrome OS is designed to be unobtrusive. The system UI is designed to use only a small amount of the screen space. This is accomplished through combining apps and "combining apps and standard web pages into a minimal tab strip" (http://www.chromium.org/user-experience). Instead of having the standard two strips of web tabs and applications, Chromium OS gives you a combination of the two, creating a single strip from which you can access applications and web pages. To make the UI more user-friendly, Chrome OS has reduced window management. Windows now operate in a full-screen mode, while secondary tasks are handled in panels. These panels are "floating windows that can dock to the bottom of the screen as a means of handling tasks like chat, music players, or other accessories" (http://www.chromium.org/user-experience). Of course, the option for split screen is still available, allowing the user to view two windows side-by-side. Rogers 2 Architecture: The design documents show that "Chromium OS consists of three major components: • The Chromium-based browser and the window manager • System-level software and user-land serviced: the kernel, drivers, connection manager, and so on • Firmware" (http://www.chromium.org/chromium-os/chromiumos-design-docs/softwarearchitecture) The window manager has already been touched on a little in this paper. It handles all of the interactions the user has with multiple client windows. The windows can be blended together through use of the XComposite extension that redirects "client windows to offscreen pixmaps so that it can draw a final, composited image incorporating their contents" (http://www.chromium.org/chromium-os/chromiumos-design-docs/software-architecture). These windows are then animated and rendered via OpenGL or OpenGLIES. As for the kernel, it is mostly stock. There are, however, a handful of patches to improve the boot performance of the OS. Going for maximum functionality, the init process has been streamlined so that only services that are absolutely critical are running. The design documents provide us with "a quick list of things that we depend on: • D-Bus: The browser uses D-Bus to interact with the rest of the system. Examples of this include the battery meter and network picker. • Connection Manager: Provides a common API for interacting with the network devices, provides a DNS proxy, and manages network services for 3G, wireless, and ethernet. • WPA Supplicant: Used to connect to wireless networks. • Autoupdate: Our autoupdate daemon silently installs new system images. • Power Management: (ACPI on Intel) Handles power management events like closing the lid or pushing the power button. • Standard Linux services: NTP, syslog, and cron." (http://www.chromium.org/chromium-os/chromiumos-design-docs/software-architecture). Rogers 3 The firmware is designed with one goal in mind: "to make booting the OS faster and more secure" (http://www.chromium.org/chromium-os/chromiumos-design-docs/softwarearchitecture). This is done by keeping only the necessary components. Support is also added for each step in the boot process. Support for system recovery is being added into the firmware itself. Chromium avoids having the complexity of most PC firmware. This firmware has no need for backwards compatibility with most of the legacy hardware. The design documents show that the firmware implements "the following functionality: • System recovery: The recovery firmware can re-install Chromium OS in the event that the system has become corrupt or compromised. • Verified boot: Each time the system boots, Chromium OS verifies that the firmware, kernel, and system image have not been tampered with or become corrupt. This process starts in the firmware. • Fast boot: We have improved boot performance by removing a lot of complexity that is normally found in PC firmware." (http://www.chromium.org/chromiumos/chromiumos-design-docs/software-architecture). Security: A huge emphasis was placed on security; it was actually designed with security in mind. The developers had one main goal in mind during the development of this OS. They wanted "a system that is both practically secure and easy to use" (https://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-design-docs/securityoverview). This was accomplished by following four principals: " • The perfect is the enemy of the good. • Deploy defenses in depth. • Make devices secure by default. • Don't scapegoat our users This first principal is easy enough to follow. There is only one thing that needs to be kept in mind: there is no perfect solution. No matter what, there will be mistakes, there will be vulnerabilities. Just because something is not perfect does not mean that it is not very good. In Rogers 4 this case, the goal is to make the security very good, and not focus on searching for a mythical solution to all security problems. To make the system very good, Chrome OS closely followed the second principal about defenses. Chrome OS deploys a variety of defenses to slow down attackers. This approach makes it difficult to break into the system, but makes the assumption that the attacker will eventually get access. At the point, they run into the next layer of defenses. This layer attempts to prevent attackers from turning an account compromise into a kernel or root exploit. Another layer raises the difficulty on the attacker by "preventing him from adding an account, installing services, or re-compromising the system after reboot" (https://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-design-docs/securityoverview). The next principal shows how much of a priority security is. Security is not an afterthought; instead, the OS should be secure by default. This task is generally tough to accomplish as solutions typically need to be deployed as software is added to machines. These solutions, however, take a toll on the system performance and the ease-of-use. Google has an advantage in this department; they know exactly what software is meant to be running on the machines. This allows them to "deploy solutions that leave the user's machine humming along nicely" (https://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-designdocs/security-overview). Up next is a curious principal. What exactly does it mean to not scapegoat users? The design documents show that this is talking about blaming users for security issues. Google is trying to take a step forward in prevention because "it is difficult to make accurate judgments about one's level of risk in the face of such complexity, and that is not" the fault of the user (https://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-design-docs/securityoverview). Google sets a lofty goal to prevent this by attempting to only have users make a decision on things that they truly understand. This must include a "fail-safe if they don't understand a choice and just want to click and make it go away" (https://sites.google.com/a/chromium.org/dev/chromium-os/chromiumos-design-docs/securityoverview). Rogers 5 Chromium OS and Google Chrome OS: Chromium OS is an open source project. This code is available to anyone who would wish to view it, modify it, or use it in anyway. Google Chrome OS, however, is a Google product. It is based off of Chromium OS, though with some differences. Chrome OS is only available prepackaged in Google's Chromebooks. This operating system is geared towards userfriendliness, security, and speed. There are extra features contained in Chrome OS that are not supported by Chromium OS. This includes verified boot and easy recovery. These two features require hardware changes, thus making it incompatible with Chromium OS. Chromebooks are specifically design to run Chrome OS seamlessly. The hardware on the Chromebooks are specifically optimized for enhanced security and performance. On top of this, Google3 Chrome OS automatically updates seamlessly, while Chromium OS does not. Finally, Chrome OS "includes some binary packages which are not allowed to be included in the Chromium OS project. A non-exhaustive list: • Adobe Flash • PDF plugin • Netflix Instant • Google Talk • Work is ongoing to migrate to WebRTC so no plugins will be required • 3G Cellular support (but work is ongoing to address this) • Older versions of Chrome OS might contain proprietary Synaptic Touchpad Drivers * All recent releases (R20+) should be using the open source CMT driver * NB: open source drivers have long existed and are automatically used in Chromium OS" (http://www.chromium.org/chromium-os/chromium-os-faq).