Un protocolo de red desarrollado para el sistema operativo distribuido Plan 9
9P (o Protocolo del 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 casi cualquier otra cosa disponible en el sistema operativo.
9P fue revisado para la cuarta edición de Plan 9 bajo el nombre 9P2000 , conteniendo varias mejoras. Algunas de las mejoras realizadas son la eliminación de ciertas restricciones de nombre 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 Inferno originalmente se llamaba 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 la distribución de Plan 9. Mac9P proporciona una extensión de kernel de cliente 9P para OS X. [4] Un controlador de cliente de kernel que implementa 9P con algunas extensiones para Linux es parte del proyecto v9fs . 9P y sus derivados también han encontrado aplicación en entornos integrados, 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:
Fuera del Plan 9, el protocolo 9P todavía se utiliza cuando se requiere un sistema de archivos remoto liviano:
- NixOS : una distribución Linux que utiliza el gestor de paquetes Nix . NixOS puede reconstruirse a sí mismo 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 crear instancias y gestionar sistemas operativos tipo Unix . Puede crear instancias de 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 host 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, que se acelera con controladores de kernel y memoria compartida [8] [9]
- DIOD: Daemon de E/S distribuida: un servidor de archivos 9P
Véase también
Referencias
- ^ "Plan 9 de Bell Labs — Descripción general". 9p.io .
- ^ "investigación: u9fs.tgz es el código fuente tarbal". www.netlib.org .
- ^ "Plan 9 /sys/man/4/u9fs". 9p.io .
- ^ benavento (19 de abril de 2019). "9P para Mac" – vía GitHub.
- ^ "Styx sobre un ladrillo". Cat-V Doc .
- ^ "¿Qué novedades hay para 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 transferencia que tiene en cuenta la virtualización" (PDF) . Simposio sobre Linux .
- ^ "Documentación/9psetup". Documentos 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 Plan 9 por Dave Presotto y Phil Winterbottom
- Seguridad en Plan 9