Plan 9 from Bell Labs

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Plan 9
Rio in Plan 9 install.png
Instalación de Plan 9 desde rio
Desarrollador
Bell Labs
plan9.bell-labs.com/plan9/
Información general
Modelo de desarrollo Software libre
Última versión estable Fourth Edition
2002 / Actualizaciones diarias de la imagen iso
Núcleo Plan 9
Tipo de núcleo Híbrido
Licencia Lucent Public License o GNU GPL 2
Estado actual Activo
En español ?

Plan 9 from Bell Labs o simplemente Plan 9 es un sistema operativo distribuido, usado principalmente como vehículo de investigación.

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.

Vista general[editar]

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.[1]

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.[2]

UTF-8 fue inventado por Ken Thompson para ser usado como codificación nativa en Plan 9. Se adaptaría para ello en 1992.[3] Así, Plan 9 fue el primer sistema operativo en incorporar soporte completo de Unicode.

Plan 9 usa un entorno de ventanas llamado rio.

Implementaciones[editar]

Un entorno de ejecución instalable existe para la plataforma IA-32, y Plan 9 ha sido portado a MIPS, DEC Alpha, SPARC, PowerPC, ARM, Motorola 68000 y otras arquitecturas. El sistema está escrito en un dialecto del lenguaje de programación C. Diversas aplicaciones fueron originalmente escritas en un lenguaje llamado Alef, pero desde entonces se han reescrito en lenguaje C. Plan 9 puede importar aplicaciones POSIX y emular el sistema de sockets Berkeley.

Equipo de investigación[editar]

El Computing Sciences Research Center donde se desarrolló Plan 9, fueron quienes desarrollaron UNIX, el lenguaje de programación C y C++.[4] El equipo de Plan 9 fue originalmente liderado por Rob Pike, Ken Thompson, Dave Presotto y Phil Winterbottom con asistencia de Dennis Ritchie como cabeza del Computing Techniques Research Department. A través de los años varios desarrolladores notables han contribuido al proyecto, incluyendo Brian Kernighan, Tom Duff, Doug McIlroy, Bjarne Stroustrup y muchos otros.[5]

Conceptos de diseño[editar]

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[editar]

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[editar]

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.

/proc[editar]

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. Este cambio simple tiene muchos efectos secundarios útiles, permitiendo al usuario utilizar herramientas como ls (que al igual que en UNIX listaba el contenido de cualquier directorio) para buscar y ordenar la lista de procesos, que anteriormente sólo estaba disponible utilizando herramientas dedicadas (como ps en UNIX). Pero incluso más interesante era que los usuarios podían utilizar el sistema de directorios unión descrito anteriormente para anexar aplicaciones remotas en su espacio de nombres, interactuando con ellas como si fueran locales, y haciendo el procesamiento a través de una red casi una trivialidad.

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[editar]

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.

Impacto[editar]

Plan 9 demostró que el concepto central de Unix (que cualquier interfaz de sistema podía representarse como conjuntos de archivos) podía implementarse y hacerse funcional en un moderno sistema distribuido. Algunas ideas de Plan 9 han sido implementadas en otros sistemas operativos. Sistemas Unix como Linux han implementado partes del sistema de archivos de Plan 9 (por ejemplo el directorio /proc), la codificación UTF-8 y formas limitadas parecidas a la llamada al sistema rfork. Además, varias de las aplicaciones y herramientas de Plan 9 han sido portadas a Unix y Linux y han alcanzado algún nivel de popularidad.

De todas formas, Plan 9 en sí mismo nunca ha sobrepasado a Unix en popularidad, y continúa como una herramienta de investigación. Plan 9 ha sido criticado como "parecer funcionar principalmente como medio para generar papers interesantes en la investigación de sistemas operativos". Eric S. Raymond en su libro The Art of Unix Programming especula sobre la falta de aceptación de Plan 9:

