I got my electric bill today, and got to thinkin about how i shouldn't need to be running 2 separate intel dual core machines 24/7..
the 1st) is a linux HTPC, a nice roomy silverstone stereo component lookin case that's hooked up to my beautimous 46" samsung. it's a file and web server, who's specs are an excessive luxury for any single individual. while it would justify it's existence running headless, fedora is fun, and the tv is a treat; so sitting couch-side with the 3d desktop and floppy windows of beryl makes web surfing a whole new type of convenience.
the 2nd) is a shuttle, a shoebox sized dual screen workhorse (1080p widescreen center screen + 4:3 right screen), running winXP. this is my work station, where i sit long hours and be productive. i shut off the screens when i'm out or sleeping, but the machine is ready to give me mail, web, or hardcore FPS action in a heartbeat.
it's worth noting that within the current state of processors, os's boot with minimal wait; so whether i'm hybernating (deep sleep), or powering down completely, i just plain don't need to be running both these machines all the time.
this is where virtualization comes in.
back when i installed fedora 6, "xen virtualization" sounded really cool, so i checked the box. at that time since the 64bit kernel wasn't compatible, it took a fair amount of research to learn the fedora folks were ambitious enough to rls a non-functional configuration.
xen would allow a host operating system to run other guest os', and from what i gather, with a recent enuff processor, this could even allow windows xp (which isn't aware of the virtualization layer) to be spawned from a linux host. in other words, my linux server could partition itself and fire up windows xp, and be as close to the hardware as a standalone xp install, suggesting games n whatnot could run in the xp guest os, while the linux host still reserves it's cpu cycles and memory for it's own needs.
this is all great, but at present, xen still has issues with a 64bit host, so i turn my attention to vmware.
vmware is similar to virtual pc, wherein you can boot up an instance of another os from a disk image or partition, tho the product description suggests it's powerful enuff to run fancy games (at least it sez the mac version can spawn and run pc games..). vmware is commercial software (trial available), but at just under $200 it's a steal, considering what it's like buying another computer.
after an evening getting vmware up and running (impressively smooth setup) on linux, i now have a bit of a bouncer for my windows aim/irc/usenet.. vmware is running in linux, but isn't dependent on an x login; so the vmware guest os (winxp) appears to the world as a separate computer. a logged-in linux graphical user can open a local connection to the guest os, much the same as they can also open a vnc connection (local connections of course being better for multimedia).
performance-wise the guest xp os runs perfectly usable. surfing with flash, u wouldn't kno it was a virtual computer (on my [2gb ram, 2.13ghz core2duo] setup anyway). i'll reserve heavier duty (photoshop/pc game) tests for when i can get another monitor and a separate guest os hard drive in there; for now it's a 15gb disk image on the linux 10,000 rpm primary drive.
for the future i want to get some kvm extenders and wire up terminals in all the other rooms to virtual computers; a windows terminal in the bedroom, mythTV terminal in the bathroom, linux in the guest room, etc.. soon i'll explore multi-seat computing, which will make putting a terminal in each room a bit more practical than an individual physical computer in each room, and isolate each user to the realm of their virtual machine. perhaps i'll also explore how to get a cd/dvd drive in on the kvm..(ide or sata to ethernet..?).
[...]
wine should also be mentioned somewhere here, but it's a bit different. what i do kno, is that Wine Is Not (an) Emulator; which is a bit much, since it's that's the easiest way to describe it. perhaps more accurately tho, it's a set of binaries and whatnot that can emulate the windows environment to the extent that certain programs can run.