Die SMB3-POSIX-Erweiterungen haben nun eine eigene Website. Unter smb3posix.org können Entwickler auf Version 1.0.0 der SMB3-POSIX-Spezifikation zugreifen.
Die neue Website ist das Ergebnis einer Arbeit, die vor mehr als einem Jahrzehnt begann: Seit etwa 2015 arbeiten verschiedene Mitglieder der Samba- und Linux-Kernel-Community gemeinsam daran, die SMB3-Protokoll-Erweiterungen zu entwerfen, zu implementieren und zu dokumentieren, mit dem Ziel, erstklassige POSIX-Kompatibilität über SMB3 bereitzustellen. Mit einem aktuellen Linux-Kernel und einem Server, der die Erweiterungen implementiert, können Netzwerkfreigaben die POSIX-Dateisystemsemantik beibehalten, wie beispielsweise die Groß-/Kleinschreibung bei Pfaden, Unix-Modus-Bits, symbolische Links und Hardlinks. Samba stellt seit Version 4.22 die Server-Referenzimplementierung bereit; die Erweiterungen sind seit Version 4.23 standardmäßig aktiviert.
Version 1.0.0 stellt die erste vollständige Spezifikation dar, da sie nicht nur die Protokollerweiterungen selbst dokumentiert, sondern auch die Dateisystemsemantik, die POSIX-Systeme von Windows unterscheidet, sowie die Art und Weise, wie diese Semantik über das Netzwerk übertragen wird.
Obwohl Implementierungen der SMB3-POSIX-Erweiterungen bereits in mehreren Open-Source-SMB-Clients und -Servern enthalten waren, deckte die Arbeit subtile POSIX-Verhaltensweisen auf, die noch spezifiziert und in einigen Fällen implementiert werden mussten, bevor die Spezifikation als vollständig angesehen werden konnte.
Die Grundlage für diese Arbeit wurde in einem Projekt gelegt, das von der deutschen Sovereign Tech Agency finanziert wurde. Das Projekt befasste sich mit den SMB3-POSIX-Erweiterungen auf mehreren Ebenen: Serveranpassungen und Regressionstests, Client-Unterstützung über libsmbclient für Linux-Desktopumgebungen sowie ein eigenes Projekt zur Vervollständigung der Protokolldokumentation.
Die Förderung verschaffte Zeit für diese Arbeit: die Explizierung von Verhaltensweisen, die historisch in Samba und dem Linux-Kernel als Teil der älteren CIFS-UNIX-Erweiterungen implementiert waren; die Dokumentation, inwiefern sich die POSIX-Semantik von der Windows-Semantik unterscheidet; sowie die Festlegung, wie diese Informationen über das Netzwerk zwischen Systemen übertragen werden.
Die daraus resultierende Spezifikation besteht aus drei Dokumenten:
- POSIX-SMB2 definiert die SMB-Protokollsemantik.
- POSIX-FSA definiert die POSIX-Dateisystemsemantik und die Unterschiede zu Windows.
- POSIX-FSCC definiert Dateisystem-Informationsklassen und deren Darstellung bei der Übertragung.
Ralph Böhme, Leiter des Samba-Teams bei SerNet, hat in seiner Funktion als Mitglied des internationalen Samba-Teams an dieser Dokumentation mitgearbeitet. Nach Abschluss des geförderten Meilensteins richtete er zudem smb3posix.org ein, um der Spezifikation eine dauerhafte Heimat zu geben und sie für Entwickler zugänglicher zu machen. Im September wird Ralph die Arbeit auf der SNIA Storage Developer Conference in seinem Vortrag „SMB3 POSIX Extensions, from plumbing to flowing“ vorstellen.
Jeder, der schon einmal ein Protokoll anhand unvollständiger Dokumentation implementieren musste, weiß, welchen Unterschied dies ausmacht. Die Spezifikation und ihre neue Heimat bieten eine klare Referenz für alle, die SMB3-POSIX-Unterstützung implementieren.


