Revelador | Fundación Plan 9, sucesora de los Laboratorios Bell |
---|---|
Escrito en | Dialecto del ANSI C |
Estado de funcionamiento | Actual [3] [4] |
Modelo fuente | Código abierto |
Lanzamiento inicial | 1992 ( 1992 ) (universidades) / 1995 ( 1995 ) (público en general) |
Versión final | Cuarta Edición / 10 de enero de 2015 ( 10-01-2015 ) | [5]
Repositorio | 9p.io/fuentes/plan9/sys [6] |
Objetivo de marketing | Investigación de sistemas operativos, entornos en red, uso general |
Disponible en | Inglés |
Plataformas | x86 / Vx32 , x86-64 , MIPS , DEC Alpha , SPARC , PowerPC , ARM |
Tipo de kernel | Monolítico [7] |
Influenciado por | Investigación Unix , Sistema de computación distribuida de Cambridge [8] |
Interfaz de usuario predeterminada | río / rc |
Licencia | 2021: MIT [9] [10] 2014: Solo GPL-2.0 [11] 2002: LPL-1.02 [12] 2000: Plan 9 OSL [13] [14] [15] [16] |
Sucedido por | Inferno Otros derivados y bifurcaciones |
Sitio web oficial | p9f.org |
Plan 9 de Bell Labs es un sistema operativo distribuido que se originó en el Centro de Investigación de Ciencias de la Computación (CSRC) de Bell Labs a mediados de la década de 1980 y se basó en conceptos UNIX desarrollados allí por primera vez a fines de la década de 1960. Desde el año 2000, Plan 9 es gratuito y de código abierto . El lanzamiento oficial final se realizó a principios de 2015.
Con Plan 9, la metáfora de UNIX de que todo es un archivo se extiende a través de un sistema de archivos centrado en la red , y la E/S basada en terminal y direccionada por cursor en el corazón de los sistemas operativos tipo UNIX se reemplaza por un sistema de ventanas y una interfaz gráfica de usuario sin direccionamiento del 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 de culto de ciencia ficción de Ed Wood de 1957 , Plan 9 from Outer Space . [17] El sistema sigue siendo utilizado y desarrollado por investigadores y aficionados a los sistemas operativos. [18] [19]
Plan 9 de Bell Labs fue desarrollado originalmente, a partir de finales de la década de 1980, [19] por miembros del Centro de Investigación de Ciencias de la Computación de Bell Labs, el mismo grupo que desarrolló originalmente Unix y el lenguaje de programación C. [ 20] El equipo de Plan 9 fue liderado 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. [21]
Plan 9 reemplazó a Unix como la plataforma principal de Bell Labs para la investigación de sistemas operativos. [22] Exploró varios cambios al modelo Unix original que facilitan el uso y la programación del sistema, en particular en entornos multiusuario distribuidos . Después de varios años de desarrollo y uso interno, Bell Labs envió el sistema operativo a universidades en 1992. Tres años más tarde, AT&T puso Plan 9 a disposición de partes comerciales a través de la editorial Harcourt Brace . Con licencias de código fuente que costaban $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. [23]
A principios de 1996, el proyecto Plan 9 había sido "dejado de lado" por AT&T en favor de Inferno , destinado a ser un rival para la plataforma Java de Sun Microsystems . [24] A fines de la década de 1990, el nuevo propietario de Bell Labs, Lucent Technologies, abandonó el soporte comercial para el proyecto y en 2000, se distribuyó una tercera versión bajo una licencia de código abierto . [25] Una cuarta versión bajo una nueva licencia de software libre ocurrió en 2002. [26] A principios de 2015, ocurrió el lanzamiento oficial final de Plan 9. [25]
Una comunidad de usuarios y desarrolladores, que incluía personal actual y anterior de Bell Labs , produjo versiones diarias menores en forma de imágenes ISO . Bell Labs alojó el desarrollo. [27] El árbol de código fuente de desarrollo es accesible a través de los protocolos 9P y HTTP y se utiliza para actualizar las instalaciones existentes. [28] Además de los componentes oficiales del SO incluidos en las ISO, Bell Labs también aloja un repositorio de aplicaciones y herramientas desarrolladas externamente. [29]
A medida que Bell Labs pasó a proyectos posteriores en los últimos años, el desarrollo del sistema oficial Plan 9 se detuvo. El 23 de marzo de 2021, el desarrollo se reanudó tras la transferencia de los derechos de autor de Bell Labs a Plan 9 Foundation. [10] [30] [31] 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 integrado, junto con otras características. [32] [33] Otros sistemas operativos recientes inspirados en Plan 9 incluyen Harvey OS [34] y Jehanne OS. [35]
Fecha | Liberar | Comentario |
---|---|---|
1992 | Plan 9 1ª edición | Lanzado por Bell Labs a las universidades |
1995 | Plan 9 2da edición | Publicado por Bell Labs con fines no comerciales [36] |
2000 | Plan 9 3ra ed. ( Brasil ) | Publicado por Lucent Technologies bajo una licencia de código abierto |
2002 | Plan 9 4ta edición | Lanzado por Lucent Technologies bajo una nueva licencia de software libre |
Plan 9 de Bell Labs es como los cuáqueros : se distingue por su énfasis en la "luz interior", destaca por su sencillez de vida, en particular por su franqueza al hablar. Al igual que los cuáqueros, Plan 9 no hace proselitismo.
—Sape J. Mullender, Pierre G. Jansen.
Tiempo real en un sistema operativo real [37]
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. [38] 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 de computación intensiva. El almacenamiento permanente de datos es proporcionado por hosts de red adicionales que actúan como servidores de archivos y almacenamiento de archivos. [39]
Sus diseñadores afirman que,
[l]os cimientos del sistema se basan en dos ideas: un espacio de nombres por proceso y un protocolo de sistema de archivos simple orientado a mensajes.
— Pike y otros [40]
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 el sistema de archivos; un único 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. [41] [42]
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 cliente en dicho archivo se convierte en comunicación entre 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. Lleva 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 programa servidor 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. 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 obtener notificación de movimientos del mouse y clics de botones, cons , que puede usarse para realizar entrada/salida de texto, y bitblt , cuya escritura realiza operaciones gráficas (ver bit blit ). El sistema de ventanas multiplexa estos dispositivos: al crear una nueva ventana para ejecutar algún programa, primero establece un nuevo espacio de nombres en el que mouse , cons y bitblt están conectados a sí mismo, ocultando los archivos de dispositivo reales a los que él mismo tiene acceso. El sistema de ventanas recibe así todos los comandos de entrada y salida del programa y los maneja apropiadamente, enviando la salida al dispositivo de pantalla real y dando al programa actualmente enfocado la entrada de teclado y mouse. [39] El programa no necesita saber si se está comunicando directamente con los controladores de dispositivo del sistema operativo o con el sistema de ventanas; Sólo 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 depende de los espacios de nombres por proceso, lo que permite que los procesos de cliente y servidor se comuniquen entre máquinas de la manera que se acaba de describir. Por ejemplo, el comando cpu inicia una sesión remota en un servidor de computación. El comando exporta parte de su espacio de nombres local, incluidos los dispositivos de la terminal del usuario ( mouse , cons , bitblt ), al servidor, de modo que los programas remotos puedan realizar entradas y salidas utilizando el mouse, el teclado y la pantalla de la terminal, combinando los efectos del inicio de sesión remoto y un sistema de archivos de red compartido. [39] [40]
Todos los programas que desean proporcionar servicios como archivos a otros programas hablan 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, independiente del medio y orientado a bytes que proporciona mensajes entregados entre un servidor y un cliente. [43] El protocolo se utiliza para hacer referencia y comunicarse con procesos, programas y datos, incluida la interfaz de usuario y la red. [44] Con el lanzamiento de la cuarta edición, se modificó y se renombró 9P2000. [26]
A diferencia de la mayoría de los demás sistemas operativos, Plan 9 no proporciona interfaces de programación de aplicaciones especiales (como los sockets Berkeley , los recursos X o las llamadas al sistema ioctl ) para acceder a los dispositivos. [43] En cambio, los controladores de dispositivos de 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 habituales read y write . En consecuencia, compartir el dispositivo a través de la red se puede lograr montando el árbol de directorios correspondiente en la máquina de destino. [17]
Plan 9 permite al usuario recopilar los archivos (llamados names ) de diferentes árboles de directorios en una única ubicación. El directorio de unión resultante se comporta como la concatenación de los directorios subyacentes (el orden de concatenación se puede controlar); si los directorios constituyentes contienen archivos que tienen el mismo nombre, una lista del directorio de unión ( ls o lc ) simplemente informará los nombres duplicados. [45] La resolución de un único nombre de ruta se realiza de arriba hacia abajo: si los directorios top y bottom se unen en u con top primero, entonces u/name denota top/name si existe, bottom/name solo si existe y top/name no existe , y ningún archivo si ninguno existe. No se realiza una 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. [46]
Se puede crear un directorio de unión mediante una secuencia de comandos de enlace :
enlazar /brazo/bin /binenlazar -a /acme/bin/arm /binenlazar -b /usr/alice/bin /bin
En el ejemplo anterior, /arm/bin se monta en /bin , y el contenido de /arm/bin reemplaza el contenido anterior de /bin . El directorio bin de Acme se monta mediante unión después de /bin , y el directorio bin personal de Alice se monta mediante unión antes. Cuando se solicita un archivo desde /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 generalmente reemplazan la noción de una ruta de búsqueda en el shell. Una variable de entorno path ( $path
) todavía existe en el shell rc (el shell utilizado principalmente en Plan 9); sin embargo, la variable de entorno path de rc convencionalmente solo contiene los /bin
directorios .
y y se desaconseja modificar la variable, en su lugar, agregar comandos adicionales debe hacerse vinculando varios directorios juntos como un solo /bin
. [47] [39] A diferencia de Plan 9, la variable de entorno path de los shells Unix debe configurarse para incluir los directorios adicionales cuyos archivos ejecutables deben agregarse como comandos.
Además, el núcleo puede mantener tablas de montaje separadas para cada proceso, [37] y, por lo tanto, puede proporcionar a cada proceso su propio espacio de nombres de 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 tengan espacios de nombres heterogéneos. [40] Los espacios de nombres se pueden utilizar para crear un entorno aislado similar a chroot , pero de una manera más segura. [43]
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 , [45] aunque los desarrolladores de la facilidad de montaje de unión de BSD encontraron que la fusión no recursiva de directorios en Plan 9 era "demasiado restrictiva para un uso de propósito general". [46]
En lugar de tener llamadas de sistema específicamente para la gestión de procesos , Plan 9 ofrece el sistema de archivos /proc . Cada proceso aparece como un directorio que contiene información y archivos de control que pueden manipularse mediante las llamadas de sistema de E/S de archivos habituales. [8]
El enfoque del sistema de archivos permite que los procesos de Plan 9 se administren con herramientas de administración de archivos simples como ls y cat ; sin embargo, los procesos no se pueden copiar ni mover como archivos. [8]
Plan 9 no tiene llamadas de sistema especializadas ni ioctls para acceder a la pila de red o al hardware de red. En su lugar, se utiliza el sistema de archivos /net . Las conexiones de red se controlan mediante la lectura y escritura de mensajes de control en los archivos de control. Los subdirectorios como /net/tcp y /net/udp se utilizan como interfaz para sus respectivos protocolos. [8]
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/IEC 10646-1:1993 . Ken Thompson inventó UTF-8, que se convirtió en la codificación nativa en Plan 9. Todo el sistema se convirtió para uso general en 1992. [49] UTF-8 conserva la compatibilidad con las cadenas tradicionales terminadas en nulo , lo que permite un procesamiento de información más confiable y el 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. [50]
Aunque interesantes por sí solos, se suponía que los conceptos de diseño de Plan 9 serían 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 el árbol de directorios /net del enrutador con su propio /net . De manera similar, se puede implementar una red privada virtual (VPN) superponiendo en un directorio de unión una jerarquía /net desde una puerta de enlace remota , utilizando 9P seguro sobre Internet público. Se puede utilizar un directorio de unión con la jerarquía /net y filtros para aislar una aplicación no confiable o para implementar un firewall . [43] De la misma manera, se puede componer una red informática distribuida con un directorio de unión de jerarquías /proc desde hosts remotos, lo que permite interactuar con ellos como si fueran locales.
Cuando se utilizan juntas, estas características permiten ensamblar un entorno informático distribuido complejo reutilizando el sistema de nombres jerárquico existente. [8]
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 de Plan 9).
Factotum es un servidor de autenticación y gestión de claves para Plan 9. Se encarga de la autenticación en nombre de otros programas, de modo que tanto las claves secretas como los detalles de implementación solo deben ser conocidos por Factotum. [51]
A diferencia de Unix , Plan 9 fue diseñado con gráficos en mente. [44] Después del arranque, una terminal de Plan 9 ejecutará el sistema de ventanas rio , en el que el usuario puede crear nuevas ventanas que muestren rc . [52] Los programas gráficos invocados desde este shell lo reemplazan en su ventana.
El fontanero proporciona un mecanismo de comunicación entre procesos que permite la hiperconexión en todo el sistema.
Sam y Acme son los editores de texto de Plan 9. [53]
Plan 9 es compatible con los sistemas de archivos Kfs, Paq, Cwfs, FAT y Fossil . Este último fue diseñado en Bell Labs específicamente para Plan 9 y ofrece capacidad de almacenamiento de instantáneas. Se puede utilizar directamente con un disco duro o respaldado con Venti , un sistema de archivos de archivo y un sistema de almacenamiento de datos permanente.
El paquete de distribución de Plan 9 incluye variantes especiales del compilador 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. [54] La mayor parte del sistema está escrito en un dialecto de C ( ANSI C con algunas extensiones y otras características omitidas). Los compiladores para este lenguaje fueron creados a medida teniendo en mente la portabilidad; según su autor, "compilan rápidamente, cargan lentamente y producen código objeto de calidad media". [55]
Un lenguaje de programación concurrente llamado Alef estaba disponible en las dos primeras ediciones, pero luego fue abandonado por razones de mantenimiento y reemplazado por una biblioteca de subprocesos para C. [56] [57]
Aunque se suponía que Plan 9 sería 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 sus contrapartes de Unix, pero funcionan de manera diferente. [48]
Plan 9 puede soportar aplicaciones POSIX y puede emular la interfaz de socket de 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 se ajustan a ninguno de los estándares). También incluye un shell compatible con POSIX. Los autores de APE afirman haberlo utilizado para portar el sistema X Window (X11) a Plan 9, aunque no incluyen X11 "porque soportarlo adecuadamente es un trabajo demasiado grande". [58] Algunos binarios de Linux se pueden utilizar con la ayuda de una aplicación "linuxemu" (emulador de Linux); sin embargo, todavía es un trabajo en progreso. [59] Viceversa, la máquina virtual Vx32 permite que un núcleo de Plan 9 ligeramente modificado se ejecute como un proceso de usuario en Linux, lo que admite programas de Plan 9 sin modificar. [60]
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, y demostraron que el código fuente de una versión mínima ("que funcionaba, aunque no era muy útil") era menos de una quinta parte del tamaño de un microkernel Mach sin ningún controlador de dispositivo (5899 o 4622 líneas de código para Plan 9, dependiendo de la métrica, frente a 25530 líneas). El núcleo completo comprendía 18000 líneas de código. [39] (Según un recuento de 2006, el núcleo tenía entonces unas 150.000 líneas, pero esto se comparó con más de 4,8 millones en Linux . [43] )
Dentro de la comunidad de investigación de sistemas operativos, así como en el mundo comercial de Unix, se hicieron otros intentos de lograr computación distribuida y acceso remoto al sistema de archivos 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 en el sentido de que no admite el acceso remoto a dispositivos y la comunicación remota entre procesos de manera limpia, aunque podría haberlo hecho, si los sockets de dominio UNIX preexistentes (que "esencialmente se pueden usar para nombrar servidores a nivel de usuario") se hubieran integrado con la arquitectura vnode. [41]
Una crítica al diseño de comunicación por mensaje de texto "todo es un archivo" de Plan 9 señaló las limitaciones de este paradigma en comparación con las interfaces tipificadas del sistema operativo orientado a objetos de Sun , Spring :
Plan 9 obliga a que todo 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 en un descriptor de archivo. Esto es difícil de especificar y documentar, y prohíbe cualquier comprobación automática de tipos , excepto en el caso de errores de archivo en tiempo de ejecución. (...) [U]na ruta relativa 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, mucho menos a través de redes. En cambio, la comunicación tiene que depender de convenciones, que son propensas a errores y no escalables.
— Roscoe; énfasis en el original. [61]
Una comparación retrospectiva posterior de Plan 9, Sprite y un tercer sistema operativo de investigación distribuida contemporáneo, Amoeba , encontró que
Los entornos que construyen [Amoeba y Sprite] están estrechamente acoplados dentro del SO, lo que dificulta la comunicación con servicios externos. Estos sistemas sufren el abandono radical del modelo UNIX, que también desalienta la portabilidad de software ya existente a la plataforma (...). La falta de desarrolladores, la gama muy pequeña de hardware compatible y la pequeña base de usuarios, incluso en comparación con Plan 9, también han ralentizado significativamente la adopción de esos sistemas (...). En retrospectiva, Plan 9 fue el único SO distribuido de investigación de esa época que logró atraer a los desarrolladores y ser utilizado en proyectos comerciales durante el tiempo suficiente como para justificar su supervivencia hasta el día de hoy.
— Mirtchovski, Simmonds y Minnich [62]
Plan 9 demostró que un concepto integral de Unix (que cada interfaz del sistema podía representarse como un conjunto de archivos) podía implementarse con éxito en un sistema distribuido moderno. [52] 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 tipo Unix como Linux han implementado 9P2000, el protocolo de Plan 9 para acceder a archivos remotos, y han adoptado características de rfork , el mecanismo de creación de procesos de Plan 9. [64] Además, en Plan 9 from User Space , varias de las aplicaciones y herramientas de Plan 9, incluidos los editores sam y acme, se han portado 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 núcleo Linux con los programas del sistema operativo Plan 9. [65] [66] El administrador de ventanas 9wm se inspiró en 8½ , el antiguo sistema de ventanas de Plan 9; [67] wmii también está muy influenciado por Plan 9. [63] En la investigación informática, Plan 9 se ha utilizado como plataforma de computación en red [68] [62] y como vehículo para la investigación de la computación ubicua sin middleware . [69] En el comercio, 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 fracasó simplemente porque no logró ser una mejora lo suficientemente convincente de Unix como para desplazar a su antecesor. Comparado con Plan 9, Unix cruje, hace ruido y tiene manchas de óxido evidentes, pero hace bien su trabajo lo suficiente 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 es lo suficientemente buena.
— Eric S. Raymond [17]
Otros factores que contribuyeron a la baja adopción de 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 . [52] [53]
Los promotores y desarrolladores de Plan 9 afirman que los problemas que obstaculizaban 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 de Plan 9 a otros sistemas como parte alojada de redes informáticas heterogéneas. [70] [71] [72]
Varios proyectos trabajan para extender Plan 9, incluyendo 9atom y 9front. Estas bifurcaciones aumentan Plan 9 con controladores de hardware y software adicionales, incluyendo una versión mejorada del sistema de correo electrónico Upas , el compilador Go , soporte del sistema de control de versiones Mercurial (y ahora también una implementación git), y otros programas. [19] [73] Plan 9 fue portado a la computadora de placa única Raspberry Pi . [74] [75] El proyecto Harvey intenta reemplazar el compilador C personalizado de Plan 9 con GCC , para aprovechar las herramientas de desarrollo modernas como GitHub y Coverity , y acelerar el desarrollo. [76]
Desde la versión 1903 de Windows 10 , el Subsistema de Windows para Linux implementa el Protocolo de sistema de archivos Plan 9 como servidor y el sistema operativo host Windows actúa como cliente. [77]
A partir del lanzamiento de la cuarta edición en abril de 2002, [26] el código fuente completo de Plan 9 de Bell Labs está disponible gratuitamente bajo la Licencia Pública Lucent 1.02, que se considera una licencia de código abierto por la Open Source Initiative (OSI), una licencia de software libre por la Free Software Foundation , y pasa las Directrices de Software Libre de Debian . [43]
En febrero de 2014, la Universidad de California, Berkeley , recibió autorización del actual titular de los derechos de autor de Plan 9 , Alcatel-Lucent , para publicar todo el software de Plan 9 anteriormente regido por la Licencia Pública de Lucent, Versión 1.02, solo bajo la GPL-2.0 . [92]
El 23 de marzo de 2021, la propiedad de Plan 9 se transfirió de Bell Labs a Plan 9 Foundation, [93] y todas las versiones anteriores han sido licenciadas nuevamente bajo la Licencia MIT . [10]
Sábado 10 de enero 04:04:55 EST 2015 ... plan9.iso.bz2
Alcatel-Lucent ha autorizado a la Universidad de California, Berkeley, a publicar todo el software de Plan 9 que anteriormente se regía por la Licencia Pública de Lucent, Versión 1.02, bajo la Licencia Pública General de GNU, Versión 2.
{{cite book}}
: |work=
ignorado ( ayuda ) (PDF);[wmii] tiene una interfaz de sistema de archivos 9p y admite la gestión de ventanas clásica y en mosaico (similar a acme).
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 limitaciones impuestas por X.
{{cite web}}
: CS1 maint: URL no apta ( enlace )