"Plan 9 falló simplemente porque se quedó corto de ser un mejoramiento lo suficientemente convincente de Unix como para desplazar a su ancestro. Comparado a Plan 9, Unix tiene obvios puntos herrumbrados, pero hace el trabajo lo suficientemente bien como para mantener su posición. Esta es una lección para los arquitectos de sistemas ambiciosos: el enemigo más peligroso de una solución mejor es un código-base preexistente que funciona suficientemente bien[6]

Entre otros críticos de Plan 9 se incluyen aquellos que critican a UNIX en general, donde Plan 9 se considera el epítome de la escuela peor es mejor de diseño de sistemas operativos, llevando la simplicidad como objetivo de diseño a un extremo.

Los proponentes y desarrolladores de Plan 9 aseguran que los problemas que obstaculizaban su adopción se han solucionado, y que sus objetivos originales como sistema distribuido, entorno de desarrollo y plataforma de investigación se han conseguido, y que disfruta de una popularidad moderada pero en crecimiento.

El sistema Inferno, a través de sus capacidades hosted, ha sido un vehículo para llevar tecnologías de Plan 9 a otros sistemas como parte de rejillas de computación heterogéneas[7] [8] [9] [10]

Glenda, el conejo de Plan 9[editar]

Glenda es la mascota del sistema operativo distribuido Plan 9. 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 Glen o Glenda, también de Ed Wood.

Trabajos relacionados[editar]

Inferno[editar]

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.

Plan 9 from User Space[editar]

Plan 9 from User Space (Plan 9 desde espacio de usuario) es un porte de las aplicaciones más notables de Plan 9 a sistemas operativos tipo UNIX.

Véase también[editar]

Utilidades estándar de Plan 9[editar]

  • rc - el intérprete de comandos de Plan 9
  • sam - editor de textos
  • acme - interfaz de usuario para programadores
  • plumber - mensajería entre procesos
  • Mk - a tool for building software, analogous to the traditional Unix make utility
  • rio - el nuevo gestor de ventanas de Plan 9
  • - el antiguo sistema de ventanas de Plan 9
  • Fossil and Venti - el nuevo sistema de archivos con almacenado permanente y con archivado histórico de datos

Artefactos de implementación[editar]

  • 9P - un protocolo de sistema de archivos
  • rendezvous - un mecanismo de sincronización básico
  • Brazil - lo que se convirtió en la cuarta edición de Plan 9

Tecnologías influenciadas[editar]

Referencias[editar]

  1. «Plan 9 from Bell Labs». Lucent Technologies (2006). Consultado el April 27 de 2006.
  2. «Staying up to date». Comunidad de Plan 9 (2006). Consultado el April 27 de 2006.
  3. Pike, Rob (2003). «UTF-8 History». Consultado el April 27 de 2006.
  4. «From the inventors of UNIX system comes Plan 9 from Bell Labs». Lucent Technologies (1995). Consultado el April 2 de 2006.
  5. McIlroy, Doug (1995). «Preface to the Second (1995) Edition». Lucent Technologies. Consultado el April 2 de 2006.
  6. Raymond, Eric S.. «Plan 9: The Way the Future Was». Consultado el March 28 de 2006.
  7. «9grid (Plan 9 wiki)». Wiki de Plan 9 (2006). Consultado el March 28 de 2006.
  8. «"Press Release: Vita Nuova Supplies Inferno Grid to Evotec OAI» (PDF). Vita Nuova Holdings Limted (2004). Consultado el March 28 de 2006.
  9. «"Press Release: Rutgers University Libraries Install Inferno Data Grid"» (PDF). Vita Nuova Holdings Limited (2004). Consultado el March 28 de 2006.
  10. «"Press Release: The University of York Department of Biology install Vita Nuova's Inferno Data Grid"» (PDF). Vita Nuova Holdings Limited (2004). Consultado el March 28 de 2006.

Enlaces externos[editar]

Documentación en castellano

Bell Labs

Ponencias

Otros