Key points in the announcement:
- the OS is designed for Web apps and cloud computing
- it combines the Chrome browser plus a lightweight windowing environment on top of a Linux kernel
- goals are lightweight, fast to boot, fast to allow users to access the Web
- targeted to netbook category of devices initially (via hardware partners), but eventually for desktop machines
- will be released as open source
- relies on a security architecture designed for the Internet era
- it’s not Android
- discussions underway with hardware partners for shipment after mid-2010
If two dots allow one to draw a trend-line, the cloud-centric OS built on a browser can be considered a trend. The two large dots that define this trend-line are Chrome OS plus a Microsoft Research project called Gazelle, a browser-based operating system with an approach similar to Chrome OS. More about Gazelle in a moment.
Based on the limited information that Google has provided thus far, it appears that Chrome OS leverages Google’s core competencies, which include ability to design user experiences that are simple, effective and fast, backed by “rocket-science” software technology under hood. Google’s approach is to first narrow the scope of the problem in order to put more substance and depth into the remainder.
There is some substantive information upon which to make inferences if one looks at the open-source version of the Chrome browser, available at Chromium.org.
The current Chrome browser consists of 1.7 million lines of C++ code, and already incorporates many OS-like aspects (multi-processing, robust isolation). About 60% of the Chrome browser source code is related to rendering HTML, and much of the rest (about 700,000 lines of code) implements OS-like aspects such as multiple process models, interprocess communication (IPC) secure sandbox isolation mechanism, and so on. This system could rest on a foundation of a Linux kernel. The major new piece is the unspecified windowing environment, which presumably would mostly be a pass-through mechanism. Speculating wildly here, I would say the combination of all of the above would result in a system of about 5 to 7 million lines of code, including a stripped-down Linux kernel. This is about the same size as Windows NT 3.1, and about one-tenth the code size of Windows Vista. This is smaller than Google Android, which is variously estimated at between 8M to 11M lines of code. The size estimates perhaps answer the question “Why not use Android?”. That is, Google is betting on a lean and fast browser-based OS rather than one that is built for comfort across a wide range of scenarios.
One might also ask: “Why a browser-based OS? Why is this worthwhile in a time when users can simply procure the combination of Linux, Firefox and OpenOffice on a modest laptop?”. A paper on Chrome’s Multi-Process Architecture provides an answer:
“The current state of web browsers is like that of the single-user, co-operatively multi-tasked operating systems of past. As a misbehaving application in such an operating system could take down the entire system, so can a misbehaving web page in a modern web browser….Modern operating systems are more robust because they put applications into separate processes that are walled off from one another…. We use separate processes for browser tabs to protect the overall application from bugs and glitches in the rendering engine. We also restrict access from each rendering engine process to others and to the rest of the system. In some ways, this brings to web browsing the benefits that memory protection and access control brought to operating systems.”
This text is accompanied by the following diagram:
The multi-process approach is not unique to the Chrome browser. Recent versions of Internet Explorer have something similar. What is different is that this multi-process approach is extended to include the entire machine environment. A crisp explanation comes from Helen Wang, a member of Microsoft Research Labs working on Gazelle, a lightweight, browser-centric OS prototype:
“Everyone accepts that applications need to run on operating systems. However, this has not been the case for Web applications; they depend on browsers to render pages and handle computing resources. Yet browsers have never been constructed to be operating systems. Principals are allowed to coexist within the same process or protection domain, and resource management is largely non-existent.”
Microsoft writer Janie Chang elaborates:
“In the Gazelle model, the browser-based OS, typically called the browser kernel, protects principals from one another and from the host machine by exclusively managing access to computer resources, enforcing policies, handling inter-principal communications, and providing consistent, systematic access to computing devices.”
When Google Wave was introduced in May, I noted how Microsoft Research had seen prototypes of Office that supported real-time collaborative editing in 2003 but never moved forward on this. Now perhaps, this ironic pattern is repeating, assuming that Chrome OS actually sees the light of day.
If Google delivers on its plan, it seems that Chrome OS will be the first cloud-oriented OS to ship. This will be a consumer-oriented offering initially, similar to Google’s past practice in other categories (Web maps, Web email, and the Chrome browser). It will be years (three to five) before it has any impact on the enterprise sector.
For Google to succeed with this initiative, Chrome OS must deliver a user experience that is perceptibly better from the outset. Google was able to achieve this with Google Maps, which reinvented online mapping in a way that users immediately noticed a better user experience. Google has arguably also achieved this objective with Gmail and with the Chrome browser. The question is whether they can achieve a similar goal with an OS — a clearly envisioned target that they will reach for, but one that may prove difficult for them to grasp and hold.
What do you think?
Category: Uncategorized Tags: