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) en Bell Labs a mediados de la década de 1980 y se basó en los conceptos de UNIX desarrollados allí por primera vez a fines 1960 Desde 2000, Plan 9 ha sido gratuito y de código abierto. El lanzamiento oficial final fue a principios de 2015.
Bajo el Plan 9, la metáfora de UNIX todo es un archivo se amplía a través de un sistema de archivos omnipresente centrado en la red, y la E/S basada en terminal y dirigida por cursor en el corazón de Los sistemas operativos similares a UNIX se reemplazan 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 Z de ciencia ficción de culto de Ed Wood de 1957 Plan 9 from Outer Space. El sistema continúa siendo utilizado y desarrollado por investigadores y aficionados al sistema operativo.
Historia
Plan 9 de Bell Labs fue desarrollado originalmente, a fines de la década de 1980, por miembros del Computing Science Research Center de Bell Labs, el mismo grupo que desarrolló originalmente Unix y el lenguaje de programación C. El equipo de Plan 9 estuvo dirigido inicialmente por Rob Pike, Ken Thompson, Dave Presotto y Phil Winterbottom, con el apoyo de Dennis Ritchie como director 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.
Plan 9 reemplazó a Unix como la plataforma principal de Bell Labs para la investigación de sistemas operativos. Exploró varios cambios en el modelo original de Unix 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 de la editorial de libros Harcourt Brace. Con licencias de origen que cuestan $ 350, AT&T se centró en el 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.
A principios de 1996, el proyecto Plan 9 había sido "puesto en segundo plano" por AT&T a favor de Inferno, destinado a ser un rival de Sun Microsystems' plataforma Java. A fines de la década de 1990, Bell Labs' el nuevo propietario, Lucent Technologies, abandonó el soporte comercial para el proyecto y, en 2000, se distribuyó una tercera versión con una licencia de código abierto. En 2002 se produjo un cuarto lanzamiento bajo una nueva licencia de software libre. A principios de 2015, se produjo el lanzamiento oficial final de Plan 9.
Una comunidad de usuarios y desarrolladores, incluido el personal actual y anterior de Bell Labs, producía comunicados diarios menores en forma de imágenes ISO. Bell Labs acogió el desarrollo. 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. Además de los componentes oficiales del sistema operativo incluidos en las ISO, Bell Labs también alberga un depósito de aplicaciones y herramientas desarrolladas externamente.
A medida que Bell Labs pasó a proyectos posteriores en los últimos años, el desarrollo del sistema Plan 9 oficial se detuvo. El 23 de marzo de 2021, se reanudó el desarrollo luego de la transferencia de los derechos de autor de Bell Labs a Plan 9 Foundation. El desarrollo no oficial del sistema también continúa en la bifurcación 9front, donde los contribuyentes activos brindan compilaciones mensuales y nuevas funcionalidades. Hasta ahora, la horquilla 9front ha proporcionado al sistema controladores Wi-Fi, controladores de audio, compatibilidad con USB y un emulador de juegos incorporado, junto con otras características. Otros sistemas operativos recientes inspirados en Plan 9 incluyen Harvey OS y Jehanne OS.
Fecha | Liberación | Comentario |
---|---|---|
1992 | Plan 9 Primera edición | Publicado por Bell Labs a universidades |
1995 | Plan 9 Segunda edición | Publicado por Bell Labs para fines no comerciales |
2000 | Plan 9 3a edición.Brasil) | Publicado por Lucent Technologies bajo licencia de código abierto |
2002 | Plan 9a edición | Publicado por Lucent Technologies bajo una nueva licencia de software libre |
Conceptos de diseño
El Plan 9 de los Laboratorios Bell es como los Cuáqueros: distinguido por su estrés en la "Luz Interna", señalada para la simplicidad de la vida, en particular para la claridad del discurso. Como los cuáqueros, el Plan 9 no proselitiza.
—Sape J. Mullender, Pierre G. Jansen.
Tiempo real en un sistema operativo real
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. 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 intensivos. El almacenamiento de datos permanente lo proporcionan hosts de red adicionales que actúan como servidores de archivos y almacenamiento de archivos.
Sus diseñadores afirman que,
[t]s funds of the system are built on two ideas: a per-process name space and a simple message-oriented file system protocol.
—Pike et al.
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 llamar al 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.
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 los otros procesos' espacio de nombres 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. Transmite la idea de Unix de archivos de dispositivos para brindar 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 un conexión a un programa de 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 pseudo-archivos: ratón, que puede ser leído por un programa para recibir notificaciones de los movimientos del ratón y clics de botones, cons, que se puede usar para realizar entradas/salidas de texto, y bitblt, escritura en la que se ejecutan 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 entre sí, ocultando los archivos del dispositivo real 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 de manera adecuada, enviando la salida al dispositivo de pantalla real y dando al programa actualmente enfocado la entrada del teclado y el mouse. El programa no necesita saber si se está comunicando directamente con los controladores de dispositivos 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 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 del terminal del usuario (mouse, cons, 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.
Protocolo 9P
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. El protocolo se utiliza para hacer referencia y comunicarse con procesos, programas y datos, incluida la interfaz de usuario y la red. Con el lanzamiento de la cuarta edición, se modificó y se le cambió el nombre a 9P2000.
A diferencia de la mayoría de los demás sistemas operativos, Plan 9 no proporciona interfaces de programación de aplicaciones especiales (como sockets de Berkeley, recursos X o llamadas al sistema ioctl) para acceder a los dispositivos. En su lugar, 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 las 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 directorios correspondiente en la máquina de destino.
Unión de directorios y espacios de nombres
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á duplicados nombres La resolución de un único nombre de ruta se realiza de arriba hacia abajo: si los directorios top y bottom están unidos en u con top primero, luego u/name denota top /nombre si existe, bottom/name solo si existe y top/name no exist, y ningún archivo si ninguno existe. No se realiza una unión recursiva de subdirectorios, por lo que si existe top/subdir, los archivos en bottom/subdir no son accesibles a través del Unión.
Se puede crear un directorio de unión usando el comando bind:
; bind /arm/bin /bin ; bind -a /acme/bin/arm /bin ; bind -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. El directorio bin de Acme se monta después de /bin y el bin está montado 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. Aún existe una variable de entorno de ruta ($path
) el shell rc (el shell utilizado principalmente en Plan 9); sin embargo, la variable de entorno de ruta de rc convencionalmente solo contiene el / bin
y .
y modificar los Se desaconseja la variable; en su lugar, se deben agregar comandos adicionales vinculando varios directorios como un único /bin. A diferencia de 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 núcleo puede mantener tablas de montaje separadas para cada proceso y, por lo tanto, puede proporcionar a cada proceso su propio espacio de nombres del sistema de archivos. Procesos' los espacios de nombres se pueden construir de forma independiente y el usuario puede trabajar simultáneamente con programas que tienen espacios de nombres heterogéneos. Los espacios de nombres se pueden usar para crear un entorno aislado similar a chroot, pero de una manera más segura.
La arquitectura de directorios de unión de Plan 9 inspiró las implementaciones del sistema de archivos de unión de 4.4BSD y Linux, aunque los desarrolladores de la instalación de montaje de unión de BSD encontraron que la fusión no recursiva de directorios en Plan 9 era demasiado restrictiva para el uso general. propósito de uso".
Sistema de archivos virtual especial
/procedimiento
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 por las llamadas ordinarias del sistema de E/S de archivos.
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.
/red
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.
Unicódigo
Para reducir la complejidad de administrar la codificación de caracteres, Plan 9 usa 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. 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 el encadenamiento de multilingüe. cadena de datos con tuberías Unix entre múltiples procesos. El uso de una sola codificación UTF-8 con caracteres para todas las culturas y regiones elimina la necesidad de cambiar entre conjuntos de códigos.
Combinando los conceptos de diseño
Aunque interesantes por sí mismos, 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 propia /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 la Internet pública. Se puede usar un directorio de unión con la jerarquía y los filtros /net para aislar una aplicación que no sea de confianza o para implementar un firewall. De la misma manera, una red de computación distribuida puede estar compuesta por 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 funciones permiten ensamblar un entorno informático distribuido complejo mediante la reutilización del sistema de nombres jerárquico existente.
Software para Plan 9
Como beneficio del diseño del sistema, la mayoría de las tareas en Plan 9 se pueden realizar usando 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 administración de claves y autenticación para Plan 9. Maneja la autenticación en nombre de otros programas, de modo que tanto las claves secretas como los detalles de implementación solo necesitan ser conocidos por Factotum.
Programas gráficos
A diferencia de Unix, Plan 9 se diseñó pensando en los gráficos. Después de arrancar, una terminal Plan 9 ejecutará el sistema de ventanas rio, en el que el usuario puede crear nuevas ventanas que muestren rc. 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 creación de hipervínculos en todo el sistema.
Sam y acme son los editores de texto de Plan 9.
Sistema de almacenamiento
Plan 9 es compatible con los sistemas de archivos Kfs, Paq, Cwfs, FAT y Fossil. El último fue diseñado en Bell Labs específicamente para Plan 9 y brinda capacidad de almacenamiento de instantáneas. Se puede usar directamente con un disco duro o respaldado con Venti, un sistema de archivos y un sistema de almacenamiento de datos permanente.
Desarrollo de software
El paquete de distribución para 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. 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 para este lenguaje se crearon a la medida teniendo en cuenta la portabilidad; según su autor, "compilan rápidamente, cargan lentamente y producen código objeto de calidad media".
Un lenguaje de programación concurrente llamado Alef estaba disponible en las dos primeras ediciones, pero luego se eliminó por razones de mantenimiento y se reemplazó por una biblioteca de subprocesos para C.
Compatibilidad con Unix
Aunque se suponía que Plan 9 era un desarrollo adicional 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.
Plan 9 puede admitir 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 dos). estándar). También incluye un shell compatible con POSIX. Los autores de APE afirman haberlo usado para migrar el sistema X Window (X11) al Plan 9, aunque no envían X11 'porque mantenerlo correctamente es un trabajo demasiado grande'. Algunos binarios de Linux se pueden usar con la ayuda de un "linuxemu" (emulador de Linux) aplicación; sin embargo, todavía es un trabajo en progreso. Viceversa, la máquina virtual vx32 permite que un kernel de Plan 9 ligeramente modificado se ejecute como un proceso de usuario en Linux, admitiendo programas de Plan 9 sin modificar.
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, y demostraron que el código fuente para un mínimo ("funcionando, aunque no muy útil") La versión tenía 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 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. (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).
Dentro de la comunidad de investigación de sistemas operativos, así como del mundo comercial de Unix, se realizaron otros intentos de lograr la computación distribuida y el acceso remoto al sistema de archivos al mismo tiempo que el esfuerzo de diseño del Plan 9. Estos incluían 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 ni la comunicación remota entre procesos de forma limpia, aunque podría haberlo hecho con el dominio UNIX preexistente. sockets (que "se pueden usar esencialmente para nombrar servidores de nivel de usuario") se han integrado con la arquitectura vnode.
Una crítica del diseño 'todo es un archivo', de comunicación por mensaje textual de Plan 9, señaló las limitaciones de este paradigma en comparación con las interfaces tipeadas de las interfaces orientadas a objetos de Sun. sistema operativo, Primavera:
El Plan 9 limita todo para parecer un archivo. En la mayoría de los casos el tipo de interfaz real comprende el protocolo de mensajes que deben ser escritos y leídos desde un descriptor de archivos. Esto es difícil de especificar y documentar, y prohíbe cualquier tipo de comprobación automática en absoluto, excepto por errores de archivo en el tiempo de ejecución. (...) [A] nombre de ruta relativo a un contexto raíz implícito del proceso es el sólo forma de nombrar un servicio. La unión de un nombre a un objeto sólo 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 pasar entre procesos, mucho menos a través de redes. En lugar de ello, la comunicación debe basarse en convenciones, que son propensas al error y no escalan.
—Roscoe; énfasis en el original.
Una comparación retrospectiva posterior de Plan 9, Sprite y un tercer sistema operativo contemporáneo de investigación distribuida, Amoeba, encontró que
los entornos que construyen [Amoeba y Sprite] están estrechamente unidos dentro del sistema operativo, dificultando la comunicación con los servicios externos. Estos sistemas sufren la salida 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 soportado y la pequeña, incluso en comparación con el Plan 9, la base de usuarios también han ralentizado significativamente la adopción de esos sistemas (...). En retrospectiva, el Plan 9 fue la única investigación distribuida del sistema operativo desde entonces que logró atraer desarrolladores y ser utilizado en proyectos comerciales lo suficientemente largo como para justificar su supervivencia hasta hoy.
—Mirtchovski, Simmonds y Minnich
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. Algunas funciones 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 9P2000, el protocolo de Plan 9 para acceder a archivos remotos, y han adoptado funciones de rfork, el mecanismo de creación de procesos de Plan 9. Además, en Plan 9 desde User Space, varias de las aplicaciones y herramientas de Plan 9, incluidos los editores sam y acme, se han migrado a los sistemas Unix y Linux y han alcanzado cierto nivel de popularidad. Varios proyectos buscan reemplazar los programas del sistema operativo GNU que rodean el kernel de Linux con los programas del sistema operativo Plan 9. El administrador de ventanas 9wm se inspiró en 8½, el antiguo sistema de ventanas de Plan 9; wmii también está fuertemente influenciado por el Plan 9. En la investigación informática, Plan 9 se ha utilizado como plataforma de computación en cuadrícula y como vehículo para la investigación de la computación ubicua sin middleware. 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:
[Parezco que el Plan 9 falló simplemente porque se quedó corto de ser una mejora bastante convincente en Unix para desplazar su antepasado. Comparado con el Plan 9, Unix creaks y clanks y tiene puntos de oxidación obvios, pero consigue el trabajo lo suficientemente bien para mantener su posición. Hay una lección aquí para los ambiciosos arquitectos del sistema: el enemigo más peligroso de una mejor solución es una base de código existente que es lo suficientemente bueno.
—Eric S. Raymond
Otros factores que contribuyeron a la baja adopción de Plan 9 incluyen la falta de copia de seguridad comercial, la baja cantidad de aplicaciones de usuario final y la falta de controladores de dispositivos.
Los defensores y desarrolladores de Plan 9 afirman que se han resuelto los problemas que obstaculizaban su adopción, que se han cumplido sus objetivos originales como sistema distribuido, entorno de desarrollo y plataforma de investigación, y que disfruta de una popularidad moderada pero creciente. 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.
Varios proyectos trabajan para extender 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, el soporte del sistema de control de versiones Mercurial (y ahora también una implementación de git) y otros programas. Plan 9 fue portado a la computadora de placa única Raspberry Pi. El proyecto Harvey intenta reemplazar el compilador Plan 9 C personalizado con GCC, para aprovechar las herramientas de desarrollo modernas, como GitHub y Coverity, y acelerar el desarrollo.
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 anfitrión de Windows actúa como cliente.
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 torno a 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 comandos en Inferno eran herramientas de Plan 9 que se tradujeron a Limbo.
- 9atom aumenta la distribución Plan 9 con la adición de un núcleo 386 PAE, un amd64 cpu y núcleo terminal, nupas, soporte de hardware adicional pc, IL y Ken's fs.
- 9front es un tenedor del Plan 9. It was started to remedy a perceived lack of dedicated development resources inside Bell Labs, and has acumulad various fixes and improvements.
- 9legacy es una distribución alternativa. Incluye un conjunto de parches basados en la distribución actual del Plan 9.
- Akaros está diseñado para arquitecturas de muchos núcleos y sistemas SMP de gran escala.
- Harvey OS es un esfuerzo para conseguir el código Plan 9 trabajando con gcc y clang.
- JehanneOS es un sistema operativo experimental derivado del Plan 9. Su usuario y sus módulos se derivan principalmente de 9front, su sistema de construcción de Harvey OS, y su núcleo es un tenedor del núcleo Plan9-9k 64-bit Plan9.
- NIX es un tenedor de Plan9 dirigido a sistemas multicore y computación en la nube.
- nodo9 es un derivado de Plan9/Inferno que reemplaza el lenguaje de programación Limbo y la máquina virtual DIS con el lenguaje Lua y la máquina virtual LuaJit. También reemplaza al Inferno per-platform hospedado I/O con Node.js' libuv eventing e I/O para alojamiento consistente y multiplataforma. Es una prueba de concepto que demuestra que un sistema operativo distribuido puede ser construido a partir de espacios de nombre por proceso y elementos de nube genéricos para construir una imagen de un sistema único de tamaño arbitrario.
- Plan B diseñado para trabajar en entornos distribuidos donde el conjunto de recursos disponibles es diferente en diferentes puntos en el tiempo.
Licencia
A partir del lanzamiento de la Cuarta edición en abril de 2002, 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 Iniciativa de Código Abierto (OSI), licencia de software libre de la Free Software Foundation, y cumple con las Directrices de software libre de Debian.
En febrero de 2014, la Universidad de California, Berkeley, recibió la autorización del titular actual 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 licencia GPL-2.0- solamente.
El 23 de marzo de 2021, la propiedad de Plan 9 se transfirió de Bell Labs a Plan 9 Foundation, y todos los lanzamientos anteriores se volvieron a otorgar a la licencia MIT.
Contenido relacionado
Integración a muy gran escala
Bill Atkinson
Charles Babbage