9P (o Protocolo de Sistema de Archivos Plan 9 o Styx ) es un protocolo de red desarrollado para el sistema operativo distribuido Plan 9 de Bell Labs como medio para conectar los componentes de un sistema Plan 9. Los archivos son objetos clave en Plan 9. Representan ventanas , conexiones de red , procesos y prácticamente cualquier otro elemento disponible en el sistema operativo.
9P fue revisado para la cuarta edición de Plan 9 bajo el nombre 9P2000 , con varias mejoras. Algunas de las mejoras realizadas son la eliminación de ciertas restricciones de nombres de archivo, la adición de un campo de metadatos de "último modificador" para directorios y archivos de autenticación. [ 1 ] La última versión del sistema operativo Inferno también utiliza 9P2000. El protocolo de archivos de Inferno se llamaba originalmente Styx, pero técnicamente siempre ha sido una variante de 9P.
Una implementación de servidor de 9P para Unix , llamada u9fs, [ 2 ] [ 3 ] está incluida en Plan 9. Mac9P proporciona una extensión de kernel cliente de 9P para OS X. [ 4 ] Un controlador de cliente de kernel que implementa 9P con algunas extensiones para Linux forma parte del proyecto v9fs . 9P y sus derivados también han encontrado aplicación en entornos embebidos , como el proyecto Styx-on-a-Brick para Lego Mindstorms Bricks . [ 5 ]
Aplicaciones de servidor
Muchas de las aplicaciones de Plan 9 adoptan la forma de servidores de archivos 9P . Algunos ejemplos son:
- acme : un editor de texto /entorno de desarrollo
- Río : el sistema de ventanas Plan 9
- fontanero: comunicación entre procesos
- ftpfs: un cliente FTP que presenta los archivos y directorios de un servidor FTP remoto en el espacio de nombres local.
- wikifs: una herramienta de edición de wiki que presenta una wiki remota como archivos en el espacio de nombres local.
- webfs: un servidor de archivos que recupera datos de URL y presenta el contenido y los detalles de las respuestas como archivos en el espacio de nombres local.
Fuera del Plan 9, el protocolo 9P todavía se utiliza cuando se requiere un sistema de archivos remoto ligero:
- NixOS : una distribución de Linux que utiliza el gestor de paquetes Nix . NixOS puede reconstruirse dentro de una máquina virtual , donde el cliente utiliza 9P para montar el directorio de almacenamiento de paquetes del host.
- GNU Guix : un gestor de paquetes que puede instanciar y gestionar sistemas operativos tipo Unix . Puede instanciar un sistema dentro de una máquina virtual de la misma manera que lo hace NixOS .
- Subsistema de Windows para Linux (WSL): desde la versión 1903 de Windows 10 , el subsistema implementa 9P como servidor y el sistema operativo Windows anfitrión actúa como cliente. [ 6 ]
- Crostini : se utiliza un servidor 9P personalizado para proporcionar acceso a archivos fuera de una máquina virtual Linux [ 7 ].
- QEMU : el dispositivo VirtFS permite compartir el sistema de archivos a través de 9P, lo cual se acelera con controladores de kernel y memoria compartida [ 8 ] [ 9 ].
- DIOD : Demonio de E/S distribuida – un servidor de archivos 9P
- ZeroFS : Un servidor 9P con almacenamiento de objetos en el backend .
Véase también
- Sistema de archivos distribuido
- Todo es un archivo : filosofía de Unix.
- IL – Protocolo de capa de transporte diseñado en Bell Labs para el sistema operativo Plan 9.
Referencias
- ↑ " Plan 9 de Bell Labs: Resumen" . 9p.io.
- ↑ "investigación: u9fs.tgz es el tarbal del código fuente" . www.netlib.org .
- ↑ "Plan 9 /sys/man/4/u9fs" . 9p.io .
- ↑ benavento (19 de abril de 2019). "9P para Mac" – vía GitHub.
- ↑ "Styx-on-a-Brick" . Doc. Cat-V .
- ↑ "¿Qué novedades incluye WSL en Windows 10 versión 1903?" . Herramientas de línea de comandos de Windows para desarrolladores . 16 de febrero de 2019.
- ↑ "Ejecución de contenedores personalizados en Chrome OS" . Documentación de Chromium OS . Consultado el 28 de marzo de 2019 .
- ↑ Jujjuri, Venkateswararao; Van Hensbergen, Eric; Liguori, Anthony; Pulavarty, Badari (13–16 de julio de 2010). "VirtFS: un sistema de archivos de paso directo con reconocimiento de virtualización" (PDF) . Simposio Linux .
- ↑ "Documentación/9psetup" . Documentación de QEMU . Consultado el 28 de marzo de 2019 .
Enlaces externos
- Página de recursos 9P en cat-v.org
- Manual 9P
- La arquitectura Styx para sistemas distribuidos, por Rob Pike y Dennis Ritchie.
- La organización de redes en el Plan 9, por Dave Presotto y Phil Winterbottom.
- Seguridad en el Plan 9
- Introducciones relacionadas con la informática en 1992
- protocolos de la capa de aplicación
- Inferno (sistema operativo)
- Comunicación entre procesos
- Software de red basado en el protocolo de Internet
- Sistemas de archivos de red
- protocolos de transferencia de archivos de red
- Plan 9 de Bell Labs