I’m writing this blog on a Firefox browser on Windows XP. Works fine.
Actually, I’m not. The Firefox is running on an Ubuntu Linux operating system, which is being hosted through the free VMWare private virtualization software on top of Windows XP. Unix on top of Windows! VMWare promote a system where you package up configured applications with the ideal operating or desktop environment for them, as virtual appliances.
With all the talk of thin clients versus fat, this surely is the fattest kind of client! Not just a fat application, but the whole operating system with it! This is a great idea for software deployment
…
The whole thing is nevertheless quite a download, but comparable to downloading a reasonable Java application with a built-in JRE. You should be able to see a screenshot here.
Virtualization is good for a few things: sandboxing applications for security, easy resets to known states, more client independence such as when needing to run the same environment from an undisclosed location from time to time. The classic use is when you need to test on multiple versions of the operating system but don’t want to dedicate multiple machines. OpenBSD has a system of jails which allow multiple operating systems to run, and I believe Solaris does too (it is an old operating system feature, apparantly). Linux seems to be incorporating the Xen virtualization technology into the kernel/drivers which would allow multiple different Linuxes to run at the same time.
VMWare Private is a a free-beer, open source virtualization application running under Windows and Linux. Actually, it didn’t run on my Mandrake at work, but that is because the otherwise wonderful distribution I installed has the insane characteristic that its supplied kernel does not match the supplied source code: you cannot rebuild the kernel, and VMWare Private requires the kernel headers match the kernel in version number in order to know whether it will run. I’m going to move on from Mandrake because of this: not because of any unhappiness, but because the virtualization technology changes the equation again.
Better Living through Virtualization
I started computing on Unix systems, got a Mac Plus when they came out, and loved the AT&T UNIX PC in the late 80s: fantastic keyboard on the that thing. (In the early 90s I worked on TI’s LISP operating system and their multi-CPU/multi-OS systems.) It wasn’t until the 90’s that I had to start using Microsoft operating systems, and boy what a shock that was. I eventually acclimatized, but I had to abandon Windows at work in favour of Linux after a virus that set me back weeks of work. At work we are fairly operating-system neutral now: Eclipse, Open Office, Firefox, and browser based mail and timesheet systems.
Operating system neutrality is the way ahead. Operating systems are not going away, but it looks increasingly like they will be squeezed out from the base to being merely runnable environments for applications: fat process groups running with other simulataneous fat process groups such as Java and Unix.
We have come to the point where we really don’t care what operating system we use, except for driver and some system administration issues. But there are some sticking points with Linux or dual boot systems: in particular, NTFS and Linux are not a good mix. That is where virtualization seems to add quite a nice different weapon to the armory.
Robert Cringely had a column recently suggesting Intel Macs might virtual-host Vista for greater security. After my little experiments today, I don’t think this is nearly as far fetched as I first thought. Of course, Apple have long been the leaders in virtualization: my Mum is running her decade old accounting package at home on her brand-new OS X machine without problems.
The POSIX API has long made UNIXy terminal programs compilable on almost any platform. The advent of first the Web and now AJAX has made semi-block mode applications similarly platform-neutral. Java’s WORA (Write Once Read Anywhere) makes applets, servlets and many kinds of desktop applications doable without resorting to GUI-specific or OS-specific APIs. And virtualization seems to be another major nail in the coffin for API lock-in (or any other euphemism for monopoly).
Open Source efforts like ReactOS, the free Windows/XP API operating system, are of interest: I am at tthe stage where there are only a couple of Windows applications I ever need to run. SynthEdit and some Adobe applications in fact. Sound has never been a Linux strong point, though it is improving. SynthEdit does apparantly run under WINE in Linux, but my experiences of WINE (a Windows emulation) have not been really happy, in my case compounded by the NTFS problem. ReactOS does use WINE, but appears to involve far less configuration. Running occassional Windows applications in ReactOS as virtual appliances seems a very appealing way to have the cake without having to eat an MS license or put up with MS code.
I run XP on my laptop still, and I am looking forward to running OpenBSD as a virtual appliance. I often have to do text processing using multiple files, and the XP command line shell doesn’t cut it. REX would, but I have more experience with UNIX shells. I run Cygwin (Unix shell and API compiled to run in Windows) at the moment, but it always has felt funny: neither fish nor fowl.
It is interesting that virtualization in a sense reduces the operating system back down to a very small set of primitive intercommunication points. When the operating system is effectively so small, a lot of what passes for operating system today effectively is promoted to being session or application software. And this happening at the same time as the BIOS makers are revving up BIOS to be a little operating system in its own right squeezes the PC operating system further. Is that where we are heading: a superBIOS with PNP drivers hosting a thin basic OS (stripped down Windows, ReactOS, JavaOS, Linux, OS X, etc) with super fat clients running in virtual operating systems (perhaps packaged as virtual appliances.)?
(There is a little XML-ish tie in here too. The CEO of VMWare has a little blog where she discusses that company’s intent to have open standard formats for virtual file systems and so on. Many of her thoughts seem very close to the XML ideas of making interoperability and platform neutrality the key. I like the idea that the formats are being circulated to Linux people as well as Microsoft people or just VMWare-internal personel. I also like the idea that the old “give away the razor and sell the blade” strategy which of course underlies the free web browsers now also applies not just to non-free content creation tools but to non-free operating-system-packaging tools like VMWare.)


