stringtranslate.com

Plan 9 de Bell Labs

Plan 9 de Bell Labs es un sistema operativo distribuido que se originó en el Computing Science Research Center (CSRC) de Bell Labs a mediados de la década de 1980 y se basó en conceptos UNIX desarrollados allí por primera vez a finales de la década de 1960. Desde el año 2000, Plan 9 es gratuito y de código abierto . El lanzamiento oficial final fue a principios de 2015.

Según el Plan 9, la metáfora de todo es un archivo de UNIX se extiende a través de un omnipresente sistema de archivos centrado en la red , y la E/S basada en terminal y dirigida por el cursor en el corazón de los sistemas operativos tipo UNIX es reemplazada por un sistema de ventanas y un usuario gráfico. 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 1957 de Ed Wood, Plan 9 del espacio exterior . [17] El sistema sigue siendo utilizado y desarrollado por investigadores y aficionados a los sistemas operativos. [18] [19]

Historia

Captura de pantalla de la instalación del Plan 9

El 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 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 Informáticas. 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 en el modelo Unix original que facilitan el uso y la programación del sistema, especialmente en entornos distribuidos multiusuario . 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 Plan 9 a disposición de partes comerciales a través de la editorial de libros Harcourt Brace . Con licencias originales que costaban 350 dólares, 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 en un segundo plano" por AT&T en favor de Inferno , destinado a ser un rival de la plataforma Java de Sun Microsystems . [24] A finales de la década de 1990, el nuevo propietario de Bell Labs, Lucent Technologies, abandonó el apoyo comercial al proyecto y, en 2000, se distribuyó una tercera versión bajo una licencia de código abierto . [25] En 2002 se produjo un cuarto lanzamiento bajo una nueva licencia de software libre. [26] A principios de 2015, se produjo el lanzamiento oficial final del Plan 9. [25]

