Plan 9 de Bell Labs es un sistema operativo distribuido , que se originó en el Centro de Investigación en Ciencias de la Computación (CSRC) en Bell Labs a mediados de la década de 1980, y se basa en los conceptos de UNIX desarrollados por primera vez allí a fines de la década de 1960. El lanzamiento oficial final fue a principios de 2015.
Desarrollador | Plan 9 Foundation, sucediendo a Bell Labs |
---|---|
Escrito en | Dialecto de ANSI C |
Estado de trabajo | Actual [2] [3] |
Modelo fuente | Fuente abierta |
Versión inicial | 1992 (universidades) / 1995 (público en general) |
Lanzamiento final | Cuarta Edición / 10 de enero de 2015 [4] |
Repositorio | 9p |
Objetivo de marketing | Investigación de sistemas operativos, entornos en red, uso de propósito general |
Disponible en | inglés |
Método de actualización | réplica |
Plataformas | x86 / Vx32 , x86-64 , MIPS , DEC Alpha , SPARC , PowerPC , ARM |
Tipo de grano | Kernel híbrido |
Influenciado por | Research Unix , Cambridge Distributed Computing System [6] |
Interfaz de usuario predeterminada | rio / rc |
Licencia | 2021: MIT [7] 2014: solo GPL-2.0 2002: LPL-1.02 |
Sucesor | Inferno Otros derivados y horquillas |
Página web oficial | p9f |
Bajo Plan 9, de UNIX todo es un archivo metáfora se extiende a través de una red centrada omnipresente sistema de archivos , y el cursor se dirigió , el terminal basado en E / S en el corazón de tipo UNIX sistemas operativos se sustituye por un sistema de ventanas y gráfica de usuario interfaz sin direccionamiento de cursor, aunque rc , el shell de Plan 9 , está basado en texto.
El nombre Plan 9 de Bell Labs es una referencia a la película Z de ciencia ficción de culto de Ed Wood 1959 Plan 9 de Outer Space . [8] (El nombre de la mascota del proyecto, "Glenda, el conejo del Plan 9", es presumiblemente una referencia a la película de Wood, Glen o Glenda .) El sistema continúa siendo utilizado y desarrollado por investigadores y aficionados del sistema operativo. [9] [10]
Historia
Plan 9 from Bell Labs fue desarrollado originalmente, a partir de finales de 1980, [10] por miembros del Centro de Investigación de Ciencias de la Computación en los Bell Labs, el mismo grupo que desarrolló originalmente Unix y el lenguaje de programación C . [11] El equipo de Plan 9 fue dirigido inicialmente por Rob Pike , Ken Thompson , Dave Presotto y Phil Winterbottom, con el apoyo de Dennis Ritchie como jefe del Departamento de Investigación de Técnicas de Computación. A lo largo de los años, muchos desarrolladores notables han contribuido al proyecto, incluidos Brian Kernighan , Tom Duff , Doug McIlroy , Bjarne Stroustrup y Bruce Ellis . [12]
Plan 9 reemplazó a Unix como la plataforma principal de Bell Labs para la investigación de sistemas operativos. Exploró varios cambios al modelo Unix original que facilitan el uso y la programación del sistema, especialmente en entornos distribuidos de múltiples usuarios . Después de varios años de desarrollo y uso interno, Bell Labs envió el sistema operativo a las universidades en 1992. Tres años más tarde, AT&T puso a disposición el Plan 9 para fiestas comerciales a través del editor de libros Harcourt Brace . Con licencias de origen que cuestan $ 350, AT&T apuntó al mercado de sistemas integrados en lugar del mercado de computadoras en general. Ritchie comentó que los desarrolladores no esperaban hacer "mucho desplazamiento" dado lo establecidos que se habían vuelto otros sistemas operativos. [13]
A principios de 1996, AT&T había "dejado en segundo plano" el proyecto Plan 9 a favor de Inferno , que pretendía ser un rival de la plataforma Java de Sun Microsystems . [14] A finales de la década de 1990, el nuevo propietario de Bell Labs, Lucent Technologies, abandonó el apoyo comercial para el proyecto y, en 2000, se distribuyó una tercera versión bajo una licencia de código abierto . En 2002 se produjo un cuarto lanzamiento con una nueva licencia de software libre. [15]
Una comunidad de usuarios y desarrolladores, que incluía al personal actual y anterior de Bell Labs , produjo lanzamientos diarios menores en forma de imágenes ISO . Bell Labs organizó el desarrollo. [16] Se puede acceder al árbol de fuentes de desarrollo a través de los protocolos 9P y HTTP y se utiliza para actualizar las instalaciones existentes. [17] Además de los componentes oficiales del sistema operativo incluidos en los ISO, Bell Labs también alberga un repositorio de aplicaciones y herramientas desarrolladas externamente. [18]
A medida que Bell Labs pasó a proyectos posteriores en los últimos años, el desarrollo del sistema oficial Plan 9 se había detenido. El 23 de marzo de 2021, el desarrollo se reanudó tras la transferencia de los derechos de autor de Bell Labs a la Fundación Plan 9. [7] [19] [20] El desarrollo no oficial del sistema también continúa en la bifurcación 9front, donde los contribuyentes activos proporcionan compilaciones mensuales y nuevas funcionalidades. Hasta ahora, la bifurcación 9front ha proporcionado al sistema controladores de Wi-Fi , controladores de audio, soporte USB y emulador de juegos incorporado, junto con otras características. [21] Otros sistemas operativos recientes inspirados en Plan 9 incluyen Harvey OS [22] y Jehanne OS. [23]
Fecha | Lanzamiento | Comentario |
---|---|---|
1992 | Plan 9 1a edición | Lanzado por Bell Labs a las universidades |
1995 | Plan 9 2a edición | Publicado por Bell Labs con fines no comerciales [24] |
2000 | Plan 9 3ª ed. ( Brasil ) | Publicado por Lucent Technologies bajo una licencia de código abierto |
2002 | Plan 9 4a edición | Publicado por Lucent Technologies bajo una nueva licencia de software libre |
Conceptos de diseño
—Sape J. Mullender, Pierre G. Jansen.
Tiempo real en un sistema operativo real [25]
Plan 9 es un sistema operativo distribuido , diseñado para hacer que una red de computadoras heterogéneas y geográficamente separadas funcione como un solo sistema. [26] En una instalación típica de Plan 9, los usuarios trabajan en terminales que ejecutan el sistema de ventanas rio y acceden a servidores de CPU que manejan procesos intensivos en computación. El almacenamiento permanente de datos es proporcionado por hosts de red adicionales que actúan como servidores de archivos y almacenamiento de archivos. [27]
Sus diseñadores afirman que,
[l] os cimientos del sistema se basan en dos ideas: un espacio de nombres por proceso y un protocolo simple de sistema de archivos orientado a mensajes.
- Pike y col. [28]
La primera idea (un espacio de nombres por proceso) significa que, a diferencia de la mayoría de los sistemas operativos, los procesos (programas en ejecución) tienen cada uno su propia vista del espacio de nombres , correspondiente a lo que otros sistemas operativos llaman sistema de archivos; un solo nombre de ruta puede hacer referencia a diferentes recursos para diferentes procesos. La complejidad potencial de esta configuración está controlada por un conjunto de ubicaciones convencionales para recursos comunes. [29] [30]
La segunda idea (un sistema de archivos orientado a mensajes) significa que los procesos pueden ofrecer sus servicios a otros procesos proporcionando archivos virtuales que aparecen en el espacio de nombres de los otros procesos. La entrada / salida del proceso del cliente en dicho archivo se convierte en comunicación entre procesos entre los dos procesos. De esta manera, Plan 9 generaliza la noción Unix del sistema de archivos como el punto central de acceso a los recursos informáticos. Transfiere la idea de Unix de archivos de dispositivo para proporcionar acceso a dispositivos periféricos ( ratones , medios extraíbles, etc.) y la posibilidad de montar sistemas de archivos que residen en sistemas de archivos físicamente distintos en un espacio de nombres jerárquico, pero agrega la posibilidad de montar una conexión a un servidor. programa que habla un protocolo estandarizado y trata sus servicios como parte del espacio de nombres.
Por ejemplo, el sistema de ventanas original, llamado 8½, explotó estas posibilidades de la siguiente manera. El plan 9 representa la interfaz de usuario en un terminal por medio de tres pseudoarchivos: mouse , que puede ser leído por un programa para recibir notificaciones de los movimientos del mouse y los clics de los botones, contras , que se puede utilizar para realizar entradas / salidas textuales, y bitblt , escritura en la que se realizan operaciones gráficas (ver bit blit ). El sistema de ventanas multiplexa estos dispositivos: al crear una nueva ventana para ejecutar algún programa, primero configura un nuevo espacio de nombres en el que ratón , contras y bitblt están conectados a sí mismos, ocultando los archivos del dispositivo real a los que tiene acceso. El sistema de ventanas recibe así todos los comandos de entrada y salida del programa y los maneja de manera apropiada, enviando la salida al dispositivo de pantalla real y dando al programa actualmente enfocado la entrada del teclado y el mouse. [27] El programa no necesita saber si se está comunicando directamente con los controladores de dispositivo del sistema operativo o con el sistema de ventanas; solo tiene que asumir que su espacio de nombres está configurado para que estos archivos especiales proporcionen el tipo de entrada y acepten el tipo de mensajes que espera.
La operación distribuida de Plan 9 también se basa en los espacios de nombres por proceso, lo que permite que los procesos de cliente y servidor se comuniquen entre las máquinas de la manera que se acaba de describir. Por ejemplo, el El comando cpu inicia una sesión remota en un servidor de cálculo. El comando exporta parte de su espacio de nombres local, incluidos los dispositivos del terminal del usuario ( ratón , contras , bitblt ), al servidor, para que los programas remotos puedan realizar entradas / salidas usando el mouse, el teclado y la pantalla del terminal, combinando los efectos del inicio de sesión remoto y un sistema de archivos de red compartido. [27] [28]
Protocolo 9P
Todos los programas que deseen proporcionar servicios como archivos a otros programas utilizan un protocolo unificado, llamado 9P. En comparación con otros sistemas, esto reduce la cantidad de interfaces de programación personalizadas . 9P es un protocolo genérico, medio agnóstico y orientado a bytes que proporciona mensajes entregados entre un servidor y un cliente. [31] El protocolo se utiliza para hacer referencia y comunicarse con procesos, programas y datos, incluida la interfaz de usuario y la red. [32] Con el lanzamiento de la 4ª edición, se modificó y se le cambió el nombre a 9P2000. [15]
A diferencia de la mayoría de los otros sistemas operativos, Plan 9 no proporciona interfaces de programación de aplicaciones especiales (como sockets Berkeley , recursos X o llamadas al sistema ioctl ) para acceder a los dispositivos. [31] En cambio, los controladores de dispositivo Plan 9 implementan su interfaz de control como un sistema de archivos, de modo que se pueda acceder al hardware mediante las operaciones de entrada / salida de archivos ordinarias de lectura y escritura . En consecuencia, se puede compartir el dispositivo a través de la red montando el árbol de directorio correspondiente en la máquina de destino. [8]
Espacios de nombres y directorios de unión
Plan 9 permite al usuario recopilar los archivos (llamados nombres ) de diferentes árboles de directorios en una sola ubicación. El directorio de unión resultante se comporta como la concatenación de los directorios subyacentes (se puede controlar el orden de concatenación); si los directorios constituyentes contienen archivos con el mismo nombre, una lista del directorio de unión ( ls o lc ) simplemente informará nombres duplicados. [33] La resolución de un solo nombre de ruta se realiza de arriba hacia abajo: si los directorios arriba y abajo están unidos en tu con arriba primero, luego u / nombre denota top / name si existe, bottom / name solo si existe y top / name no existe , y no existe ningún archivo si no existe ninguno. No se realiza ninguna unión recursiva de subdirectorios, por lo que si top / subdir existe, los archivos en bottom / subdir no son accesibles a través de la unión. [34]
Se puede crear un directorio de unión usando el enlazar comando:
; enlazar / armar / papelera / papelera; enlazar -a / acme / bin / arm / bin; enlazar -b / usr / alice / bin / bin
En el ejemplo anterior, / arm / bin está montado en / bin , el contenido de / arm / bin reemplazando el contenido anterior de / bin . Acme 's luego, el directorio bin se monta después de la unión / bin , y el personal de Alice El directorio bin está montado en unión antes. Cuando se solicita un archivo a / bin , primero se busca en / usr / alice / bin , luego en / arm / bin , y finalmente en / acme / bin / arm .
Los espacios de nombres de procesos separados reemplazan así la noción de una ruta de búsqueda en el shell. Donde los shells de Unix tienen una lista de directorios para buscar programas cuando se les da un comando, el shell de Plan 9 solo busca en el directorio / bin ; La adición de comandos se realiza vinculando varios directorios para que aparezcan como un solo / bin . [27]
Además, el kernel puede mantener tablas de montaje separadas para cada proceso, [25] y así puede proporcionar a cada proceso su propio espacio de nombres del sistema de archivos . Los espacios de nombres de los procesos se pueden construir de forma independiente y el usuario puede trabajar simultáneamente con programas que tienen espacios de nombres heterogéneos. [28] Los espacios de nombres pueden usarse para crear un entorno aislado similar a chroot , pero de una manera más segura. [31]
La arquitectura de directorio de unión de Plan 9 inspiró las implementaciones del sistema de archivos de unión de 4.4BSD y Linux , [33] aunque los desarrolladores de la instalación de montaje de unión de BSD encontraron la fusión no recursiva de directorios en Plan 9 "demasiado restrictiva para uso de propósito general". [34]
Sistema de archivos virtual especial
/ proc
En lugar de tener llamadas al sistema específicamente para la gestión de procesos , Plan 9 proporciona la / sistema de archivos proc . Cada proceso aparece como un directorio que contiene información y archivos de control que pueden ser manipulados por las llamadas al sistema de E / S de archivos ordinarios. [36]
El enfoque del sistema de archivos permite administrar los procesos de Plan 9 con herramientas simples de administración de archivos como ls y cat ; sin embargo, los procesos no se pueden copiar ni mover como archivos. [6]
/neto
Plan 9 no tiene llamadas al sistema especializadas o ioctls para acceder a la pila de redes o al hardware de redes. En cambio, el Se utiliza el sistema de archivos / net . Las conexiones de red se controlan leyendo y escribiendo mensajes de control para controlar los archivos. Subdirectorios como / net / tcp y / net / udp se utilizan como interfaz para sus respectivos protocolos. [6]
Unicode
Para reducir la complejidad de la gestión de codificaciones de caracteres , Plan 9 utiliza Unicode en todo el sistema. La implementación inicial de Unicode fue ISO 10646 . Ken Thompson inventó UTF-8, que se convirtió en la codificación nativa en el Plan 9. Todo el sistema se convirtió para uso general en 1992. [37] UTF-8 conserva la compatibilidad con versiones anteriores de cadenas tradicionales terminadas en nulo , lo que permite un procesamiento de información más confiable y la encadenamiento de datos de cadenas multilingües con tuberías Unix entre múltiples procesos. El uso de una única codificación UTF-8 con caracteres para todas las culturas y regiones elimina la necesidad de cambiar entre conjuntos de códigos. [38]
Combinando los conceptos de diseño
Aunque interesantes por sí mismos, se suponía que los conceptos de diseño del Plan 9 eran más útiles cuando se combinaban. Por ejemplo, para implementar un servidor de traducción de direcciones de red (NAT), se puede crear un directorio de unión, superponiendo las direcciones del enrutador . / net árbol de directorios con su propio / net . De manera similar, se puede implementar una red privada virtual (VPN) superponiendo en un directorio de unión un / net desde una puerta de enlace remota , utilizando 9P protegido a través de la Internet pública. Un directorio sindical con el La jerarquía y los filtros / net se pueden usar para aislar una aplicación que no es de confianza o para implementar un firewall . [31] De la misma manera, una red informática distribuida se puede componer con un directorio de unión de / proc jerarquías de hosts remotos, lo que permite interactuar con ellos como si fueran locales.
Cuando se usan juntas, estas características permiten ensamblar un entorno informático distribuido complejo mediante la reutilización del sistema de nombres jerárquico existente. [6]
Software para Plan 9
Como beneficio del diseño del sistema, la mayoría de las tareas en Plan 9 se pueden realizar utilizando las utilidades ls , cat , grep , cp y rm en combinación con el shell rc (el shell predeterminado del Plan 9).
Factotum es un servidor de autenticación y administración de claves para el Plan 9. Maneja la autenticación en nombre de otros programas de manera que tanto las claves secretas como los detalles de implementación solo deben ser conocidos por Factotum. [39]
Programas graficos
A diferencia de Unix , Plan 9 se diseñó teniendo en cuenta los gráficos. [32] Después de arrancar, una terminal de Plan 9 ejecutará el sistema de ventanas rio , en el que el usuario puede crear nuevas ventanas que muestren rc . [40] Los programas gráficos invocados desde este shell lo reemplazan en su ventana.
El plomero proporciona un mecanismo de comunicación entre procesos que permite hipervínculos en todo el sistema.
Sam y acme son los editores de texto de Plan 9. [41]
Sistema de almacenamiento
Plan 9 admite los sistemas de archivos Kfs, Paq, Cwfs, FAT y Fossil . El último fue diseñado en Bell Labs específicamente para Plan 9 y proporciona capacidad de almacenamiento de instantáneas. Puede usarse directamente con un disco duro o respaldado con Venti , un sistema de archivos de archivo y un sistema de almacenamiento de datos permanente.
Desarrollo de software
El paquete de distribución para Plan 9 incluye variantes de compiladores especiales y lenguajes de programación, y proporciona un conjunto de bibliotecas a medida junto con un sistema de interfaz de usuario con ventanas específico para Plan 9. [42] La mayor parte del sistema está escrito en un dialecto de C ( ANSI C con algunas extensiones y algunas otras características omitidas). Los compiladores de este lenguaje se crearon a medida teniendo en cuenta la portabilidad; según su autor, "compilan rápidamente, cargan lentamente y producen código objeto de calidad media". [43]
Un lenguaje de programación concurrente llamado Alef estaba disponible en las dos primeras ediciones, pero luego fue eliminado por razones de mantenimiento y reemplazado por una biblioteca de subprocesos para C. [44] [45]
Compatibilidad con Unix
Aunque se suponía que Plan 9 era un desarrollo posterior de los conceptos de Unix, la compatibilidad con el software Unix preexistente nunca fue el objetivo del proyecto. Muchas utilidades de línea de comandos de Plan 9 comparten los nombres de las contrapartes de Unix, pero funcionan de manera diferente. [35]
Plan 9 puede admitir aplicaciones POSIX y puede emular la interfaz de socket Berkeley a través del entorno ANSI / POSIX (APE) que implementa una interfaz cercana a ANSI C y POSIX , con algunas extensiones comunes (las interfaces nativas de Plan 9 C no cumplen con ninguno de los estándares). También incluye una carcasa compatible con POSIX. Los autores de APE afirman haberlo utilizado para portar el sistema X Window (X11) al Plan 9, aunque no envían X11 "porque soportarlo correctamente es un trabajo demasiado grande". [46] Algunos binarios de Linux se pueden usar con la ayuda de una aplicación "linuxemu" (emulador de Linux); sin embargo, todavía es un trabajo en progreso. [47] Viceversa, la máquina virtual vx32 permite que un kernel de Plan 9 ligeramente modificado se ejecute como un proceso de usuario en Linux, que admite programas de Plan 9 no modificados. [48]
Recepción
Comparación con los sistemas operativos contemporáneos
En 1991, los diseñadores de Plan 9 compararon su sistema con otros sistemas operativos de principios de los noventa en términos de tamaño, mostrando que el código fuente de una versión mínima ("funcional, aunque no muy útil") era menos de una quinta parte del tamaño de un Mach. microkernel sin controladores de dispositivo (5899 o 4622 líneas de código para el Plan 9, según la métrica, frente a 25530 líneas). El núcleo completo constaba de 18000 líneas de código. [27] (Según un recuento de 2006, el kernel tenía entonces unas 150.000 líneas, pero esto se comparó con más de 4,8 millones en Linux . [31] )
Dentro de la comunidad de investigación de sistemas operativos, así como en el mundo comercial de Unix, otros intentos de lograr la computación distribuida y el acceso remoto al sistema de archivos se realizaron simultáneamente con el esfuerzo de diseño de Plan 9. Estos incluyeron el sistema de archivos de red y la arquitectura vnode asociada desarrollada en Sun Microsystems , y desviaciones más radicales del modelo Unix, como el sistema operativo Sprite de UC Berkeley . El desarrollador de Sprite, Brent Welch, señala que la arquitectura vnode de SunOS es limitada en comparación con las capacidades de Plan 9, ya que no admite el acceso a dispositivos remotos y la comunicación remota entre procesos de manera limpia, aunque podría haber tenido los sockets de dominio UNIX preexistentes (que " se puede utilizar esencialmente para nombrar servidores a nivel de usuario ") integrado con la arquitectura vnode. [29]
Una crítica del diseño de "todo es un archivo", comunicación por mensaje textual de Plan 9 señaló las limitaciones de este paradigma en comparación con las interfaces escritas del sistema operativo orientado a objetos de Sun , Spring :
El plan 9 restringe todo para que parezca un archivo. En la mayoría de los casos, el tipo de interfaz real comprende el protocolo de mensajes que deben escribirse y leerse desde un descriptor de archivo. Esto es difícil de especificar y documentar, y prohíbe cualquier verificación automática de tipos , excepto los errores de archivo en tiempo de ejecución. (...) [Un] nombre de ruta relativo al contexto raíz implícito de un proceso es la única forma de nombrar un servicio. La vinculación de un nombre a un objeto solo se puede hacer dando un nombre existente para el objeto, en el mismo contexto que el nuevo nombre. Como tal, las referencias de interfaz simplemente no se pueden pasar entre procesos, y mucho menos a través de redes. En cambio, la comunicación tiene que basarse en convenciones, que son propensas a errores y no escalan.
- Roscoe; énfasis en el original. [49]
Una comparación retrospectiva posterior de Plan 9, Sprite y un tercer sistema operativo de investigación distribuido contemporáneo, Amoeba , encontró que
los entornos que crean [Amoeba y Sprite] están estrechamente acoplados dentro del sistema operativo, lo que dificulta la comunicación con los servicios externos. Estos sistemas sufren la desviación radical del modelo UNIX, que también desalienta la portabilidad del software ya existente a la plataforma (...). La falta de desarrolladores, la gama muy pequeña de hardware compatible y la base de usuarios pequeña, incluso en comparación con el Plan 9, también han ralentizado significativamente la adopción de esos sistemas (...). En retrospectiva, Plan 9 fue el único sistema operativo distribuido por investigación de ese momento que logró atraer desarrolladores y ser utilizado en proyectos comerciales el tiempo suficiente para garantizar su supervivencia hasta el día de hoy.
- Mirtchovski, Simmonds y Minnich [50]
Impacto
Plan 9 demostró que un concepto integral de Unix, que cada interfaz del sistema podría representarse como un conjunto de archivos, podría implementarse con éxito en un sistema distribuido moderno. [40] Algunas características de Plan 9, como la codificación de caracteres UTF-8 de Unicode, se han implementado en otros sistemas operativos. Los sistemas operativos similares a Unix como Linux han implementado 9P, el sistema de archivos de Plan 9, y han adoptado características de rfork , el mecanismo de creación de procesos de Plan 9. [52] Además, en Plan 9 de User Space , varias de las aplicaciones y herramientas de Plan 9, incluidos los editores sam y acme, se han adaptado a sistemas Unix y Linux y han alcanzado cierto nivel de popularidad. Varios proyectos buscan reemplazar los programas del sistema operativo GNU que rodean al kernel de Linux con los programas del sistema operativo Plan 9. [53] [54] El administrador de ventanas de 9wm se inspiró en 8½ , el sistema de ventanas más antiguo de Plan 9; [55] wmii también está fuertemente influenciado por el Plan 9. [51] En la investigación en ciencias de la computación, el Plan 9 se ha utilizado como una plataforma de computación en red [56] [50] y como un vehículo para la investigación de la computación ubicua sin middleware . [57] En el comercio, el Plan 9 es la base de los sistemas de almacenamiento Coraid . Sin embargo, Plan 9 nunca se ha acercado a Unix en popularidad y ha sido principalmente una herramienta de investigación:
Parece que Plan 9 falló simplemente porque no llegó a ser una mejora lo suficientemente convincente en Unix como para desplazar a su antepasado. Comparado con el Plan 9, Unix cruje y hace ruido y tiene manchas de óxido obvias, pero hace el trabajo lo suficientemente bien como para mantener su posición. Aquí hay una lección para los arquitectos de sistemas ambiciosos: el enemigo más peligroso de una mejor solución es una base de código existente que sea lo suficientemente buena.
- Eric S. Raymond [8]
Otros factores que contribuyeron a la baja adopción del Plan 9 incluyen la falta de respaldo comercial, el bajo número de aplicaciones para el usuario final y la falta de controladores de dispositivos . [40] [41]
Los proponentes y desarrolladores del Plan 9 afirman que los problemas que obstaculizan su adopción se han resuelto, que se han cumplido sus objetivos originales como sistema distribuido, entorno de desarrollo y plataforma de investigación, y que goza de una popularidad moderada pero creciente. [ cita requerida ] Inferno , a través de sus capacidades alojadas, ha sido un vehículo para llevar las tecnologías Plan 9 a otros sistemas como parte alojada de redes informáticas heterogéneas. [58] [59] [60]
Varios proyectos trabajan para ampliar el Plan 9, incluidos 9atom y 9front. Estas bifurcaciones aumentan el Plan 9 con controladores de hardware y software adicionales , incluida una versión mejorada del sistema de correo electrónico Upas , el compilador Go , compatibilidad con el sistema de control de versiones Mercurial y otros programas. [10] [61] Plan 9 se transfirió a la computadora de placa única Raspberry Pi . [62] [63] El proyecto Harvey intenta reemplazar el compilador personalizado Plan 9 C con GCC , para aprovechar las herramientas de desarrollo modernas como GitHub y Coverity , y acelerar el desarrollo. [64]
Derivados y bifurcaciones
Inferno es un descendiente de Plan 9 y comparte muchos conceptos de diseño e incluso código fuente en el kernel, particularmente en los dispositivos y el protocolo Styx / 9P2000. Inferno comparte con Plan 9 la herencia Unix de Bell Labs y la filosofía Unix . Muchas de las herramientas de línea de comando en Inferno eran herramientas de Plan 9 que se tradujeron a Limbo .
- 9atom [65] aumenta la distribución de Plan 9 con la adición de un kernel 386 PAE , una CPU amd64 y un kernel terminal, nupas, soporte adicional para hardware de PC, IL y Ken's fs.
- 9front [66] es una bifurcación del Plan 9. Se inició para remediar una falta percibida de recursos de desarrollo dedicados dentro de Bell Labs, y ha acumulado varias correcciones y mejoras.
- 9legacy [67] es una distribución alternativa. Incluye un conjunto de parches basados en la distribución actual del Plan 9.
- Akaros [68] está diseñado para arquitecturas de muchos núcleos y sistemas SMP a gran escala.
- Harvey OS [69] es un esfuerzo para que el código de Plan 9 funcione con gcc y clang.
- JehanneOS [70] es un sistema operativo experimental derivado de Plan 9. Su área de usuario y módulos se derivan principalmente de 9front, su sistema de compilación de Harvey OS y su núcleo es una bifurcación del núcleo Plan9 de 64 bits de Plan9-9k .
- NIX [71] es una bifurcación de Plan9 destinada a sistemas multinúcleo y computación en la nube.
- Plan B [72] diseñado para trabajar en entornos distribuidos donde el conjunto de recursos disponibles es diferente en diferentes momentos.
Licencia
A partir del lanzamiento de la cuarta edición en abril de 2002, [15] el código fuente completo de Plan 9 de Bell Labs está disponible gratuitamente bajo Lucent Public License 1.02, que se considera una licencia de código abierto por Open Source Initiative (OSI ), licencia de software libre otorgada por la Free Software Foundation , y aprueba las Directrices de software libre de Debian . [31]
En febrero de 2014, la Universidad de California, Berkeley , fue autorizada por el actual titular de los derechos de autor de Plan 9 , Alcatel-Lucent , para lanzar todo el software de Plan 9 anteriormente regido por la Licencia pública de Lucent, Versión 1.02 bajo la GPL-2.0 únicamente . [73]
El 23 de marzo de 2021, la propiedad del Plan 9 se transfirió de Bell Labs a la Fundación Plan 9, y todas las versiones anteriores se volvieron a otorgar a la Licencia MIT . [7]
Ver también
- Alef (lenguaje de programación)
- Encuentro (plan 9)
- Inferno (sistema operativo)
- Minix
- HelenOS
Referencias
- ^ Tecnologías de Lucent (2006). "Glenda, la conejita del Plan 9" . Consultado el 2 de diciembre de 2008 .
- ^ "Fundación Plan 9: Actividades" . plan9foundation.org . Consultado el 23 de marzo de 2021 .
- ^ "9legado" . 9legacy.org . Consultado el 23 de marzo de 2021 .
- ^ "plan9checksums" . Bell Labs. Archivado desde el original el 1 de junio de 2017 . Consultado el 25 de julio de 2019 .
Sábado 10 de enero 04:04:55 EST 2015 ... plan9.iso.bz2
- ^ Código fuente GPLv2
- ^ a b c d Pike, R .; Presotto, D .; Dorward, S .; Flandrena, B .; Thompson, K .; Trickey, H .; Winterbottom, P. "Plan 9 de Bell Labs" . Bell Labs . Tecnologías Lucent . Consultado el 26 de febrero de 2016 .
- ^ a b c Sorace, Anthony. "Traspaso del Plan 9 a la Fundación Plan 9" . marc.info . Consultado el 14 de abril de 2020 .
- ^ a b c Raymond, Eric S. (17 de septiembre de 2003). "Plan 9: la forma en que era el futuro" . El arte de la programación UNIX . Addison-Wesley . ISBN 0-13-142901-9. Consultado el 7 de mayo de 2007 .
- ^ Robertson, James (16 de julio de 2011). "Plan 9 bifurcado, continúa como 9front" . OSNews . Consultado el 31 de diciembre de 2011 .
- ^ a b c "9atom" . Consultado el 11 de noviembre de 2011 .
- ^ "De los inventores del sistema UNIX llega el Plan 9 de Bell Labs" (Comunicado de prensa). Tecnologías Lucent. 1995-07-18. Archivado desde el original el 9 de febrero de 2006.
- ^ McIlroy, Doug (marzo de 1995). "Prefacio" . Bell Labs (2ª ed.). Tecnologías Lucent . Consultado el 26 de febrero de 2016 .
- ^ Lee, Yvonne L. (24 de julio de 1995). "AT&T Bell Labs envía el sistema operativo Plan 9 para sistemas integrados" . InfoWorld .
- ^ Pontin, Jason (19 de febrero de 1996). "AT&T revela planes para competidor de Java" . InfoWorld . pag. 3.
- ^ a b c Loli-Queru, Eugenia (29 de abril de 2002). "Bell Labs lanza nueva versión del plan 9" . OSNews . Consultado el 31 de diciembre de 2011 .
- ^ "Cómo contribuir" . Bell Labs . Tecnologías Lucent . Consultado el 30 de noviembre de 2011 .
- ^ "Mantenerse al día" . Bell Labs . Tecnologías Lucent . Consultado el 24 de julio de 2019 .
- ^ "Plan 9 - Software adicional" . 2009 . Consultado el 6 de marzo de 2016 .
- ^ Weldon, Marcus. "¡Plan 9 de Bell Labs en el ciberespacio!" . Nokia Bell Labs . Consultado el 23 de marzo de 2021 .
- ^ Sharwood, Simon. "Bell Labs transfiere los derechos de autor del influyente sistema operativo 'Plan 9' a una nueva fundación" . El registro . Consultado el 24 de marzo de 2021 .
- ^ "FQA 1 - Introducción a 9front" . fqa.9front.org . Consultado el 15 de febrero de 2018 .
- ^ "Sistema operativo Harvey" . harvey-os.org . Consultado el 15 de febrero de 2018 .
- ^ "Jehanne" . jehanne.io . Consultado el 15 de febrero de 2018 .
- ^ "Anuncio del primer lanzamiento al público en general" . 9 ventiladores. 1995-07-16. Archivado desde el original el 6 de julio de 2008.
- ^ a b Mullender, Sape J .; Jansen, Pierre G. (26 de febrero de 2004). "Tiempo real en un sistema operativo real" . En Herbert, Andrew J .; Spärck Jones, Karen (eds.). Sistemas informáticos: teoría, tecnología y aplicaciones: un tributo a Roger Needham . Springer Science + Business Media . pag. 211. ISBN 978-0-387-20170-2. Consultado el 24 de diciembre de 2011 .
- ^ Hancock, Brian (2003). "Reinventar Unix: una introducción al sistema operativo Plan 9". Biblioteca de alta tecnología . MCB UP. 21 (4): 471–76. doi : 10.1108 / 07378830310509772 .
- ^ a b c d e Presotto, Dave; Pike, Rob ; Thompson, Ken ; Trickey, Howard. Plan 9, un sistema distribuido . Proc. Conferencia EurOpen de primavera de 1991. CiteSeerX 10.1.1.41.9192 .
- ^ a b c Pike, R .; Presotto, D .; Thompson, K .; Trickey, H .; Winterbottom, P. "El uso de espacios de nombres en el plan 9" . Bell Labs . Consultado el 26 de febrero de 2016 .
- ^ a b Welch, Brent (1994). "Una comparación de tres arquitecturas de sistemas de archivos distribuidos: Vnode, Sprite y Plan 9". Sistemas informáticos . 7 (2): 175-199. CiteSeerX 10.1.1.46.2817 .
- ^ - Manual del programador de Plan 9 , Volumen 1
- ^ a b c d e f Pereira, Uriel M. (2006). El Espíritu Unix liberado: Plan 9 de Bell Labs ( AVI ) . FOSDEM . Consultado el 2 de diciembre de 2011 . Lay resumen (PDF) .
- ^ a b Minnich, Ron (2005). "Por qué el Plan 9 aún no ha muerto y qué podemos aprender de él" (PDF) . Laboratorio Nacional de Los Alamos . Archivado desde el original (PDF) el 25 de febrero de 2016 . Consultado el 26 de febrero de 2016 .
- ^ a b Valerie, Aurora (25 de marzo de 2009). "Unión de sistemas de archivos: Implementaciones, parte I" . LWN.net . Consultado el 5 de diciembre de 2011 .
- ^ a b Pendry, Jan-Simon; McKusick, Marshall Kirk (1995). Union se monta en 4.4BSD-Lite . Proc. Invierno USENIX Conf.
- ^ a b "Traducción de comandos de UNIX a Plan 9" . Bell Labs . Tecnologías Lucent . Consultado el 2 de diciembre de 2011 .
- ^ Ballesteros, Francisco J. (28 de septiembre de 2007). "Introducción a las abstracciones del sistema operativo usando Plan 9 de Bell Labs" (PDF) . Universidad Rey Juan Carlos . Archivado desde el original (PDF) el 22 de septiembre de 2010.
- ^ Pike, Rob (30 de abril de 2003). "Historia UTF-8" . Consultado el 27 de abril de 2006 .
- ^ Lunde, Ken (enero de 1999). Procesamiento de información CJKV . O'Reilly Media . pag. 466 . ISBN 978-1-56592-224-2. Consultado el 23 de diciembre de 2011 .
- ^ Cox, R .; Grosse, E .; Pike, R .; Presotto, D .; Quinlan, S. "Seguridad en el Plan 9" . Bell Labs . Tecnologías Lucent . Consultado el 26 de febrero de 2016 .
- ^ a b c Hudson, Andrew (19 de julio de 2006). "Investigando el Sistema Operativo Plan 9" . OSNews . Consultado el 31 de diciembre de 2011 .
- ^ a b "Una entrevista con Russ Cox" . La configuración . Utiliza esto. 2011-04-09 . Consultado el 1 de enero de 2012 .
- ^ Dixon, Rod (2004). Ley de software de código abierto . Casa Artech . pag. 213. ISBN 978-1-58053-719-3. Consultado el 25 de diciembre de 2011 .
- ^ Thompson, Ken (febrero de 1992). "Un nuevo compilador de C" (PDF) . Boletín del grupo de usuarios de sistemas UNIX de Australia . Kensington , AU : AUUG . 13 (1): 31–41. ISSN 1035-7521 . Consultado el 25 de diciembre de 2011 .
- ^ Pike, Rob. "Rio: Diseño de un sistema de ventanas concurrentes" (PDF) . Consultado el 8 de marzo de 2013 .
- ^ - Manual del programador de Plan 9 , Volumen 1
- ^ Trickey, Howard. "APE - El entorno ANSI / POSIX" . Bell Labs . Tecnologías Lucent . Consultado el 26 de febrero de 2016 .
- ^ "Emulación de Linux" . Bell Labs . Tecnologías Lucent . Consultado el 26 de febrero de 2016 .
- ^ Ford, Bryan; Cox, Russ (2008). Vx32: Sandboxing ligero a nivel de usuario en x86 . Tecnología anual de USENIX . Conf. págs. 293-306. CiteSeerX 10.1.1.212.9353 .
- ^ Roscoe, Timothy (1995). La estructura de un sistema operativo multiservicio (PDF) (Ph.D.). Universidad de Cambridge. págs. 22-23.
- ^ a b Mirtchovski, Andrey; Simmonds, Rob; Minnich, Ron (2004). Plan 9: un enfoque integrado para la computación en cuadrícula . Proc. 18.o Simposio Internacional de Procesamiento En Paralelo y Distribuido. IEEE. CiteSeerX 10.1.1.97.122 .
- ^ a b "Administrador de ventanas mejorado 2" . suckless.org . Archivado desde el original el 31 de diciembre de 2011 . Consultado el 2 de enero de 2012 .
[wmii] tiene una interfaz de sistema de archivos 9p y es compatible con la gestión de ventanas clásica y en mosaico (similar a acme).
- ^ Torvalds, Linus (1999). "El borde de Linux" . Fuentes abiertas: voces de la revolución de las fuentes abiertas . O'Reilly. ISBN 1-56592-582-3.
- ^ "Glendix: llevando la belleza de Plan 9 a Linux" . Consultado el 1 de diciembre de 2011 .
- ^ "Plan 9 de Gentoo: Plan 9 se encuentra con Gentoo" . Gentoo Linux . Archivado desde el original el 20 de diciembre de 2012 . Consultado el 1 de diciembre de 2011 .
- ^ "El administrador de ventanas de 9wm" . 9wm . Consultado el 2 de enero de 2012 .
9wm es un administrador de ventanas X que intenta emular el administrador de ventanas Plan 9 8-1 / 2 en la medida de lo posible dentro de las restricciones impuestas por X.
- ^ "9grid" . Bell Labs . Tecnologías Lucent . Archivado desde el original el 14 de marzo de 2006 . Consultado el 28 de marzo de 2006 .
- ^ Ballesteros, Francisco J .; Guardiola, Gorka; Soriano, Enrique; Leal Algara, Katia (2005). Los sistemas tradicionales pueden funcionar bien para aplicaciones generalizadas. Un caso de estudio: Plan 9 de Bell Labs se vuelve omnipresente . IEEE Intl 'Conf. sobre Computación y Comunicaciones Pervasivas. CiteSeerX 10.1.1.109.8131 .
- ^ "Vita Nuova suministra Inferno Grid a Evotec OAI" (PDF) (Comunicado de prensa). Vita Nuova . 2004-05-18 . Consultado el 28 de marzo de 2006 .
- ^ "Las bibliotecas de la Universidad de Rutgers instalan Inferno Data Grid" (PDF) (Comunicado de prensa). Vita Nuova . 2004-05-12 . Consultado el 28 de marzo de 2006 .
- ^ "El Departamento de Biología de la Universidad de York instaló Inferno Data Grid de Vita Nuova" (PDF) (Comunicado de prensa). Vita Nuova . 2004-05-04 . Consultado el 28 de marzo de 2006 .
- ^ "plan9front - el frente se cayó" . Consultado el 1 de diciembre de 2011 .
- ^ Hayward, David (9 de mayo de 2013). "Sistemas operativos Raspberry Pi: 5 revisados y calificados" . TechRadar . Archivado desde el original el 7 de junio de 2013 . Consultado el 20 de abril de 2014 .
- ^ "Cómo instalar Plan 9 en una Raspberry Pi" . eLinux . Consultado el 16 de noviembre de 2014 .
- ^ Jurado, Álvaro; Fernández, Rafael; du Colombier, David; Minnich, Ron; Nyrhinen, Aki; Floren, John. Harvey (PDF) . Sesión USENIX ATC BOF.
- ^ "9atom" .
- ^ "9FRONT.ORG EL PLAN SE FALLÓ" .
- ^ "9legado" .
- ^ "Akaros" .
- ^ "Sistema operativo Harvey" .
- ^ "JehanneOS" .
- ^ "NIX" .
- ^ "Plan B" .
- ^ Sharwood, Simon (14 de febrero de 2014). "Plan 9 se mueve fuera del espacio de licencia de Lucent" . TheRegister . Consultado el 20 de abril de 2014 .
enlaces externos
- 9p.io : espejo archivado del sitio web oficial original de Plan 9 en plan9.bell-labs.com
- 9fans : lista de correo semioficial para usuarios y desarrolladores de Plan 9
- Fundación Plan 9