Estoy buscando desarrollar una implementación en C de un servidor de archivos 9p en una máquina Linux. No hay suficiente documentación en Internet sobre 9p y no tengo mucha experiencia con la implementación de servidores. Mi diseño general es el siguiente:
El servidor simplemente viviría en el espacio del usuario y traducirá los mensajes 9p en una llamada UNIX.
¿Ve algún problema o tiene alguna recomendación con respecto al diseño propuesto? ¿Hay alguna documentación a la que pueda referirme que me ayude? ¿Cómo crees que debería depurar mi servidor y asegurarme de que funciona correctamente?
9P (o el 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 el 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 del Plan 9 bajo el nombre 9P2000 , que contiene 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 usa 9P2000. El protocolo de archivo 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] se incluye en la distribución de Plan 9. Mac9P proporciona una extensión del kernel de cliente 9P OS X. [4] Un controlador de cliente del 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. [5]