I really am looking forward to going home though, it is going to be really nice to relax at the beach or in the pool, with my family. The drive back to Tauranga is going to be interesting though because it will be the day before Christmas Eve, and if easter is anything to go by, it will take around four hours (nearly twice as long as normal) so I reckon I will have to get my minidisc batteries charged so that I can listen to music the whole way, make sure that I have plenty of food, and take my time (I really don't want to have a crash, and it is the silly season as far as the roads are concerned after all).
My new bike arrived two Sundays ago as planned, and I took it for a ride. It is superb. Heavy, but still superb because it has brakes and gears that work as planned. I am going to have to switch the tires/tubes with the other bike, and tighten up a few things, but it is going to be much better for my training. I have decided to do two training rides per week (one on wednesday and one on the weekend), so hopefully my fitness will improve quickly.
Now, onto the topic of this post: Virtual Machines.
What is a Virtual Machine?
A virtual machine (or VM) essentially emulates a computer. There are different types of virtual machines which can be categorized into to basic groups:
- Processor Emulators - Allows you to run an entire instance of an operating system, within another operating system.
- System Emulators - Allows you to run software in a safe environment
- QEMU - An open-source processor (and system) emulator. The totally open version is quite slow, but you can get a closed-source kernel module which speeds it up considerably.
- Microsoft Virtual PC - I haven't really used it but apparently it is sluggish compared to VMWARE
- VMWARE - To my knowledge this is the industry leader. VMWARE offer products which simply allow you to run images, they offer image servers, and even a card which allows you to run an image server without an host operating system.
Other system emulators (although not really emulators per se) are the Sun Java Virtual Machine, and the Microsoft .NET Framework. These two machines are required to run applications written for their respective platforms.
What is the point of a VM?
Well, in the extreme case, they can allow you to run software not available for your platform (although you had better hope that it isn't cpu intensive software), as you can run instances of operating systems within your host operating system (eg linux within windows). More commonly (and more usefully) though, VM (full processor or computer emulators) can be used for testing different setups. For instance if you want to test a new Windows Active Direcrory Schema, you can take a few machines, run some virtual machines on them and set up a test network to test your system. Or, more simply, if you use linux, or Mac, and want to test what your web-page will look like in ie6.0 you could run a virtual instance of windows.
System VM's like Java and .NET are useful beacause (more for .NET than Java) they allow the combining of different languages through a common byte-code. All .NET languages compile down to the same intermediate language which is then linked and executed by the virtual machine. Another advantage of this, is that you can sandbox applications far more effectively because you can restrict the access rights of the virtual machine. Thus you can prevent it from doing nasty things to your computer, or you can prevent it from completely filling your ram (so even if there is a memory leak in your Java application your entire machine won't grind to a halt because the JVM only has a 256MB heap).
This sandboxing is also useful for processor emulators because, for instance, you can test the effects of experimental software (which could possibly contain malicious software) without exposing a system that matters in any way. Or, you can test a new operating system without having to find a new box to run it on, or risk pushing your mission critical machines over.
Thoughts on VM's
I had some interesting thoughts about virtual machines though. QEMU emulates a certain set of hardware, so, every installation of windows would think that it is on the exact same machine, which potentially means that you could use the same product key for as many images as you want. This would be theft of course, and as such I don't recommend it. It doesn't really cause much of a problem if you run your VM for testing, as you only ever have a single seat, but what if you run a VMWARE ESX server and have clients running images from there? I guess if you are running an ESX server, chances are that you probably already have a volume licensing deal with Microsoft, so that isn't a problem either.
I am looking forward to trying out the Vista Beta on a virtual machine (I hear the install is kinda slow), I'll let you know how it goes.
No comments:
Post a Comment