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. Android applications started to become available for the operating system in 2014, and in 2016, access to Android apps in the entire Google Play Store was introduced on supported Chrome OS devices. Reception was initially 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, but there are unofficial methods that allow it to be installed in other equipment[8][9]. 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.

Open source

Chrome OS is partially developed under the open sourceChromium OS project.[16] As with other open source projects, developers can modify the code from Chromium OS and build their own versions, whereas Chrome OS code is only supported by Google and its partners and only runs on hardware designed for the purpose. Unlike Chromium OS, Chrome OS is automatically updated to the latest version.[17]

History

Google announced Chrome OS on July 7, 2009,[1] describing it as an operating system in which both applications and user data reside in the cloud. To ascertain marketing requirements, the company relied on informal metrics, including monitoring the usage patterns of some 200 Chrome OS machines used by Google employees. Developers also noted their own usage patterns. Matthew Papakipos, former[18] engineering director for the Chrome OS project, put three machines in his house and found himself logging in for brief sessions: to make a single search query or send a short email.[19]

At a November 19, 2009, news conference, Sundar Pichai, at the time Google's vice president overseeing Chrome, demonstrated an early version of the operating system. He previewed a desktop which looked very similar to the Chrome browser, and in addition to the regular browser tabs, also had application tabs, which take less space and can be pinned for easier access. At the conference, the operating system booted up in seven seconds, a time Google said it would work to reduce.[17][21][22][23]

Also on November 19, 2009, Chris Kenyon, vice president of OEM services at Canonical Ltd, announced that Canonical was under contract to contribute engineering resources to the project with the intent to build on existing open source components and tools where feasible.[24]

The launch date for retail hardware featuring Chrome OS was delayed from late 2010[25] to June 15, 2011.

Hardware

Laptops running Chrome OS are known collectively as "Chromebooks". The first was the CR-48, a reference hardware design that Google gave to testers and reviewers beginning in December 2010. Retail machines followed in May 2011. A year later, in May 2012, a desktop design marketed as a "Chromebox" was released by Samsung. In March 2015 a partnership with AOPEN was announced and the first commercial Chromebox was developed.[26]

In early 2014, LG Electronics introduced the first device belonging to the new all-in-one form factor called "Chromebase". Chromebase devices are essentially Chromebox hardware inside a monitor with built-in camera, microphone and speakers.

The Chromebit is an HDMI dongle running Chrome OS. When placed in an HDMI slot on a television set or computer monitor, the device turns that display into a personal computer. The device was announced in March 2015 and shipped that November.[27]

Feature updates

In April 2012, Google made the first update to Chrome OS's user interface since the operating system had launched, introducing a hardware-accelerated window manager called "Aura" along with a conventional taskbar. The additions marked a departure from the operating system's original concept of a single browser with tabs and gave Chrome OS the look and feel of a more conventional desktop operating system. "In a way, this almost feels as if Google is admitting defeat here", wrote Frederic Lardinois on TechCrunch. He argued that Google had traded its original version of simplicity for greater functionality. "That’s not necessarily a bad thing, though, and may just help Chrome OS gain more mainstream acceptance as new users will surely find it to be a more familiar experience."[28]

Relationship to Android

Google's offering two open source operating systems, Android[29] and Chrome OS, has drawn some criticism and market confusion, as both are client-based and overlap in functionality. Steve Ballmer, Microsoft CEO at the time, accused Google of not being able to make up its mind.[30]Steven Levy wrote that "the dissonance between the two systems was apparent" at Google I/O 2011. The event featured a daily press conference in which each team leader, Android's Andy Rubin and Chrome's Sundar Pichai, "unconvincingly tried to explain why the systems weren't competitive."[31] Google co-founder Sergey Brin addressed the question by saying that owning two promising operating systems was "a problem that most companies would love to face".[31] Brin suggested that the two operating systems "will likely converge over time."[32] The speculation over convergence increased in March 2013 when Chrome OS chief Pichai replaced Rubin as the senior vice president in charge of Android, thereby putting Pichai in charge of both.[33]