I completely agree with the notion of virtualization as the focus of the future desktop and server platform. In fact, I have been working on the nuxleus project in idea form since just before I made this > http://www.xsltblog.com/archives/2005/05/dear_microsoft_1.html < post on May 6th of last year. While there's still LOTS of work to be done, I do have the first (actually the third, but the first was proof of concept, and the third was a fix to the second that kept you from being able to log on to the virtual machine) developers only build ready to go, and a general overview of whats it all about located at > http://dev.extensibleforge.net/wiki/nuXle.us
When all is said and done, and the final "@home"-styled released is ready, the size will be WELL under 50 megs for the entire system. The developers build is quite a bit bigger at the moment (350'ish) but even that will drop down to somewhere around 150 megs for the next release (in about 2 weeks (1 every 3 weeks or so))
Some other interesting points:
> While there is no offered support for Windows XP, Virtual Server 2005 from MS (which is now free-as-in-beer) runs EXTREMELY well on top of it, and the utilities that come as part of the package go WELL beyond what VMWare Player has to offer. Running and maintaining multiple virtual instances, mounting and unmounting virtual hard drives, iso images, etc... is a snap, and in fact the Virtual Hard Drive (.vhd) format has a royalty free license, and the specification available to anyone who wants to implement the technology for things that have nothing to do with MS, Windows, or anything related.
On the same extensibleforge site linked above you'll also find the S3 FUSE project. I believe heavily in both the notion of virtualization, as well as separation of concerns by implementing .vhd files as both a use once caching system, portable and personal file system (that you carry around with you on a key drive), as well as various other strategies that implement a level of security in which separates access to ALL system files, user files, application data files, etc.. etc.. etc... into a combination of virtual environements and virtual hard drive such thtere is a complete separation of access in regards to security policies implemented for each piece of the above mentioned system... which is EXACTLY what the nuxleus project is all about.
Would love to hear your thoughts and opinions on any and all of the above if you have a moment.
Could you please post about how you accomplished this for those of us interested in doing the same with this VMWare?
Thank you.
How to do it: follow the instructions for downloading the VMWare Player product and the Browser Appliance application at
http://www.vmware.com/download/player/
Installation was straightforward. I am sure other readers will be interested to know how you get on.
Player is about 28 meg to download. The Linux + Firefox is about 250 Meg (!) but there are other smaller "virtual appliances" available at their site. They have a cometition going too to stimulate new appliances.
One of the cooler appliances is the AST appliance which is Asterisk@Home as a VMWare appliance. Its less than 50 megs in total size, and REALLY cool if your into that kind of thing :)