Interested In Virtualization?
One of the big things right now is virtualization. On the Free / Open Source Software side, there are many different projects that are bringing some level of emulation or virtualization into the market. These are zero-price solutions, primarily, although some have partnerships with a commercial entity that extends their solutions and markets the extended version commercially.
Almost any Unix-like operating system will have the ability to create
chroot jails. This gives the software in question the illusion that it is at the top of the file system, which makes it more difficult for the application or server to access other areas that it should not be using. Many of the other solutions are similar to this, but reinforced in some way:
- FreeBSD jails: work primarily on FreeBSD, although some of the other BSDs and some GNU+Linux distributions are now implementing similar functionality.
- OpenVZ: Virtualizes Linux on Linux. Commercial version is called Virtuozzo.
- Linux VServer: Virtualizes Linux on Linux.
- Linux Virtual Server: More of a clustering project than a virtualization project. Note that a clustered server looks like one (virtualized) server, when it is really multiple servers, so some of the same principles are at work behind the scenes.
- Beowulf: A Linux clustering project, rather than a virtualization project.
Other solutions are more complete, meaning that there is more separating the host operating system and the guest operating system.
- User-Mode Linux: Virtualizes Linux on Linux.
- Bochs: A full-scale x86 emulator, it appears to the guest operating system that it is a real computer. Because it emulates every instruction, it is extremely slow.
- Qemu (and Q, its native Mac OSX port): A full-scale emulator (for x86, PPC, and some other architectures), with some virtualization features built into it. Qemu can use kqemu or QVM86 to speed up its operation. Qemu runs Linux, Windows, and other guest operating systems under Linux, Windows, Mac OSX, and other host operating systems.
- PearPC is designed to run on Mac OSX, Linux, or Windows hosts. It can run most PowerPC-based operating systems as guests.
Then there are the full virtualizers and a paravirtualizer:
- VMWare is the king of virtualizers, has a commercial license, and runs on Linux and Windows (and maybe more by now)
- VirtualPC is a competitive product that was purchased by Microsoft a couple of years ago. I believe it currently runs only on Windows. There is a server version, called Virtual Server. Commercial license.
- Parallels runs x86 guests inside of Mac OSX. Since I don’t have a Mac, that's all I will say about it. Hint to Apple and Parallels: I am a blogger. 🙂
- Xen is a paravirtualizer known to run on Linux and NetBSD hosts (depending on the version), and is known to run most Free / Open Source operating systems. A version that can run Windows is coming any day now. (We promise!) The issue is this: as a paravirtualizer, the guest operating system needs to be modified to run correctly. This is simple enough in a F/OSS operating system, where access to the code is a given, but with commercially-licensed operating systems, it takes extra effort to figure out how to make them work.
This list is not exhaustive, as there are several free and commercial applications that emulate other computers (classic 68000-based Macs, for example) out there. Keep your eyes on this fascinating area. There are sure to be some new announcements in 2007.
I’ll have another article on this topic coming up soon on my Tech blog.