Chrome - Google's First Steps Towards an Operating System for the Web

Chrome Process ManagerLater today Google has promised to release a beta of Chrome, a web browser aimed specifically at running Web applications efficiently. Some features resemble those present in a desktop operating system, and it could very well be the first steps towards a Google OS, initially targeted at simpler surf-only Tablet devices. This might be the most exciting news I've come across during my 1 1/2 years of tracking the Web.
The Chrome site is still unavailable, but a 38 pages comic book, first received by Philipp Lenssen, describes many of the expected features, including the behind the scenes architecture, the user interface, security features and the open source aspects. Concentrating on the software architecture, here are some highlights:

  • Each tab runs its own process, not just its own thread as expected. This means a great deal of separation between the tabs, if one behaves badly it will not affect the other tabs. A drawback of this approach is greater resource requirements up-front for each tab, in terms of memory allocation etc., but it also means that it's more easy to do clean-up when a tab is closed, possible memory leaks e.g. will not remain.
  • To handle the individual processes there is a process manager, which in part resembles an actual operating system. Details about how the process manager works and cooperates with the actual OS are not covered in the book, but there is a task manager, where you can look at the processes and the resources they are using, and terminate ill-behaving processes. Much like the Windows Task Manager.
  • The web page rendering engine is based on the open source engine WebKit, which powers the Safari browser and the one in Android.
  • To boost JavaScript performance Google hired a special team from Denmark, V8, to create a new effective Virtual Machine for JavaScript. Features include "hidden class transitions", which identify class like structures and perform dynamic optimizations based on that, and dynamic code generation which generates just-in-time compiled code for faster execution, probably similar to the JIT compilation in Java and .NET. The garbage collection of unused objects has also been improved, both in terms of speed and efficiency.

This news is currently all over Techmeme.

Comments section


Pingbacks are closed