In July, Google announced their plan to develop a lightweight operating system based on their successful Chrome browser. Intending to be open source, speedy, secure and simple, this would be their attempt to re-think the operating system as Chrome previously ‘re-imagined’ the browser.
It was Google’s aim to get users from start-up and on to the Web in a matter of seconds.
The Chrome OS would be the kind of system targeted at Netbooks, catering for the modern generation of computer user for whom the majority (if not all) of interaction takes place on the Web.
The OS would pretty much just be a browser in fact. All the user’s applications and data would (and would have to) be stored in the cloud; as stateless data and Web-based apps.
With that in mind Google could completely go back to basics and redesign the underlying security architecture of an OS. Because it was their plan to run everything ‘in the browser’, the underlying system would no longer need the capabilities of a normal operating system, for example, the ability to install applications or the need for security precautions to handle them. There is also no file storage, so you wouldn’t even need any real kind of storage space or file system in the traditional sense.
This all results in the user never needing to deal with viruses, malware or updates for applications or their security system. It also means the OS will be up and running in seconds of booting up – and thus, ready almost immediately to get on to the Web.
They followed it up with a short introductory video explaining some of their decisions and what users can expect in the full version:
As part of that announcement Google publicly released the code to the open source community and called for contributors to engage with their developers and start working with the code.
This also meant that you could download and build the source to have a play, so I thought I’d give it a go.
TechCrunch’s coverage has a guide to running the Chromium OS on a virtual machine, essentially software that replicates the behaviour of a standalone physical machine. This means you don’t have to install this OS instead of your native system or worry about any operations performed by Chromium affecting your current platform, it’s running in a secure sandbox.
At the time of this writing, the torrent file and image is considered to be safe, though as Jason Kincaid writes, this could at some point be re-written to be unsafe.
Now although it’s obvious, I’ll point out (as the article does) that this is a very early release of Chromium, so isn’t as near fully featured as that we’ve seen demonstrated. That version too is itself unfinished. This build has also not been put together by Google.
Neither is this intended to run on a virtual machine, so you won’t get anywhere near the performance that you would for real. This is the usually the case for any system running on a VM, but because pretty much the whole deal with Chromium is the speed, what we’ll be seeing should not be considered ‘as is’, it just a method to give you a bit of a sneak preview instead.
Usually, VMWare Player is my preferred choice for virtualisations. However the build comes as a VMDK file and VMWare Player runs from a VMX file. The VMDK file is the appliance, the VMX file is a descriptor (processing instructions that the Player relies on).
VMX files are easily written in a text editor and I found an example which I modified to run as part of my development environment, which follows below.
Simply save this file as VMX format and run it from VMWare Player:
.encoding = “UTF-8″
displayName = “Chrome OS”
guestOS = “other”
memsize = “1024″
ethernet0.startConnected = “true”
ethernet0.virtualDev = “e1000″
ethernet0.connectionType = “bridged”
ethernet0.addressType = “generated”
ethernet0.generatedAddress = “00:0c:29:cd:8d:e6″
ethernet0.generatedAddressOffset = “0″
usb.present = “true”
sound.present = “false”
sound.autodetect = “true”
sound.virtualDev = “es1371″
sound.fileName = “-1″
sound.startConnected = “true”
ide0:0.present = “true”
ide0:0.deviceType = “disk”
ide0:0.mode = “persistent”
ide0:0.redo = “”
ide0:0.writeThrough = “false”
ide0:0.startConnected = “false”
virtualHW.version = “3″
config.version = “8″
floppy0.present = “false”
Depending on your settings, you may have to change the ethernet0.connectionType to “nat” and the ide0:0.fileName to your VMDK filename – if you got the torrent version, that will be “chromeos-image-999.999.32309.211410-a1.vmdk“. I also gave it a little more memory.
TechCrunch recommend using VirtualBox, a cross-platform virtualisation. VirtualBox can run straight from the VMDK so don’t worry about a VMX file – just follow the instructions.
Initially, everything is a bit sparse and you may wonder if you’ve done everything properly (have a look at the screenshots below), but this is just a reminder that what we’re playing with here isn’t ready at all – the video demo is a far more polished version than this and we’ll keep that in mind.
When it gets going though, we start to see some of those familiar features.
There’s the application menu, not a drop down menu in our version but a ‘pinned’ tab – the drop down must have been put in later.
I started to play with some of the apps, they’re exactly the same here as they are on any other platform – they work completely as they should – Google’s Calendar, Docs and Reader to name a few.
Saying that though, why wouldn’t they? These ‘apps’ are just the webpages we’re used to, actually you’ll see exactly the same as visiting ‘http://www.google.com/mail‘ and ‘http://www.google.com/reader‘. There is zero difference, just like visiting ‘Amazon.co.uk‘ works plenty fine too.
The fact they’re called ‘apps’ is just semantic thing, just a way of thinking about them as products launched from some kind of desktop-analogy, rather than destinations found at the end of a search engine. I’ll come back to this later.
Then I started to play with the apps that launch in ‘panels’ – the first hint of something that looks native to Chromium.
There’s appropriations of the Calendar again and Google Talk.
But then the illusion was slightly shattered when I notice ‘View: Mobile’ link at the bottom of the calendar and chose to click ‘Desktop’, which just showed just the other Calendar view (the first one, above), all displayed in that little window with scrollbars – because, again, it’s just a Web page we’ve loaded here, but in a custom view.
The chat is pretty much the same as the Google Talk, and includes voice chat.
This was actually a bit disappointing, of course I know that the Chromium OS is pretty much just Chrome and that everything is a Web page really, but I expected these apps to have detected that I’m visiting on the Chromium OS and serve a more tailored interface. I wanted some kind of dedicated experience basec on the app knowing that I’d be seeing everything through one of these panels.
Having said that, the Chromium OS project site has a whole section dedicated to the User Experience, which describes the ‘motivations, assumptions, and directions’ behind the interface design. It shows much of their work in-progress.
On their screenshots of the latest version, these windows seem to be more developed, the chat doesn’t have the default controls and there’s a notification panel that looks like it nicely ties up the application in some kind of native Growl equivalent – see here.
The majority of the links from this application menu, in fact, are just to Web pages, rather than apps in these custom windows.
One of them links to a straightforward enough Chess game, demonstrating Chromium’s support for Flash. It comes with Flash Player 10.0.32.18 installed (currently the latest stable release) and it runs just fine.
On the idea of using only Web applications, looking at Web apps versus desktop apps, I think for a long time people have been wary of becoming completely dependant on them.
When I say ‘Web apps’ here, I don’t mean everything that you could consider to be an app or just any kind of RIA, arguably any ‘site’ is or could be ‘an application’. Instead I’m going to refer to the purely stateless apps, where the software, user settings and data are all stored somewhere in the cloud – on a server somewhere as opposed to the user’s local machine. Here I’m referring to the kinds of Web applications that are direct parallels of popular desktop apps, think the likes of the Google Docs suite.
For example, I know of a few people who dabble with Google Documents (Google’s word processor), but won’t use it exclusively over Microsoft Word, they use it for the odd document or quick note but not anything of length or real importance. Likewise with Google Spreadsheets as a possible choice over Microsoft Excel.
I think Spreadsheets is a different game, Excel is really quite powerful and has a lot more advanced features, though I’m no spreadsheet wizard. With Documents however, with the feature set far closer to that of Word or any enterprise desktop word processor, what’s the problem halting full adoption?
Is it a trust issue? Are people wary of Google or concerned about losing their data?
I’m a big fan of Documents, I use it for all my writing, I don’t own Microsoft Word and anyway, I like it. I’m writing this post using Documents because I prefer the environment over WordPress’ authoring tool, I’m confident that my data is safe and secure.
And then there’s email, I don’t use a desktop client at all for my personal email, I use Google Mail. But compared to the rest of the Google app suite, Google Mail is seen as something quite different.
For some reason, Google Mail is set apart from the rest of the Google Docs applications, not seen on par, even though your data there is equally as secure or insecure, and backed-up or prone to loss there as it is with the apps on Docs. They run alongside each other, they have the same authors, same security, the same look and feel even.
So why is this? Is it just the case that Google Mail has been around for longer, so we’ve just gotten used to it? It has had a longer development life, but those advances are duplicated across to other software.
I wonder how many of the people who choose not to use Documents for trust, security or want of having their documents saved locally, do use Google Mail but haven’t ever exported their mail and backed-up an archive on their computer?
I think two things set Google Mail apart. Firstly, it’s just better than most mail clients – it’s fast, responsive, it shows emails in threads (which was pretty new at the time) and since then we’ve gotten hooked and now can’t possibly drop it for any of those old clunky desktop clients.
Not only are we forgetting that actually there really is no difference between Google Mail and any other page (other than excellent engineering), but that there is a difference between it and one the desktop alternatives.
What I’m talking about here is that we should consider our way of thinking about these applications. It’s not a new observation that the gap between desktop applications and Web-based applications is closing, Google Mail is probably the best example of that – perhaps the killer app in that respect. It just seems surprising that the Chromium OS has zero file storage, you do not save anything – but it really shouldn’t be.
I talked about suspending disbelief in convincing myself that some of the Web pages I was looking at were actually apps and not just normal HTML pages – but does it really matter?
Take the application menu, note it’s similarities to the application interface on the iPhone which also collates Web links and native ‘applications’ together. Both treat them as one and the same with an icon treatment that doesn’t distinguish between the two.
Ultimately, if we get the desired result – on the basis that trust and security is in place and what we want to get done, gets done – I don’t think it matters if the program is Web-based or ‘desktop’-based, as much as it doesn’t matter if the app is written in HTML, AJAX or Flash instead of C or VBA.
When Adobe first starting talking about AIR, describing it as something like a desktop runtime for Flash, I didn’t think anyone would consider any Flash app to stand on equal footing to traditionally written desktop software (again, from the likes of C or VBA). At that time no-one really took Flash anywhere near as seriously as they do now. But now look at all the Twitter clients we use, the BBC iPlayer.
I digress. What I’m saying is that everything on the Web is constantly evolving.
Google Mail is the application that proved that stateless computing ‘can be done’ and can be accepted as the norm. Chromium then, has the potential to be the software that proves true stateless computing ‘can be done’ and is a confident first step to introducing that as the norm.
Chromium loads some Web apps natively, others it loads as if they were native. With apps like these, if you were the kind of user that didn’t know or didn’t care that they only served online, you wouldn’t be any the wiser because of the way in which Chromium unblinkingly presents them.
I’m reminded of the ‘What is a browser?’ video and how initially I thought of the people as being quite naive, but in retrospect I don’t think it matters what a browser is, it’s what you do with it.
For a lot of people the search engine (Google or otherwise) is synonymous with the Web, or is the Web. Not removing choice, I don’t see a problem with these apps being synonymous with ‘mail’, or ‘chat’ or ‘calendar’ for users who wish to use them.
We’re pretty much always online now and Chromium is targeting the Netbook type system (also to note perhaps, the TechCrunch article says you cannot download and install Chrome on any machine – you will have to buy a new one), Chromium could really work. As I say, if it does it’ll enforce this new paradigm of how we think about these apps.
NB: There are fall backs for offline use – recently Google announced that they are dropping Gears for HTML5 APIs and offline storage, but I won’t go into that now and anyway, replacing normal computer usage isn’t what this is about.
In the end I couldn’t survive the whole day on Chromium because of the virtual machine’s performance, but I got to wondering whether I could sustain myself on completely stateless computing if I was handed the real Chromium to try out for a period of time.
With the help of Wakoopa, I looked at the most popular apps for various platforms and chose those I use the most, for each I came up with a currently cloud-based alternative – all of which I’ve used at least once when circumstance has called for it.
Here’s a sample of what’s available:
|Google Mail, Google Wave, Hotmail, Yahoo! Mail etc|
|Instant Messaging||Google Talk, Google Mail|
|Skype/Voip||As above, GizmoCall, or any webcam supporting site|
|DVD/Video player||Hulu, YouTube (Now supports TV and ‘films‘)|
|Word Processing||Google Documents|
|Microsoft Excel||Google Spreadsheets|
|Adobe Photoshop||Splashup, Picnik|
|Twitter client||Brizzly, Twitter|
|RSS aggregator||Google Reader|
|Code IDE||CodeRun – can edit, run and compile various languages including PHP, ASP.NET and Silverlight|
There are far more than I’ve listed here – what I’m saying is, this isn’t a phase this is just development.
So Chromium is looking promising, no doubt more official releases will be on the cards for next year. Until then, if anyone does happen to have a Chromium-ready Netbook they want me to Beta test.. I’m up for the challenge.