Google Chrome as an operating system
August 17, 2009
Here are my thoughts regarding Google Chrome and the impending OS war with Microsoft.
Firstly, when Google first announced the Chrome browser, I immediately saw it as their OS play against Microsoft. Chrome has a markedly different architecture from other browsers. Each tab and window runs in a separate process, which isolates the effect of a problem in any one tab bringing down the browser along with all the other tabs. Other browsers still run all tabs in one process, with multithreading for performance. This means if, say, the javascript in one tab hangs then the whole browser will hang with the potential result that the user kills the browser and all it’s tabs.
What is running in those tabs? More and more it is applications, not least google applications including mail, docs and, soon, wave. Using Safari, Firefox or IE at the moment if one of those apps crashes then bye bye browser and all your other apps. This, of course, was how a lot of operating systems behaved until relatively recently (at least those not based on Unix or similar ideas). The dreaded blue screen of death, made famous by Windows 3 and Windows 95, meant losing all running applications along with all their unsaved data. Although our operating systems are now much more robust, as more and more apps move into the web then these sorts of crashes are re-emerging as a function of the browser. Chrome, the browser, overcomes this by letting you kill one tab (application) whilst not affecting any of the others. Great progress, indeed.
So let’s consider the question of what exactly an operating system is. Since my early days of reading Tannenbaum, through studying Unix and various other operating systems, I was exposed to the geek view of the OS which is a kernel with a collection of device drivers, memory handling, process switching and control and all the other bells and whistles which go on under the hood to make it possible to run your applications. But there’s the key thing. From the user’s point of view the only thing the operating system is there to do is to enable them to run their applications. So as the applications move out onto the web, the cloud, the grid or whatever you want to call it, all the user needs is a way to get to them - hence the browser becomes the operating system in a very real way, and Chrome, with its multi-process model, is well placed to be the leader in that direction. By taking the browser and putting it on the most minimal of linux distros they can provide a system which boots quickly and runs cleanly. If course, not all applications are suitable for running over the web like this at the moment. Although there are some basic graphic and video editing sites already, for example, I doubt that any Photoshop or Final Cut power user is going to find something that provides what they need in a browser. It remains to be seen if and how that might change.
The key foundation of this strategy is, of course, the idea that internet access will become all pervasive. Clearly we’re not there yet, but the trend is certainly in that direction. Google also mitigate this need with Google Gears, a way of building web apps which can work offline and then sync with the server when net access if available. It’s not ideal, but it helps.
So how are Microsoft responding to this? A large part of Microsoft’s revenue is derived from the relentless upgrade cycle of their Office suite. This has served them well over the years but may now have become a millstone around their neck. Any attempts to move away from Office tends to result in them being punished in the stock market as nervous investors struggle to see how they would replace that revenue. Recently they have announced that they will be producing Office Live, basically putting their office apps online and offering them for free, as Google do. This is a very risky proposition for Microsoft. The key thing to remember here is that Google does not make money from software. Google are an advertising company and that is how they derive in excess of 90% of their money. They can afford to build apps online and give them away and then wait until web access and browser technology catches up with their strategy because these applications are further conduits for advertising. Microsoft, on the other hand, by giving away their online apps will simply eat into their primary revenue stream. Personally, I don’t think it looks good for them.
So having looked at what Chrome OS is (or can be) the big question I see is why? Why are Google building a browser and an OS? After all, their apps can already run in current browsers (a feat assisted by using the Google Web Toolkit to work around the vagaries of the javascript implementations in different browsers), so why build their own? I can see two reasons for this, one trivial and one more meaningful. The trivial reason is because they can. Google is populated by a lot of very smart people who are given a lot of freedom to do things they simply think are cool, and re-inventing the browser must seem like a very cool thing to do. They are also driven, it appears, by a hatred of Microsoft. This, of course, is a dangerous motivation and has led to the downfall of more than one company (e.g. Sun, Netscape). It is important that Google not be blinded by this hatred and wind up the same way.
The other reason I can see is that having their own browser gives Google control of the whole user experience of their applications. This is drawing on Apple’s playbook but potentially mixing it with a strategy that Microsoft drew on heavily a decade ago - embrace and extend. Microsoft responded to the emergence of open standards and protocols by adopting them and then making proprietary extensions which would lock people into their own implementations. In Google’s case, this might take the form of applications which work well in any browser, but better in their own. There is one particular way I can see this happening. I mentioned GWT above. This is a toolkit, developed by Google and freely distributed, which lets a developer create user interfaces in Java and then translates those interfaces to javascript which gets sent to the browser. One of the key things about javascript, though, is that it is still relatively slow to execute compared to native applications, even taking into account the new generation of javascript engines. What if Google were to extend Chrome with a more efficient GWT runtime engine. GWT apps could then be translated to a form to run on the Chrome engine much faster and, possibly, with much more sophisticated UI features and interaction with the user’s local operating system, and better communication with the server. The apps would be good on any browser, but better on Chrome.
So there you have it, Google Chrome as a stable, multi-process platform for running web apps, especially Google web apps, and pushing Microsoft towards a position where they have to give away their main revenue stream in an effort to compete. No wonder Microsoft are trying so hard to break into the online advertising space to replace that revenue.

