ID:29944
 
Keywords: apple, byond, computers

Poll: Do you use virtualization?

Parallels 4% (1)
VMware 16% (4)
Bochs 0% (0)
QEMU 12% (3)
Xen 0% (0)
Virtual PC 16% (4)
Other 12% (3)
No, but I want to! 20% (5)
Not interested 16% (4)

Only members of can vote.

In computing, virtualization is the technique of using software to emulate some or all of a computer's hardware, providing a virtual machine for other (guest) software to run in. The guest software is typically an entire operating system, such as Windows or Linux. As far as that guest operating system is concerned, it thinks is running directly on real computer hardware. This allows the same physical computer to run multiple operating systems at once without conflicts. There is a "host" operating system running on the physical hardware, with possibly multiple virtual machines running as ordinary programs within the host system.

Although virtualization has been around for over 40 years, it has only recently become a viable solution on personal computers. In the old days, a server the size of an entire room was needed in order to run many virtual machines on the same physical hardware. In that environment, the benefits of virtualization easily outweighed the extra overhead of emulating entire computers in software.

More recently, as personal computers have become more powerful, virtualization has enabled people to use a single PC to act as several machines at once. This has been a boon for developers who test on multiple platforms, as well as anyone who wishes to use software from multiple systems at once. Gone are the days of several different computers sitting under your desk, or constantly rebooting your one machine into different operating systems. And testing under unstable conditions just got a whole lot easier because if one virtual machine crashes, the rest of your computer continues running, completely unaffected. Now, it's easy to have your cake and eat it too.

I first wrote about this when I got my Macbook about 11 months ago. With it, I purchased a copy of Parallels Desktop, a virtual machine program for the Mac. Since Apple transitioned the Mac to Intel processors in 2006, virtualization via Parallels (and soon VMware) has taken off like wildfire. The days of the excruciatingly slow emulation of Virtual PC are over, thanks to the fact that the hardest part of virtualization, emulating the virtual computer's CPU, can be bypassed when you're already running on that same CPU. Intel Macs can run Windows in a confined, virtual environment at near native speeds without rebooting. I believe this is only the beginning.

I've been enjoying this capability since day one, running my copy of Windows XP Pro within Parallels for BYOND development -- working on both the BYOND software and testing the BYOND website in Internet Explorer. I even have copies of Windows ME and Windows 98 for legacy compatibility testing. Clearly, virtualization is a huge win for anyone doing multi-platform development.

This past weekend, I took another giant leap in productivity, enabled by virtualization. There have been a few times over the past year or so when I had my laptop with me but no internet connectivity. No internet meant no access to BYOND servers, so no development on the BYOND website. This has frustrated me, as often in these situations I didn't really have anything better to do, so potentially productive time was completely wasted. I knew I would be going to Vegas soon, and that 4+ hour drive would be perfect for making a little website progress. If only I could get wireless internet access in the middle of the desert!

Once again, virtualization came to the rescue. The night before the trip, I installed Linux onto a new virtual machine. I configured it as a near clone of the BYOND web server, complete with a recent copy of the live database and all of our custom web applications. Once everything was in place, this virtual machine looked and acted just like the BYOND website when pointing any browser to its internally assigned network address. Perfect! For four hours on the way to Las Vegas this past Friday, I managed to get a lot of work on on the BYOND website, without ever accessing the real BYOND website.



I don't think it stops there. Soon, we'll see virtualization used in more mainstream applications. I believe in the next several years it will become more than just a fantastic tool for developers and server admins.

Backwards compatibility has always been a difficult problem for developers of mainstream operating systems like Windows. What's the easiest way to provide backwards compatibility without de-stabilizing the main system? By running a complete copy of the old system within an isolated virtual machine. When this is made so seamless that the average user has no idea that a virtual machine is used behind the scenes, developers can stop worrying about backwards compatibility and focus on moving forward with new technologies. This has the potential to remove the shackles that have held back new developments in computing time and time again. Apple has used this to great advantage in their handling of "Classic" MacOS programs within the much more modern Mac OS X.

And wouldn't it be nice it any computer system could seamlessly run any program from any other system? If virtualization is built into the system from the start, again there's no reason why the user even has to be aware that it's there. With multi-core CPUs becoming standard in ordinary PCs, the potential is virtually limitless (haha).

Time to jump on the bandwagon!
Yes, Im on the screenshot! >.<
So, this virtual thing your talking about..is sort of like emulation?
My psp can boot Windows 98 =)
I use VMware for testing Windows 98 compatibility, and not much else.

I would use it for playing Thief 2 as well, but Thief 2 refuses to run with VMware's emulated graphics card. Grr. I want my DirectX. =) Ironically, if I was running a Mac instead of Windows XP I could probably run it under VMware Fusion.

Emulating the server environment is a great idea! Now if you were running the actual servers on virtual machines, it would be even easier to take a snapshot of them for development purposes...

The overhead would probably kill the BYOND servers though. Pity.
I do believe there's a way to run windows from another OS inside of the Mac GUI (whatever they call it now, Quartz I think?) Atleast, I saw a video of that on digg. That would be very cool, then the OS wars would be over. :)
I hope you weren't driving.
Tom wrote:
I hope you weren't driving.

That was the first thing that came to my head as well.

"How is he programming while driving?"
You forgot Dosbox!

(Wouldn't it be nice if you could edit polls?)
Lummox JR wrote:
You forgot Dosbox!

(Wouldn't it be nice if you could edit polls?)

(Well, considering the main worry is, people would change the outcome of a poll by swapping options or something like that. Maybe edit polls to the extent that you can just add more options at a later date)
I enjoy using QEMU on my Kubuntu laptop and desktop because it allows me to check out BYOND games, and proof website layouts in IE5/6for my own projects through a copy of Win98SE.

great stuff!
Originally, I was one of those ones who voted 'No, but I want to!'. However, about thirty minutes after reading your post, I went off and set up VMWare again, and I'm currently installing Ubuntu.

Also, I like that name: "Macadamia." Primarily because my initial assumption is that it was some sort of play on words. =P
I use QEMU to some extent. It's so transparent it's amazing.

I can't get kqemu working properly, though, which is quite annoying.
I like the concept of it. But what I want to see is a program that just puts little Icons in the top right of the screen, and clicking on one displays that OS system. That would be awesome.
I see a small update to BYOND members!
Look at the top left of the browser in his screenshot.

We need more information, post the updates on BYOND Labs :)