Una comunidad de usuarios y desarrolladores, incluido personal actual y anterior de Bell Labs , produjo publicaciones diarias menores en forma de imágenes ISO . Bell Labs acogió el desarrollo. [27] 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. [28] Además de los componentes oficiales del sistema operativo incluidos en las ISO, Bell Labs también alberga 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 derechos de autor de Bell Labs a la Fundación Plan 9. [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 controladores de Wi-Fi , controladores de audio, compatibilidad con USB y un emulador de juegos integrado, junto con otras características. [32] [33] Otros sistemas operativos recientes inspirados en el Plan 9 incluyen Harvey OS [34] y Jehanne OS. [35]

Conceptos de diseño

El Plan 9 de Bell Labs es como los cuáqueros : se distingue por su énfasis en la "luz interior", destaca por la simplicidad de la vida, en particular por la sencillez del habla. Al igual que los cuáqueros, el 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 separadas geográficamente 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 lo proporcionan hosts de red adicionales que actúan como servidores de archivos y almacenamiento de archivos. [39]

Sus diseñadores afirman que,

[l]as bases 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 cols. [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 del cliente en dicho archivo se convierte en comunicación entre procesos entre los dos procesos. De esta manera, el Plan 9 generaliza la noción Unix del sistema de archivos como punto central de acceso a los recursos informáticos. Mantiene 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½, aprovechó estas posibilidades de la siguiente manera. El Plan 9 representa la interfaz de usuario en una terminal mediante tres pseudoarchivos: mouse , que puede ser leído por un programa para recibir notificaciones de los movimientos del mouse y clics de botones, cons , que puede usarse para realizar entrada/salida de texto, 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 mouse , cons y bitblt están conectados a sí mismo, ocultando los archivos reales del dispositivo a los que tiene acceso. Por lo tanto, el sistema de ventanas recibe todos los comandos de entrada y salida del programa y los maneja adecuadamente, enviando la salida al dispositivo de pantalla real y dándole al programa actualmente enfocado la entrada del teclado y el 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 se basa en 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 informático. El comando exporta parte de su espacio de nombres local, incluidos los dispositivos del terminal del usuario ( mouse , cons , bitblt ), al servidor, de modo que los programas remotos puedan realizar entradas/salidas utilizando 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. [39] [40]

protocolo 9P

Todos los programas que desean 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, independiente del medio y orientado a bytes que proporciona mensajes entregados entre un servidor y un cliente. [43] El protocolo se utiliza para referirse y comunicarse con procesos, programas y datos, incluida tanto la interfaz de usuario como la red. [44] Con el lanzamiento de la cuarta edición, fue modificado y rebautizado como 9P2000. [26]

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. [43] En cambio, los controladores de dispositivos Plan 9 implementan su interfaz de control como un sistema de archivos, de modo que se puede acceder al hardware mediante operaciones ordinarias de entrada/salida de archivos, 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. [17]

Directorios y espacios de nombres de unión

El 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 la concatenación); si los directorios constituyentes contienen archivos que tienen el mismo nombre, un listado del directorio de unión ( ls o lc ) simplemente informará nombres duplicados. [45] La resolución de un solo nombre de ruta se realiza de arriba hacia abajo: si los directorios superior e inferior están unidos en u con superior primero, entonces u/nombre denota superior/nombre si existe, inferior/nombre solo si existe y superior /nombre no existe y ningún archivo si ninguno existe. No se realiza ninguna unión recursiva de subdirectorios, por lo que si top/subdir existe, no se puede acceder a los archivos en bottom/subdir a través de la unión. [46]

Se puede crear un directorio de unión usando el comando bind :

; enlazar /brazo/bin /bin; enlazar -a /acme/bin/arm /bin; enlazar -b /usr/alice/bin /bin

En el ejemplo anterior, /arm/bin está montado en /bin , y el contenido de /arm/bin reemplaza el contenido anterior de /bin . El directorio bin de Acme se monta en unión después de /bin y el directorio bin personal de Alice se monta en 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 .

Por lo tanto, los espacios de nombres de procesos separados generalmente reemplazan la noción de una ruta de búsqueda en el shell. $pathTodavía existe una variable de entorno de ruta ( ) en el shell rc (el shell utilizado principalmente en el Plan 9); sin embargo, la variable de entorno de ruta de rc convencionalmente solo contiene los directorios /biny .y no se recomienda modificar la variable; en su lugar, se deben agregar comandos adicionales uniendo varios directorios como un solo archivo /bin. [47] [39] A diferencia del Plan 9, la variable de entorno de ruta de los shells de Unix debe configurarse para incluir los directorios adicionales cuyos archivos ejecutables deben agregarse como comandos.

Además, el kernel 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 tienen 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 directorios de unión de Plan 9 inspiró las implementaciones de sistemas de archivos de unión de 4.4BSD y Linux , [45] 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 general". [46]

Sistema de archivos virtual especial

/proceso

Listado de procesos con contenido de lista del comando de directorio (ls, lc) [48] en /proc

En lugar de tener llamadas al sistema específicamente para la gestión de procesos , Plan 9 proporciona el sistema de archivos /proc . Cada proceso aparece como un directorio que contiene información y archivos de control que pueden ser manipulados mediante llamadas ordinarias al sistema IO de archivos. [8]

El enfoque del sistema de archivos permite que los procesos del Plan 9 se administren con herramientas simples de administración de archivos como ls y cat ; sin embargo, los procesos no se pueden copiar ni mover como archivos. [8]

/neto

Plan 9 no tiene llamadas al 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 leyendo y escribiendo mensajes de control en archivos de control. Los subdirectorios como /net/tcp y /net/udp se utilizan como interfaz para sus respectivos protocolos. [8]

Unicódigo

Para reducir la complejidad de administrar 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 preserva la compatibilidad con versiones anteriores de las 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 canalizaciones 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]

Combinando los conceptos de diseño.

