Há bastante tempo, me interesso por sistemas de virtualização. Foi em 2005 quando comprei uma das primeiras edições da Free Software Magazine, que tinha como capa uma matéria sobre diferentes tipos de virtualização, que me interessei em particular por virtualização no nível do sistema operacional.

Esse tipo de virtualização implica em isolar as camadas acima do kernel de outras instâncias. Você poderia, por exemplo, utilizar Debian como uma instância, Fedora como outra instância, etc. Uma implementação para Linux daquela época era o Linux-Vserver, sendo constituído por patches que você poderia aplicar ao Linux.

Uma forma de descrever esse conceito de virtualização é um "chroot" bombado. Enquanto um "chroot" isola o diretório raiz de uma árvore de processos dos demais diretórios do sistema, uma virtualização por SO isola também processos, CPU, memória, dispositivos, entre outras coisas.

Implementações em outros sistemas operacionais incluem o Jails do FreeBSD, que além de isolar diretórios, isola processos, usuários, limita acessos, incluindo configuração de rede, e montagem de sistemas de arquivos. Outra implementação é Solaris Zones.

O trabalho do Linux-VServer não se encontrava no mainline (ou upstream, ou vanilla), mas a funcionalidade era desejável. Outra implementação que foi criada foi o OpenVZ. Boa parte desse segundo trabalho foi contribuído de alguma forma e o OpenVZ foi se aproximando cada vez mais do upstream.

Hoje em dia, a tecnologia existente no mainline costuma ser chamada de Linux Containers. Trata-se de um conjunto de funcionalidades que podem ser utilizadas de forma independente entre si e pretendo falar dessas funcionalidades em posts que seguirão a esse.