Les extensions POSIX de SMB3 disposent désormais d'un site dédié. Sur smb3posix.org, les développeurs peuvent accéder à la version 1.0.0 de la spécification POSIX de SMB3.
Ce nouveau site web est l’aboutissement d’un travail commencé il y a plus d’une décennie : depuis environ 2015, divers membres des communautés Samba et du noyau Linux collaborent pour concevoir, implémenter et documenter les extensions du protocole SMB3, dans le but d’offrir une compatibilité POSIX de premier ordre via SMB3. Avec un noyau Linux récent et un serveur implémentant ces extensions, les partages réseau peuvent préserver la sémantique du système de fichiers POSIX, notamment les chemins d’accès sensibles à la casse, les bits de mode Unix, les liens symboliques et les liens physiques. Samba fournit l’implémentation de référence côté serveur depuis la version 4.22 ; les extensions sont activées par défaut depuis la version 4.23.
La version 1.0.0 constitue la première spécification complète, car elle documente non seulement les extensions du protocole elles-mêmes, mais aussi la sémantique du système de fichiers qui distingue les systèmes POSIX de Windows, ainsi que la manière dont cette sémantique est représentée sur le réseau.
Bien que des implémentations des extensions POSIX de SMB3 aient déjà été intégrées à plusieurs clients et serveurs SMB open source, ces travaux ont mis en évidence des comportements POSIX subtils qui devaient encore être spécifiés et, dans certains cas, implémentés avant que la spécification puisse être considérée comme complète.
Les bases de ce travail ont été posées dans le cadre d’un projet financé par l’Agence allemande Sovereign Tech. Le projet a abordé les extensions POSIX de SMB3 à plusieurs niveaux : ajustements côté serveur et tests de régression, prise en charge côté client via libsmbclient pour les environnements de bureau Linux, et un projet dédié à l’achèvement de la documentation du protocole.
Le financement a permis de consacrer du temps à ce travail : expliciter les comportements historiquement implémentés dans Samba et le noyau Linux dans le cadre des anciennes extensions CIFS UNIX ; documenter en quoi la sémantique POSIX diffère de la sémantique Windows ; et préciser comment ces informations sont transmises entre les systèmes sur le réseau.
La spécification qui en résulte se compose de trois documents :
- POSIX-SMB2 définit la sémantique du protocole SMB.
- POSIX-FSA définit la sémantique du système de fichiers POSIX et ses différences par rapport à Windows.
- POSIX-FSCC définit les classes d’informations du système de fichiers et leurs représentations sur le réseau.
Ralph Böhme, chef de l'équipe Samba chez SerNet, a travaillé sur cette documentation en tant que membre de l'équipe internationale Samba. Après avoir franchi cette étape financée, il a également créé smb3posix.org afin d’offrir un hébergement permanent à la spécification et de la rendre plus accessible aux développeurs. En septembre, Ralph présentera ce travail lors de la SNIA Storage Developer Conference dans le cadre de son intervention intitulée « SMB3 POSIX Extensions, from plumbing to flowing ».
Quiconque a déjà dû implémenter un protocole à partir d’une documentation incomplète sait à quel point cela fait la différence. La spécification et son nouvel hébergement constituent une référence claire pour toute personne chargée de mettre en œuvre la prise en charge de SMB3 POSIX.