The relationship between Android and Chrome OS became more substantial at Google I/O 2014, where developers demonstrated native Android software running on Chrome OS through a Native Client based runtime.[34][35] In October 2015, The Wall Street Journal reported that Chrome OS would be folded into Android so that a single OS would result by 2017. The resulting OS will be Android, but it will be expanded to run on laptops.[36][37] Google responded that while the company has "been working on ways to bring together the best of both operating systems, there's no plan to phase out Chrome OS."[38]

Applications

Integrated media player, file manager

Google integrates a media player into both Chrome OS and the Chrome browser, enabling users to play back MP3s, view JPEGs, and handle other multimedia files while offline.[39] It supports DRM videos.[40]

Chrome OS also includes an integrated file manager, resembling those found on other operating systems, with the ability to display directories and the files they contain from both Google Drive and local storage, as well as to preview and manage file contents using a variety of Web applications, including Google Docs and Box.[41] Since January 2015, Chrome OS can also integrate additional storage sources into the file manager, relying on installed extensions that use the File System Provider API.[42]

Chrome Apps

Google has encouraged developers to build not just conventional Web applications for Chrome OS, but Chrome Apps (formerly known as Packaged apps). From a user perspective, Chrome Apps resemble conventional native applications: they can be launched outside of the Chrome browser, are offline by default, can manage multiple windows, and interact with other applications. Technologies employed include HTML5, JavaScript, and CSS.[43][44][45]

Android applications

At Google I/O 2014, a proof of concept showing Android applications, including Flipboard, running on Chrome OS was presented. In September 2014, Google introduced a beta version of the App Runtime for Chrome (ARC), which allows selected Android applications to be used on Chrome OS, using a Native Client-based environment that provides the platforms necessary to run Android software. Android applications do not require any modifications to run on Chrome OS, but may be modified to better support a mouse and keyboard environment. At its introduction, Chrome OS support was only available for selected Android applications.[34]

In 2016, Google introduced the ability to run Android apps on supported Chrome OS devices, with access to the entire Google Play Store. The previous Native Client-based solution was dropped in favor of a container containing Android's frameworks and dependencies (initially based on Android 6.0), which allows Android apps to have direct access to the Chrome OS platform, and allow the OS to interact with Android contracts such as sharing. Engineering director Zelidrag Hornung explained that ARC had been scrapped due to its limitations, including its incompatibility with the Android Native Development Toolkit (NDK), and that it was unable to pass Google's own compatibility test suite.[46][47]

Linux Apps

Custom Linux applications can be installed inside LXCvirtual machines on some chromebook models, via the "Linux Apps" entry in the settings menu, or the vmc command in crosh. The feature is part of project Crostini, a Chrome OS initiative to provide a polished UI experience to run both command line and graphical Linux applications. It was noticed in the Chromium OS source code in early 2018.[48][49] Early parts of Crostini were made available for the Google Pixelbook via the dev channel in February as part of Chrome OS version 66,[50][51] and it was enabled by default via the beta channel for testing on a variety of chromebooks in August with version 69.[52]

Remote application access and virtual desktop access

In June 2010, Google software engineer Gary Kačmarčík wrote that Chrome OS will access remote applications through a technology unofficially called "Chromoting", which would resemble Microsoft's Remote Desktop Connection.[39] The name has since been changed to "Chrome Remote Desktop", and is like "running an application via Remote Desktop Services or by first connecting to a host machine by using RDP or VNC".[53] Initial roll-outs of Chrome OS laptops (Chromebooks) indicate an interest in enabling users to access virtual desktops.[54][55]

Design

Early in the project, Google provided publicly many details of the Chrome OS's design goals and direction,[56] although the company has not followed up with a technical description of the completed operating system.

User interface

Old Chrome-Chromium OS login screen

