FreeBSD jail
# FreeBSD jail

FreeBSD jail es una implementación de virtualización a nivel de sistema operativo que tiene disponible el sistema operativo FreeBSD. Permite particionar una computadora con FreeBSD en varios minisistemas, llamados jaulas, que comparten el kernel del sistema operativo, con una pequeña sobrecarga. Fue creado por Poul-Henning Kamp y fue incorporado en 1999 a FreeBSD 4.0.

La implementación proporciona la llamada al sistema jail, el comando de usuario jail, y, dependendiendo del sistema, algunas otras utilidades.

## Motivación

Su objetivo es solventar la limitación de chroot de que solo limita la parte del sistema de ficheros a la que pueden acceder los procesos dentro de la jaula. El resto de recursos del sistema (conjunto de usuarios del sistema, los procesos en ejecución, el subsistema de red,...) están compartidos entre el sistema alojado y el servidor. Las jaulas FreeBSD extienden este modelo virtualizando no solamente el acceso al sistema de ficheros, sino al conjunto de usuarios, al subsistema de red del kernel de FreeBSD y unas cuantas cosas más. Para ello elimina todos los privilegios de superusuario que podría afectar a objetos que no están enteramente dentro de la jaula.

Se crea un entorno virtual prácticamente indistinguible de una máquina real (o máquina virtual real) aunque con la limitación de obligar a ejecutar la misma versión del núcleo del sistema.

## Características

Cada jaula está caracterizada por cuatro elementos: un subárbol de directorio (directorio raíz donde la jaula), una vez dentro de la jaula, un proceso no puede salir de este subárbol; un nombre de host (que será utilizado para identificar la jaula); una dirección IP (asignada a al jaula y correspondiente con el nombre de host) y un comando (ruta, relativa al subárbol, a un ejecutable a lanzar dentro de la jaula).

Además cada jaula puede tener su propio conjunto de usuarios e incluso su propio usuario root (limitado al entorno de la jaula no pudiendo realizar operaciones fuera del mismo).

Existen jaulas "completas" (que contienen un sistema FreeBSD completo) y de servicio (dedicados a un único servicio o aplicación).

