Jon Buys has a blog post on ostatic.com about FreeBSD Jails. He goes into the different approaches of Linux and FreeBSD and how this becomes clear in virtualistion. He also goes into operating virtualisation vs application virtualisation.
In a traditional virtual machine, built the way VMware, Xen, and VirtualBox do VMs, the virtualization application runs an entire operating system as an independent entity. This requires the application to virtualize the hardware, producing CPU, RAM, and storage in software. The application then boots a new kernel in the virtualized environment, and runs specialized drivers, like VMware tools, inside of the newly booted operating system to allow communication between the two systems.
FreeBSD jails are very different. The jail does not boot its own kernel, and does not run a full version of the operating system. A jail is comprised of a filesystem, a hostname, an IP address, and an application. Jails can be seen as the logical successor to the older chroot environment, which restricted an applications access to the filesystem by providing the application it’s own root. Jails expand on this concept by further separating the host operating system and the application they are running. The difference between virtual machines and jails can be summed up by saying that virtual machines are for operating systems, jails are for applications.
Jon really likes Jails and concludes his post with:
FreeBSD jails allow an administrator to use a single operating system on a single physical machine, and then partition that machine into logical application entities that are no more than an IP address, a name, and the files absolutely necessary to run the application. I’ve been running the FreeBSD jails in a development environment for a while, and I’ve been very happy with them so far. You trade off some of the high-availability aspects that comes with the higher-priced VMware licenses, but what you get is a simple, reliable system.
Read the whole post: Considering FreeBSD Jails