Design goals for Chrome OS's user interface included using minimal screen space by combining applications and standard Web pages into a single tab strip, rather than separating the two. Designers considered a reduced window management scheme that would operate only in full-screen mode. Secondary tasks would be handled with "panels": floating windows that dock to the bottom of the screen for tasks like chat and music players. Split screens were also under consideration for viewing two pieces of content side-by-side. Chrome OS would follow the Chrome browser's practice of leveraging HTML5's offline modes, background processing, and notifications. Designers proposed using search and pinned tabs as a way to quickly locate and access applications.[57]

New window manager and graphics engine

On April 10, 2012, a new build of Chrome OS offered a choice between the original full-screen window interface and overlapping, re-sizable windows, such as found on Microsoft Windows and Apple's macOS. The feature was implemented through the Ash window manager, which runs atop the Aura hardware-accelerated graphics engine. The April 2012 upgrade also included the ability to display smaller, overlapping browser windows, each with its own translucent tabs, browser tabs that can be "torn" and dragged to new positions or merged with another tab strip, and a mouse-enabled shortcut list across the bottom of the screen. One icon on the task bar shows a list of installed applications and bookmarks. Writing in CNET, Stephen Shankland argued that with overlapping windows, "Google is anchoring itself into the past" as both iOS and Microsoft's Metro interface are largely or entirely full-screen. Even so, "Chrome OS already is different enough that it's best to preserve any familiarity that can be preserved".[58][59][60]

Architecture

In preliminary design documents for the Chromium OS open source project, Google described a three-tier architecture: firmware, browser and window manager, and system-level software and userland services.[61]

The firmware contributes to fast boot time by not probing for hardware, such as floppy disk drives, that are no longer common on computers, especially netbooks. The firmware also contributes to security by verifying each step in the boot process and incorporating system recovery.[61]

System-level software includes the Linux kernel that has been patched to improve boot performance. Userland software has been trimmed to essentials, with management by Upstart, which can launch services in parallel, re-spawn crashed jobs, and defer services in the interest of faster booting.[61]

The window manager handles user interaction with multiple client windows much like other X window managers.[61]

Hardware support

Chrome OS is initially intended for secondary devices like netbooks, not as a user's primary PC,[21] and will run on hardware incorporating an x86 or ARM-based processor.[62] While Chrome OS will support hard disk drives, Google has requested that its hardware partners use solid-state drives "for performance and reliability reasons"[17] as well as the lower capacity requirements inherent in an operating system that accesses applications and most user data on remote servers. In November 2009 Matthew Papakipos, engineering director for the Chrome OS claimed that the Chrome OS consumes one-sixtieth as much drive space as Windows 7.[63]

Printing

Google Cloud Print is a Google service that helps any application on any device to print on supported printers. While the cloud provides virtually any connected device with information access, the task of "developing and maintaining print subsystems for every combination of hardware and operating system—from desktops to netbooks to mobile devices—simply isn't feasible."[64][65] The cloud service requires installation of a piece of software called proxy, as part of the Chrome OS. The proxy registers the printer with the service, manages the print jobs, provides the printer driver functionality, and gives status alerts for each job.[66]

In 2016, Google included "Native CUPS Support" in Chrome OS as an experimental feature that may eventually become an official feature. With CUPS support turned on, it becomes possible to use most USB printers even if they do not support Google Cloud Print.[67][68]

Link handling

Chrome OS was designed with the intention of storing user documents and files on remote servers. Both Chrome OS and the Chrome browser may introduce difficulties to end users when handling specific file types offline; for example, when opening an image or document residing on a local storage device, it may be unclear whether and which specific Web application should be automatically opened for viewing, or the handling should be performed by a traditional application acting as a preview utility. Matthew Papakipos, Chrome OS engineering director, noted in 2010 that Windows developers have faced the same fundamental problem: "Quicktime is fighting with Windows Media Player, which is fighting with Chrome."[19]:3

Security