Aunque interesantes por sí solos, se suponía que los conceptos de diseño del Plan 9 serían más útiles cuando se combinaran. 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 a través de Internet público. Se puede utilizar un directorio de unión con la jerarquía /net y filtros para proteger una aplicación que no es de confianza o para implementar un firewall . [43] De la misma manera, una red informática distribuida puede estar compuesta con un directorio de unión de jerarquías /proc 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. [8]

Software para el Plan 9

Como beneficio del diseño del sistema, la mayoría de las tareas del 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 Plan 9. Maneja la autenticación en nombre de otros programas, de modo que Factotum solo necesita conocer tanto las claves secretas como los detalles de implementación. [51]

Programas gráficos

Plan 9 ejecutando acme y rc

A diferencia de Unix , Plan 9 fue diseñado teniendo en cuenta los gráficos. [44] Después del arranque, una terminal 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 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. [53]

Sistema de almacenamiento

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 proporciona capacidad de almacenamiento de instantáneas. Puede usarse directamente con un disco duro o respaldarse con Venti , un sistema de archivos de archivo y un sistema de almacenamiento de datos permanente.

Desarrollo de software

El paquete de distribución de Plan 9 incluye variantes de compilador y lenguajes de programación especiales, y proporciona un conjunto personalizado de bibliotecas junto con un sistema de interfaz de usuario de 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 algunas otras características omitidas). Los compiladores de este lenguaje se crearon a medida teniendo en cuenta la portabilidad; según su autor, "se compilan rápidamente, se cargan lentamente y producen código objeto de calidad media". [55]

Un lenguaje de programación concurrente llamado Alef estuvo disponible en las dos primeras ediciones, pero luego se eliminó por razones de mantenimiento y se reemplazó por una biblioteca de subprocesos para C. [56] [57]

Compatibilidad Unix

Aunque se suponía que el Plan 9 sería un mayor desarrollo 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 del Plan 9 comparten los nombres de sus contrapartes de Unix, pero funcionan de manera diferente. [48]

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 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) al Plan 9, aunque no envían 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 kernel Plan 9 ligeramente modificado se ejecute como un proceso de usuario en Linux, soportando programas Plan 9 no modificados. [60]

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 para 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 18.000 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 compara con los más de 4,8 millones de Linux . [43] )

Dentro de la comunidad de investigación de sistemas operativos, así como en el mundo comercial Unix, se realizaron otros intentos de lograr computación distribuida y acceso remoto al sistema de archivos al mismo tiempo que el esfuerzo de diseño del Plan 9. Estos incluían el Network File System 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 SunOS vnode 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 haber tenido los sockets de dominio UNIX preexistentes (que " esencialmente se puede utilizar para nombrar servidores a nivel de usuario") se ha integrado con la arquitectura vnode. [41]

Una crítica al diseño de comunicación por mensaje textual "todo es un archivo" del 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 limita 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 en un descriptor de archivo. Esto es difícil de especificar y documentar, y prohíbe cualquier verificación automática de tipos , excepto errores de archivos 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. Sólo se puede vincular un nombre a un objeto dando un nombre existente para el objeto, en el mismo contexto que el nuevo nombre. Como tal, las referencias a interfaces simplemente no se pueden pasar entre procesos, y mucho menos entre redes. En cambio, la comunicación tiene que basarse en convenciones, que son propensas a errores y no escalan.

—Roscoe  ; énfasis en el original. [61]

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 construyen [Amoeba y Sprite] están estrechamente acoplados dentro del sistema operativo, lo que dificulta la comunicación con servicios externos. Estos sistemas sufren una desviación radical del modelo UNIX, que también desalienta la portabilidad del software ya existente a la plataforma (...). La falta de desarrolladores, la muy pequeña gama de hardware compatible y la pequeña base de usuarios, incluso en comparación con el Plan 9, también han ralentizado significativamente la adopción de estos sistemas (...). En retrospectiva, Plan 9 fue el único sistema operativo distribuido de investigación de esa época 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 [62]

Impacto

