Plan 9 from Bell Labs
Plan 9 from Bell Labs o simplemente Plan 9 es un sistema operativo distribuido. Fue
desarrollado como el sucesor en investigación del sistema UNIX por el Computing Sciences Research Center de los laboratorios Bell entre mitad de los años 80 y 2002.
Plan 9 es conocido especialmente por representar todos las interfaces del sistema, incluyendo aquellos utilizados para redes y comunicación con el usuario, a través del sistema de archivos en lugar de sistemas especializados. El nombre proviene de la película de ciencia ficción llamada Plan 9 del espacio exterior. La primera versión pública estuvo disponible en 1992 para universidades. En 1995 se puso a disposición del
público en general una segunda versión comercial.
Plan 9 es conocido especialmente por representar todos las interfaces del sistema, incluyendo aquellos utilizados para redes y comunicación con el usuario, a través del sistema de archivos en lugar de sistemas especializados. El nombre proviene de la película de ciencia ficción llamada Plan 9 del espacio exterior.
Más tarde, a finales de los 90, Lucent
Technologies, quien había
"heredado" los Bell Labs, dejó de interesarse comercialmente por el
proyecto. En 2000, una tercera versión no comercial fue hecha disponible bajo una licencia de código abierto. Y en 2002 una cuarta versión, nuevamente no comercial, se hizo disponible
en forma de software libre. El desarrollo continúa, liderado por un equipo de
los Laboratorios Bell y miembros del MIT. Actualizaciones menores se hacen disponibles diariamente en forma de imágenes ISO para la plataforma IA-32. El árbol de desarrollo es también accesible bajo
los protocolos 9P y HTTP, que son usados para mantener una instalación al día.
UTF-8 fue inventado por Ken Thompson para ser usado como codificación nativa en Plan 9. Se adaptaría para ello en 1992. Así, Plan 9 fue el primer sistema operativo en incorporar soporte completo de Unicode. Los diseñadores de Plan 9 se interesaron en
objetivos similares a los de los micronúcleos, pero hicieron diferentes
elecciones de arquitectura y diseño para alcanzarlos.
UTF-8 fue inventado por Ken Thompson para ser usado como codificación nativa en Plan 9. Se adaptaría para ello en 1992. Así, Plan 9 fue el primer sistema operativo en incorporar soporte completo de Unicode.
*Recursos
como archivos: todos los recursos del
sistema se representan como archivos en el sistema de archivos jerárquico.
*Espacios
de nombres (namespaces): la vista de la red por parte
de la aplicación es un espacio de nombres simple y coherente que aparece como un sistema de
archivos jerárquico pero que puede representar recursos físicamente separados
(locales o remotos).
*Protocolo
de comunicaciones estándar: se usa un protocolo
estándar, llamado 9P, para acceder a todos los recursos, ya sean
locales o remotos.
Sistemas de archivos, archivos
y nombres
UNIX fue el primer sistema operativo que intentó
describir el entorno informático mayoritariamente como un sistema de archivos.
Sin embargo muchos conceptos clave no parecían encajar bien en archivos en
aquel tiempo, y, a medida que se añadían nuevas características, éstas se
tendían a implementar fuera del sistema de archivos. El proyecto de
investigación Plan 9 cuestionó esas distinciones.
Plan 9 extendió el sistema de archivos a nombres,
esto es, una ruta única a un objeto ya sea un archivo, pantalla, usuario u ordenador. Todos se manejaron utilizando los estándares UNIX
existentes, pero extendidos de forma que cualquier objeto pudiera ser nombrado
y accedido, un concepto similar al más conocido sistema URI utilizado en la World Wide Web. En UNIX, dispositivos como impresoras habían sido representados por
nombres utilizando "conversores software" en el directorio
/dev
, pero éstos solamente manejaban dispositivos del
hardware local y no dispositivos remotos. Bajo Plan 9 las impresoras fueron
virtualizadas como archivos, que podían ser accedidos a través de la red desde
cualquier estación de trabajo.
Otra innovación de Plan 9 fue la habilidad de que
los usuarios tuvieran nombres diferentes para los mismos objetos reales. Cada
usuario podía crear un entorno personalizado colectando objetos varios en su
espacio de nombres. UNIX tiene un concepto similar en el que los usuarios ganan
"privilegios" siendo copiados desde otro usuario, pero Plan 9
extiende esto a todos los objetos. Los usuarios pueden fácilmente crear copias
de sí mismos, modificarlas y después eliminarlas sin afectar los recursos de
los que fueron creadas.
Directorios Unión
Plan 9 también introdujo el concepto de los directorios unión, directorios que combinan y agrupan recursos a
través de distintos medios y redes. Por ejemplo, el directorio
/bin
(programas) de otro computador puede ser vinculado al del
propio computador, y entonces este directorio contendrá las aplicaciones
locales y las aplicaciones
remotas (del otro computador), a las que el usuario puede acceder de forma
transparente. Los enlaces de UNIX y los puntos de montaje harían que desapareciera el
directorio original, no pudiendo acceder a los programas locales. Usando el
mismo sistema, bajo Plan 9, dispositivos externos y recursos pueden ser
vinculados a /dev
(juntándolos con los locales),
haciendo que todos los dispositivos sean dispositivos de red sin código adicional.
Para ilustrar cómo estas características funcionaban juntas para producir
un conjunto mayor, se puede considerar el interesante directorio
/proc
, en el cual se listaban todas las aplicaciones que
se estaban ejecutando. Las aplicaciones son objetos con nombre bajo Plan 9 al
igual que todo lo demás, y por tanto tenía sentido listarlas en un directorio,
como todo lo demás.
El resultado es un entorno de computación distribuida ensamblado a partir de
máquinas diferentes: terminales en los escritorios de los usuarios, servidores
de archivos que almacenan datos permanentes, y otros servidores que
proveen CPUs rápidas, autenticación de usuarios y pasarelas de red; todo ello utilizando el
sistema jerárquico nombres-directorios familiar a la mayoría de usuarios de
computadoras. Un usuario podía construir un sistema colectando directorios
desde servidores de archivos, aplicaciones ejecutándose en servidores,
impresoras de la red y después agruparlas todas en su cuenta ejecutándose en su
terminal local.
Computación distribuida
Plan 9 se basa en UNIX pero fue desarrollado para
demostrar el concepto de hacer de la comunicación la función principal de un
sistema informático. Todos los recursos del sistema se nombraban y accedían
como si fueran archivos, y se podían definir múltiples vistas del sistema
distribuido dinámicamente para cada programa ejecutándose en una máquina en
particular. Esta aproximación mejora la generalidad y modularidad del diseño de
aplicaciones, "animando" a los servidores que mantienen cualquier
información a aparecer a los usuarios y a las aplicaciones simplemente como
archivos ordinarios -- accesibles de la misma forma que archivos locales.
La clave para soportar la transparencia de red de
Plan 9 fue un nuevo protocolo de red de bajo nivel conocido como 9P. El
protocolo 9P y su implementación conectaban objetos de red con nombre y
presentaban una interfaz como un sistema de archivos. 9P es un sistema de archivos distribuido rápido y orientado a bytes (en lugar de orientado a
bloques). Puede virtualizar cualquier objeto, no sólo aquellos presentados por
un servidor NFS en una máquina remota. El
protocolo se usa para referirse a procesos, programas y datos, la interfaz de
usuario y la red. Con la liberación de la cuarta edición de Plan 9, fue
modificado y renombrado a 9P2000.
Glenda, el conejo de Plan 9
Glenda es la mascota del sistema operativo distribuido Plan 9 from Bell Labs. Fue dibujada por Renée French y existen tres versiones disponibles. Una tiene un fondo
blanco, una tiene un fondo negro y una es la mascota con un casco de astronauta en su cabeza. Estos diseños
están bajo la Lucent
Public License,
que es una licencia de código abierto. Como Plan 9 recibió su nombre por la película de Ed Wood Plan 9 del espacio exterior, Glenda fue nombrada por la
película también de Ed Wood Glen
o Glenda.
Inferno
Inferno es un producto derivado,
empezado originalmente por el mismo grupo que creó Plan 9, y ahora desarrollado
por una compañía británica llamada Vita Nuova. Inferno comparte la mayor
parte del diseño con Plan 9, pero utiliza un nuevo lenguaje de programación de
aplicaciones denominado Limbo, y una máquina virtual que lo acompaña, Dis. Inferno se promociona como un sistema operativo embebido de código abierto.