9P
9p (o el Plan 9 Filesystem Protocol o Styx) es un protocolo de red desarrollado por el sistema operativo distribuido Plan 9 from Bell Labs como el 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 absolutamente cualquier cosa disponible en el sistema operativo. 9P promueve el caching y también servidores de archivos sintéticos, como /proc para representar procesos.
9P fue revisado para la 4.ª edición de Plan 9 bajo el nombre 9P2000 que contiene varias mejoras fundamentales. La última versión de Inferno también usa 9P2000. El protocolo de archivos de Inferno se llamaba originalmente Styx, pero técnicamente siempre ha sido una variedad de 9P.
Hay una implementación del servidor de 9P para UNIX llamada u9fs que se incluye en la distribución de Plan 9. También hay un módulo cliente para el kernel de Linux como parte del proyecto v9fs. 9P y sus derivados también han encontrado un nicho en los sistemas embebidos, como el proyecto Styx on a Brick.
Aplicaciones del servidor 9P
editarMuchas de las aplicaciones de Plan 9 toman la forma de servidores 9P, algunas particularmente destacables:
- acme: Una interfaz de usuario para programadores.
- rio: El administrador de ventanas de Plan 9.
- plumber: Comunicación entre procesos.
- wikifs: Un wiki
Véase también
editar- v9fs - u9fs: Implementación de 9P para sistemas operativos Unix-like.
- Protocolo IL - Protocolo de transporte que fue diseñado para redes locales de Plan 9.
- Sistema de archivo distribuido
Enlaces externos
editar- 9P Resources page at cat-v.org
Documentación
- Manual 9P
- The Styx Architecture for Distributed Systems por Rob Pike y Dennis Ritchie
- The Organization of Networks in Plan 9 por Dave Presotto y Phil Winterbottom
Implementaciones
- Cliente y servidor de 9P Implementación en Python
- Cliente y servidor 9P (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última). Implementación en Java
- Ruby-IXP 9P client implemented in Ruby for wmii
- Cliente 9P Implementación en Tcl
- Cliente y servidor 9P Implementación en C bajo la Licencia BSD (Parte del proyecto wmii)
- Cliente 9P Implementación en Common Lisp
- Biblioteca 9pclient - Una biblioteca 9P en C (parte del proyecto Plan 9 from User Space)
- Cliente y servidor Styx implementación en Limbo (Parte del sistema operativo Inferno)