El administrador de ventanas wmii X se inspiró en acme , un editor de texto del proyecto Plan 9. [63]

El 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. [52] Algunas características del 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 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. [65] [66] El administrador de ventanas 9wm se inspiró en 8½ , el sistema de ventanas más antiguo del Plan 9; [67] wmii también está fuertemente influenciado por Plan 9. [63] En la investigación en informática, Plan 9 se ha utilizado como una plataforma de computación grid [68] [62] y como vehículo para la investigación de computación ubicua sin middleware . [69] En el comercio, el Plan 9 subyace a los sistemas de almacenamiento de Coraid . Sin embargo, Plan 9 nunca se ha acercado en popularidad a Unix y ha sido principalmente una herramienta de investigación:

[E]s parece que el Plan 9 fracasó simplemente porque no llegó a ser una mejora lo suficientemente convincente en Unix como para desplazar a su antepasado. En comparación con el Plan 9, Unix cruje 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 [17]

Otros factores que contribuyeron a la baja adopción del Plan 9 incluyen la falta de respaldo comercial, la baja cantidad de aplicaciones de usuario final y la falta de controladores de dispositivos . [52] [53]

Los defensores 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 necesaria ] Inferno , a través de sus capacidades alojadas, ha sido un vehículo para llevar las tecnologías del Plan 9 a otros sistemas como una parte alojada de redes informáticas heterogéneas. [70] [71] [72]

Varios proyectos trabajan para ampliar el Plan 9, incluidos 9atom y 9front. Estas bifurcaciones aumentan Plan 9 con controladores de hardware y software adicionales, incluida una versión mejorada del sistema de correo electrónico Upas , el compilador Go , soporte para el sistema de control de versiones Mercurial (y ahora también una implementación de git) y otros programas. [19] [73] El Plan 9 se transfirió a la computadora de placa única Raspberry Pi . [74] [75] El proyecto Harvey intenta reemplazar el compilador personalizado Plan 9 C con GCC , para aprovechar herramientas de desarrollo modernas como GitHub y Coverity , y acelerar el desarrollo. [76]

Desde Windows 10 versión 1903 , el subsistema de Windows para Linux implementa el protocolo del sistema de archivos Plan 9 como servidor y el sistema operativo Windows host actúa como cliente. [77]

Derivados y bifurcaciones

Licencia

A partir del lanzamiento de la cuarta edición en abril de 2002, [26] el código fuente completo del Plan 9 de Bell Labs está disponible gratuitamente bajo la Licencia Pública Lucent 1.02, que la Open Source Initiative (OSI) considera una licencia de código abierto. ), licencia de software libre otorgada 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ó la autorización del actual titular de los derechos de autor del Plan 9 , Alcatel-Lucent , para publicar todo el software del Plan 9 anteriormente regido por la licencia pública de Lucent, versión 1.02, únicamente bajo la GPL-2.0 . [92]

El 23 de marzo de 2021, la propiedad del Plan 9 se transfirió de Bell Labs a la Fundación Plan 9, [93] y todas las versiones anteriores volvieron a tener la licencia MIT . [10]

Ver también

