Implémenter un serveur 9p

Je cherche à développer une implémentation C d’un serveur de fichiers 9p sur une machine Linux. Il n’y a pas assez de documentation sur Internet à propos de 9p et je n’ai pas beaucoup d’expérience avec la mise en œuvre de serveurs. Ma conception générale est la suivante:

  1. Utilisez les sockets UNIX pour écouter les messages 9p entrants.
  2. Décodez le message 9p et créez un nouveau thread pour effectuer la tâche requirejse.
  3. Répondre au client avec le message de réponse 9p approprié.

Le serveur ne ferait que vivre dans l’espace utilisateur et traduirait les messages 9p en un appel UNIX.

Voyez-vous des problèmes ou avez-vous des recommandations concernant la conception proposée? Y a-t-il des documentations auxquelles vous pouvez me référer pour m’aider? Comment pensez-vous que je devrais déboguer mon serveur et m’assurer qu’il fonctionne correctement?

Considérez libixp (licence MIT).

J’ai joué avec wmii et wmii utilise au quotidien. libixp faisait partie de wmii (dans les premières versions) et maintenant c’est un projet indépendant. Vérifiez les premières versions de wmii pour obtenir un bon sharepoint départ ou plongez directement dans libixp .

Pour déboguer votre serveur, montez-le avec 9PFUSE(4) avec le paramètre −D pour imprimer chaque message FUSE et 9P.