In March 2010, Google software security engineer Will Drewry discussed Chrome OS security. Drewry described Chrome OS as a "hardened" operating system featuring auto-updating and sandbox features that will reduce malware exposure. He said that Chrome OS netbooks will be shipped with Trusted Platform Module (TPM), and include both a "trusted bootpath" and a physical switch under the battery compartment that actuates a developer mode. That mode drops some specialized security functions but increases developer flexibility. Drewry also emphasized that the open source nature of the operating system will contribute greatly to its security by allowing constant developer feedback.[69]

At a December 2010 press conference, Google claimed that Chrome OS would be the most secure consumer operating system due in part to a verified boot ability, in which the initial boot code, stored in read-only memory, checks for system compromises.[70]

Shell access

Chrome OS includes the Chrome Shell, or "crosh"[71], which documents minimal functionality such as ping and SSH at crosh start-up.

In developer mode, a full-featured bash[72] shell (which is supposed to be used for development purposes[73]) can be opened via VT-2, and is also accessible using the crosh command shell.[74] To access full privileges in shell (e.g. sudo) a root password is requested. For some time the default was "chronos" in Chrome OS and "facepunch" in Chrome OS Vanilla[75] and later the default was empty, and instructions on updating it were displayed at each login.

Release channels and updates

Chrome OS uses the same release system as Google Chrome: there are three distinct channels: Stable, Beta, and Developer preview (called the "Dev" channel). The stable channel is updated with features and fixes that have been thoroughly tested in the Beta channel, and the Beta channel is updated approximately once a month with stable and complete features from the Developer channel. New ideas get tested in the Developer channel, which can be very unstable at times.[76][77] A fourth canary channel was confirmed to exist by Google Developer Francois Beaufort and hacker Kenny Strawn, by entering the Chrome OS shell in developer mode, typing the command shell to access the bash shell, and finally entering the command update_engine_client -channel canary-channel -update. It is possible to return to verified boot mode after entering the canary channel, but the channel updater disappears and the only way to return to another channel is using the "powerwash" factory reset.[78]

Chrome OS on Windows

On Windows 8 exceptions allow the default desktop web browser to offer a variant that can run inside its full-screen "Metro" shell and access features such as the Share charm, without necessarily needing to be written with Windows Runtime. Chrome's "Windows 8 mode" was previously a tablet-optimized version of the standard Chrome interface. In October 2013, the mode was changed on Developer channel to offer a variant of the Chrome OS desktop.[79][80][81][82][83]

Reception

At its debut, Chrome OS was viewed as a competitor to Microsoft, both directly to Microsoft Windows and indirectly the company's word processing and spreadsheet applications—the latter through Chrome OS's reliance on cloud computing.[84][85] But Chrome OS engineering director Matthew Papakipos argued that the two operating systems would not fully overlap in functionality because Chrome OS is intended for netbooks, which lack the computational power to run a resource-intensive program like Adobe Photoshop.[19]

Some observers claimed that other operating systems already filled the niche that Chrome OS was aiming for, with the added advantage of supporting native applications in addition to a browser. Tony Bradley of PC World wrote in November 2009:

“

We can already do most, if not all, of what Chrome OS promises to deliver. Using a Windows 7 or Linux-based netbook, users can simply not install anything but a web browser and connect to the vast array of Google products and other web-based services and applications. Netbooks have been successful at capturing the low-end PC market, and they provide a web-centric computing experience today. I am not sure why we should get excited that a year from now we'll be able to do the same thing, but locked into doing it from the fourth-place web browser.[86]

”

After this 2009 statement Chrome browser rose to become the number one browser used worldwide.[87]

By 2016, Chromebooks had become the most popular computer in the US K–12 education market.[88]

^"Shell Style Guidelines". The Chromium Projects. Retrieved June 5, 2015. When writing code that is used on developer systems or dev/test Chromium OS images, always use bash. For scripts that are used on the release Chromium OS image, you should be using POSIX shell.