Plan 9/Inferno

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.
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.
*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.