In der gesamten POSIX-Spezifikation gibt es Vorkehrungen (1, 2, 3 …), die es Implementierungen ermöglichen, einen Pfad zu behandeln, der mit zwei / beginnt speziell.
Eine POSIX-Anwendung (eine Anwendung, die nach der POSIX-Spezifikation geschrieben wurde, um auf alle POSIX-kompatiblen Systeme portierbar zu sein) kann nicht davon ausgehen, dass //foo/bar ist dasselbe wie /foo/bar (obwohl sie davon ausgehen können, dass ///foo/bar ist dasselbe wie /foo/bar ).
Was sind nun diese POSIX-Systeme (historisch und noch gepflegt), die //foo behandeln speziell? Ich glaubte (ich habe mich jetzt als falsch erwiesen), dass die POSIX-Bereitstellung von Microsoft für ihre Unix-Variante (XENIX) und möglicherweise die Windows-POSIX-Schicht vorangetrieben wurde (kann das jemand bestätigen?).
Es wird von Cygwin verwendet, das auch eine POSIX-ähnliche Schicht für Microsoft Windows ist. Gibt es Nicht-Microsoft-Windows-Systeme? OpenVMS?
Auf Systemen, auf denen //foo/bar ist etwas Besonderes, wofür wird es verwendet? //host/path für den Zugriff auf Netzwerkdateisysteme? Virtuelle Dateisysteme?
Machen Sie einige Anwendungen die auf Unix-ähnlichen Systemen laufen – wenn nicht die API des Systems – behandeln //foo/bar Pfade besonders (in Kontexten, in denen sie ansonsten /foo/bar behandeln als Pfad im Dateisystem)?
Bearbeiten , habe ich seitdem eine Frage an die Mailingliste der Austin-Gruppe zum Ursprung von //foo/bar gestellt Handhabung in der Spezifikation, und die Diskussion ist interessant zu lesen (zumindest aus archäologischer Sicht).
Akzeptierte Antwort:
Dies ist eine Zusammenstellung und ein Index der bisher gegebenen Antworten. Dieser Beitrag ist Community-Wiki , kann es von jedem mit 100+ Reputation bearbeitet werden und niemand bekommt davon Reputation. Fühlen Sie sich frei, Ihre eigene Antwort zu posten und hier einen Link dazu hinzuzufügen (oder warten Sie, bis ich es tue). Idealerweise sollte diese Antwort nur eine Zusammenfassung sein (mit kurzen Einträgen, während einzelne andere Antworten die Details enthalten würden).
Derzeit aktiv gewartete Systeme:
- Cygwin . Eine POSIX-Schicht für Microsoft Windows. Wird für Windows-UNC-Pfade verwendet.
- UWIN seit 1.3. Eine weitere POSIX-Schicht für Windows. Wird zumindest für
//host/fileverwendet Dateifreigabepfade im Netzwerk. - IBM z/OS Wie im POSIX-Bugtracker erwähnt, löst z/OS
//pathnameauf Anfragen an MVS-Datensätze , nicht zu Netzwerkdateien. Beispiel.
Ausgefallene Systeme
-
Apollo-Domain/OS (Bestätigt). Wird auch in der offiziellen Beschreibung UNC (Universal Naming Convention) als möglicher Ursprung von
//host/patherwähnt Notationen (siehe auch Seite 2-15).Laut Donn Terry war es HP (das Apollo Computers übernahm), das auf die Aufnahme dieser Bestimmung in die POSIX-Spezifikation für Domain/OS drängte.
-
Tektronix Utek (bestätigt), wobei
//host/pathist ein Pfad auf einem verteilten Dateisystem . -
QNX4 mit dem verteilten Verarbeitungssystem FLEET, wobei
//123/pathist ein/pathauf Knoten 123. (Erwähnt in der QNX 6-Dokumentation.) -
AT&T SysV Release 3 (ungeprüft).
//host/pathin (eingestellt in SVR4) RFS Remote File Sharing System. -
SEL/Gould UTX-32 (ungeprüft). Wird für
//host/pathverwendet .
Anwendungen, die //foo/bar behandeln speziell für Pfade
- Notwendigerweise wobei
//depot/A/B/C/Dbezieht sich auf einen Pfad in einem Depot . - Mixer . In seiner Konfiguration verwenden Sie einen
//Präfix für relative Pfade (zu der Mischung, die dem Datenblock zugeordnet ist). - Die Bazel Build-System verwendet einen
//Präfix für Bezeichnungen von Zielen innerhalb des Bazel-Build-Diagramms.