Referencias

  1. ^ "Plan 9 de Bell Labs".
  2. ^ Tecnologías Lucent (2006). "Glenda, la conejita del Plan 9" . Consultado el 2 de diciembre de 2008 .
  3. ^ "Fundación Plan 9: Actividades". plan9foundation.org . Consultado el 23 de marzo de 2021 .
  4. ^ "9legado". 9legacy.org . Consultado el 23 de marzo de 2021 .
  5. ^ "plan9sumas de comprobación". Laboratorios Bell. 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
  6. ^ "Código fuente GPLv2".
  7. ^ Crawford, Diane (1999). "Foro". Comunicaciones de la ACM . Asociación de Maquinaria de Computación (ACM). 42 (8): 11-15. doi :10.1145/310930.310939. ISSN  0001-0782. S2CID  263897745.
  8. ^ abcde Pike, R .; Presotto, D.; Dorward, S.; Flandrena, B.; Thompson, K .; Trickey, H.; Winterbottom, P. "Plan 9 de Bell Labs". Laboratorios Bell . Tecnologías Lucent . Consultado el 26 de febrero de 2016 .
  9. ^ "Licencia del Plan 9". p9f.org . Archivado desde el original el 14 de junio de 2021 . Consultado el 14 de junio de 2021 .
  10. ^ "Plan9Licencia". akaros.cs.berkeley.edu . Archivado desde el original el 13 de febrero de 2014 . Consultado el 14 de junio de 2021 . Alcatel-Lucent ha autorizado a la Universidad de California, Berkeley, a publicar todo el software Plan 9 anteriormente regido por la licencia pública de Lucent, versión 1.02, bajo la licencia pública general GNU, versión 2.
  11. ^ "Licencia pública de Lucent versión 1.02". plan9.bell-labs.com . Archivado desde el original el 3 de octubre de 2003 . Consultado el 14 de junio de 2021 .
  12. ^ "Licencia de código abierto del Plan 9 - Versión 1.4 - 10/09/02". plan9.bell-labs.com . Archivado desde el original el 18 de diciembre de 2002 . Consultado el 14 de junio de 2021 .
  13. ^ "Licencia de código abierto del Plan 9 - Versión 1.2 - 29/10/00". plan9.bell-labs.com . Archivado desde el original el 6 de diciembre de 2000 . Consultado el 14 de junio de 2021 .
  14. ^ "Licencia de código abierto del Plan 9 - Versión 1.1 - 20/09/00". plan9.bell-labs.com . Archivado desde el original el 26 de octubre de 2000 . Consultado el 14 de junio de 2021 .
  15. ^ "Acuerdo de licencia de código abierto del Plan 9". plan9.bell-labs.com . Archivado desde el original el 16 de agosto de 2000 . Consultado el 14 de junio de 2021 .
  16. ^ abc Raymond, Eric S. (17 de septiembre de 2003). "Plan 9: cómo era el futuro". El arte de la programación UNIX . Addison-Wesley . ISBN 0-13-142901-9. Consultado el 7 de mayo de 2007 .
  17. ^ Robertson, James (16 de julio de 2011). "El plan 9 se bifurcó, continúa como 9front". OSNoticias . Consultado el 31 de diciembre de 2011 .
  18. ^ a b C "9 átomo". Archivado desde el original el 26 de julio de 2013 . Consultado el 11 de noviembre de 2011 .
  19. ^ "De los inventores del sistema UNIX llega el Plan 9 de Bell Labs" (Presione soltar). Tecnologías Lucent. 1995-07-18. Archivado desde el original el 9 de febrero de 2006.
  20. ^ McIlroy, Doug (marzo de 1995). "Prefacio". Laboratorios Bell (2ª ed.). Tecnologías Lucent . Consultado el 26 de febrero de 2016 .
  21. ^ Probado, Liam (29 de marzo de 2022). "El extraño mundo de los sistemas operativos que no son C". www.theregister.com . Consultado el 1 de septiembre de 2022 .
  22. ^ Lee, Yvonne L. (24 de julio de 1995). "AT&T Bell Labs envía el sistema operativo Plan 9 para sistemas integrados". InfoMundo .
  23. ^ Pontin, Jason (19 de febrero de 1996). "AT&T revela planes para el competidor de Java". InfoMundo . pag. 3.
  24. ^ ab "Bell Labs: una guía completa: historia, productos, fundación y más". Historia-Computadora . 2021-11-14 . Consultado el 1 de septiembre de 2022 .
  25. ^ abc Loli-Queru, Eugenia (29 de abril de 2002). "Bell Labs lanza una nueva versión del Plan 9". OSNoticias . Consultado el 31 de diciembre de 2011 .
  26. ^ "Cómo contribuir". Laboratorios Bell . Tecnologías Lucent . Consultado el 30 de noviembre de 2011 .
  27. ^ "Mantenerse actualizado". Laboratorios Bell . Tecnologías Lucent . Consultado el 24 de julio de 2019 .
  28. ^ "Plan 9: software adicional". 2009 . Consultado el 6 de marzo de 2016 .
  29. ^ Weldon, Marcus (23 de marzo de 2021). "¡Plan 9 de Bell Labs en el ciberespacio!". Laboratorios Nokia Bell . Consultado el 23 de marzo de 2021 .
  30. ^ Sharwood, Simón. "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 .
  31. ^ "FQA 1 - Introducción a 9front". fqa.9front.org . Consultado el 15 de febrero de 2018 .
  32. ^ Probado, Liam. "Lanzada la nueva versión del Plan 9 fork 9front". El registro . Consultado el 5 de noviembre de 2022 .
  33. ^ "SO Harvey". harvey-os.org . Consultado el 15 de febrero de 2018 .
  34. ^ "Jehanne". jehanne.h--k.it/ . Consultado el 8 de enero de 2023 .
  35. ^ "Anuncio del primer lanzamiento al público en general". 9 aficionados. 1995-07-16. Archivado desde el original el 6 de julio de 2008.
  36. ^ ab 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 homenaje a Roger Needham . Springer Ciencia + Medios comerciales . pag. 211.ISBN _ 978-0-387-20170-2. Consultado el 24 de diciembre de 2011 .
  37. ^ Hancock, Brian (2003). "Reinventar Unix: una introducción al sistema operativo Plan 9". Biblioteca de alta tecnología . MCB ARRIBA. 21 (4): 471–76. doi :10.1108/07378830310509772.
  38. ^ abcdePresotto , Dave; Pike, Rob ; Thompson, Ken ; Trickey, Howard. Plan 9, Un sistema distribuido . Proc. Primavera de 1991 Conferencia EurOpen. CiteSeerX 10.1.1.41.9192 . 
  39. ^ abc Pike, R .; Presotto, D.; Thompson, K .; Trickey, H.; Winterbottom, P. "El uso de espacios de nombres en el Plan 9". Laboratorios Bell . Consultado el 26 de febrero de 2016 .
  40. ^ ab Welch, Brent (1994). "Una comparación de tres arquitecturas de sistemas de archivos distribuidos: Vnode, Sprite y Plan 9". Sistemas Computacionales . 7 (2): 175–199. CiteSeerX 10.1.1.46.2817 . 
  41. ^ namespace(4)  - Manual del programador del Plan 9, volumen 1
  42. ^ abcdef Pereira, Uriel M. (2006). El Unix Spirit liberado: Plan 9 de Bell Labs ( AVI ) . FOSDEM . Consultado el 2 de diciembre de 2011 .
    • Uriel. "El Unix Spirit liberado: Plan 9 de Bell Labs" (PDF) . Laboratorios Bell . Archivado desde el original (PDF) el 28 de noviembre de 2007 . Consultado el 14 de noviembre de 2007 .
  43. ^ ab Minnich, Ron (2005). "Por qué el Plan 9 aún no ha muerto y qué podemos aprender de él" (PDF) . Laboratorio Nacional de Los Álamos . Archivado desde el original (PDF) el 25 de febrero de 2016 . Consultado el 26 de febrero de 2016 .
  44. ^ ab Valerie, Aurora (25 de marzo de 2009). "Sistemas de archivos de la Unión: Implementaciones, parte I". LWN.net . Consultado el 5 de diciembre de 2011 .
  45. ^ ab Pendry, Jan-Simon; McKusick, Marshall Kirk (1995). Montajes de unión en 4.4BSD-Lite. Proc. Conf. USENIX de invierno .
  46. ^ Duff, Tom. "18". Rc - El caparazón del Plan 9. {{cite book}}: |work=ignorado ( ayuda ) (PDF);
  47. ^ ab "Traducción de comandos de UNIX a Plan 9". Laboratorios Bell . Tecnologías Lucent . Consultado el 2 de diciembre de 2011 .
  48. ^ Pike, Rob (30 de abril de 2003). "Historia de UTF-8" . Consultado el 27 de abril de 2006 .
  49. ^ Lunde, Ken (enero de 1999). Procesamiento de información CJKV . Medios O'Reilly . pag. 466.ISBN _ 978-1-56592-224-2. Consultado el 23 de diciembre de 2011 .
  50. ^ Cox, R.; Grosse, E.; Pike, R .; Presotto, D.; Quinlan, S. "Seguridad en el Plan 9". Laboratorios Bell . Tecnologías Lucent . Consultado el 26 de febrero de 2016 .
  51. ^ abc Hudson, Andrew (19 de julio de 2006). "Investigando el sistema operativo del Plan 9". OSNoticias . Consultado el 31 de diciembre de 2011 .
  52. ^ ab "Una entrevista con Russ Cox". La puesta en marcha . Usa esto. 2011-04-09. Archivado desde el original el 28 de diciembre de 2011 . Consultado el 1 de enero de 2012 .
  53. ^ Dixon, varilla (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 .
  54. ^ Thompson, Ken (febrero de 1992). "Un nuevo compilador de C" (PDF) . Boletín del grupo australiano de usuarios de sistemas UNIX . Kensington , Australia : AUUG . 13 (1): 31–41. ISSN  1035-7521 . Consultado el 25 de diciembre de 2011 .
  55. ^ Lucio, Rob. "Rio: Diseño de un sistema de ventanas concurrentes" (PDF) . Consultado el 8 de marzo de 2013 .
  56. ^ thread(2)  - Manual del programador del Plan 9, volumen 1
  57. ^ Truco, Howard. "APE - El entorno ANSI/POSIX". Laboratorios Bell . Tecnologías Lucent . Consultado el 26 de febrero de 2016 .
  58. ^ "Emulación de Linux". Laboratorios Bell . Tecnologías Lucent . Consultado el 26 de febrero de 2016 .
  59. ^ Ford, Bryan; Cox, Russ (2008). Vx32: Sandboxing liviano a nivel de usuario en x86. Tecnología anual USENIX . Conf. págs. 293–306. CiteSeerX 10.1.1.212.9353 . 
  60. ^ Roscoe, Timoteo (1995). La estructura de un sistema operativo multiservicio (PDF) (Doctor.). Universidad de Cambridge. págs. 22-23.
  61. ^ ab Mirtchovski, Andrey; Simmonds, Rob; Minnich, Ron (2004). Plan 9: un enfoque integrado para la computación grid . Proc. 18º Simposio Internacional de Procesamiento Distribuido y Paralelo. IEEE. CiteSeerX 10.1.1.97.122 . 
  62. ^ ab "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 admite administración de ventanas clásica y en mosaico (tipo Acme).
  63. ^ Torvalds, Linus (1999). "La ventaja de Linux" . Fuentes abiertas: voces de la revolución del código abierto . O'Reilly. ISBN 1-56592-582-3.
  64. ^ "Glendix: llevando la belleza del Plan 9 a Linux" . Consultado el 1 de diciembre de 2011 .
  65. ^ "Plan 9 de Gentoo: el 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 .
  66. ^ "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.
  67. ^ "9cuadrícula". Laboratorios Bell . Tecnologías Lucent . Archivado desde el original el 14 de marzo de 2006 . Consultado el 28 de marzo de 2006 .
  68. ^ Ballesteros, Francisco J.; Guardiola, Gorka; Soriano, Enrique; Leal Algara, Katia (2005). Los sistemas tradicionales pueden funcionar bien para aplicaciones generalizadas. "Un estudio de caso: el Plan 9 de Bell Labs se vuelve omnipresente" . Conferencia Internacional IEEE. sobre Computación Generalizada y Comunicaciones. CiteSeerX 10.1.1.109.8131 . 
  69. ^ "Vita Nuova suministra Inferno Grid a Evotec OAI" (PDF) (Presione soltar). Vita Nueva . 2004-05-18 . Consultado el 28 de marzo de 2006 .
  70. ^ "Las bibliotecas de la Universidad de Rutgers instalan Inferno Data Grid" (PDF) (Presione soltar). Vita Nueva . 2004-05-12 . Consultado el 28 de marzo de 2006 .
  71. ^ "El Departamento de Biología de la Universidad de York instala Inferno Data Grid de Vita Nuova" (PDF) (Presione soltar). Vita Nueva . 2004-05-04 . Consultado el 28 de marzo de 2006 .
  72. ^ "9FRONT.ORG EL PLAN SE CAYÓ" . Consultado el 14 de octubre de 2021 .
  73. ^ Hayward, David (9 de mayo de 2013). "Sistemas operativos Raspberry Pi: 5 revisados ​​y calificados". TecnologíaRadar . Archivado desde el original el 7 de junio de 2013 . Consultado el 20 de abril de 2014 .
  74. ^ "Cómo instalar el Plan 9 en una Raspberry Pi". eLinux . Consultado el 16 de noviembre de 2014 .
  75. ^ Jurado, Álvaro; Fernández, Rafael; du Colombier, David; Minnich, Ron; Nyrhinen, Aki; Florén, Juan. Harvey (PDF) . Sesión USENIX ATC BOF.
  76. ^ "¿Qué hay de nuevo para WSL en Windows 10 versión 1903?". Herramientas de línea de comandos de Windows para desarrolladores . 16 de febrero de 2019.
  77. ^ "9átomo". Archivado desde el original el 11 de noviembre de 2020.{{cite web}}: Mantenimiento CS1: URL no apta ( enlace )
  78. ^ "9átomo". quanstro.net . Archivado desde el original el 9 de junio de 2018 . Consultado el 15 de junio de 2023 .
  79. ^ "9átomo". ArchivoOS . 3 de mayo de 2022 . Consultado el 15 de junio de 2023 .
  80. ^ "9FRONT.ORG EL PLAN SE CAYÓ".
  81. ^ "9legado".
  82. ^ "Akaros".
  83. ^ "SO Harvey".
  84. ^ "JehanneOS". 17 de noviembre de 2021.
  85. ^ "NIX". 21 de noviembre de 2020.
  86. ^ "nodo9". GitHub . 14 de enero de 2022.
  87. ^ "Plan B". 26 de noviembre de 2020.
  88. ^ "Descargar". Wiki del Plan 9 . 9p.io. _ Consultado el 15 de junio de 2023 .
  89. ^ Ballesteros, Francisco J.; Múzquiz, Gorka Guardiola; Algara, Katia Leal; Soriano, Enrique; de las Heras Quirós, Pedro; Castro, Eva M.; Leonardo, Andrés; Arévalo, Sergio (febrero de 2004). "Plan B: Cajas para recursos en red". Revista de la Sociedad Brasileña de Computación . 10 (1): 33–44. doi : 10.1007/BF03192352 . S2CID  6766935.
  90. ^ Ballesteros, FJ; Soriano, E.; Leal, K.; Guardiola, G. (2006). "Plan B: un sistema operativo para entornos informáticos ubicuos". Cuarta Conferencia Internacional Anual IEEE sobre Comunicaciones y Computación Generalizada (PERCOM'06) . págs. 126-135. doi :10.1109/PERCOM.2006.43. ISBN 0-7695-2518-0. S2CID  1730651 . Consultado el 15 de junio de 2023 .
  91. ^ Sharwood, Simon (14 de febrero de 2014). "El Plan 9 sale del espacio de licencia de Lucent". El registro . Consultado el 20 de abril de 2014 .
  92. ^ "Fundación Plan9". plan9foundation.org . Consultado el 13 de octubre de 2021 .

enlaces externos