A lo largo de la especificación POSIX, existe una disposición (1, 2, 3...) para permitir que las implementaciones traten una ruta que comienza con dos /
especialmente.
Una aplicación POSIX (una aplicación escrita según la especificación POSIX para ser portátil a todos los sistemas compatibles con POSIX) no puede asumir que //foo/bar
es lo mismo que /foo/bar
(aunque pueden asumir que ///foo/bar
es lo mismo que /foo/bar
).
Ahora, ¿qué son esos sistemas POSIX (históricos y aún mantenidos) que tratan //foo
¿especialmente? Creía (ahora se ha demostrado que estaba equivocado) que Microsoft impulsó la provisión de POSIX para su variante de Unix (XENIX) y posiblemente la capa POSIX de Windows (¿alguien puede confirmarlo?).
Lo utiliza Cygwin, que también es una capa similar a POSIX para Microsoft Windows. ¿Existen sistemas que no sean de Microsoft Windows? ¿OpenVMS?
En sistemas donde //foo/bar
es especial, para que sirve? //host/path
para el acceso a los sistemas de archivos de red? ¿Sistemas de archivos virtuales?
Haz algunas aplicaciones corriendo en Unix-likes —si no es la API del sistema— trata //foo/bar
rutas especialmente (en contextos donde de otro modo tratarían /foo/bar
como la ruta en el sistema de archivos)?
Editar , desde entonces hice una pregunta en la lista de correo de austin-group sobre el origen de //foo/bar
manejo en la especificación, y la discusión es una lectura interesante (al menos desde el punto de vista de la arqueología).
Respuesta aceptada:
Esta es una compilación y un índice de las respuestas dadas hasta ahora. Esta publicación es wiki de la comunidad , puede ser editado por cualquiera con más de 100 reputación y nadie obtiene reputación de él. Siéntase libre de publicar su propia respuesta y agregar un enlace aquí (o esperar a que yo lo haga). Idealmente, esta respuesta debería ser solo un resumen (con entradas cortas mientras que otras respuestas individuales tendrían los detalles).
Sistemas actualmente mantenidos activamente:
- Cygwin . Una capa POSIX para Microsoft Windows. Usado para rutas UNC de Windows.
- UWIN desde 1.3. Otra capa POSIX para Windows. Usado al menos para
//host/file
rutas de intercambio de archivos de red. IBM z/OS como se menciona en el rastreador de errores POSIX, z/OS resuelve//pathname
solicitudes a conjuntos de datos de MVS , no a archivos de red. Ejemplo.
Sistemas obsoletos
-
Dominio Apollo/SO (confirmado). También mencionado en la Descripción oficial UNC (Convención de nomenclatura universal) como el posible origen de
//host/path
notaciones (ver también, página 2-15).Según Donn Terry, fue HP (que adquirió Apollo Computers) quien impulsó la inclusión de esa disposición en la especificación POSIX para Domain/OS.
-
Tektronix Utek (corroborado), donde//host/path
es una ruta en un sistema de archivos distribuido . -
QNX 4 con el sistema de procesamiento distribuido FLEET, donde
//123/path
es un/path
en el nodo 123. (Mencionado en la documentación de QNX 6). -
Versión 3 de AT&T SysV (inconfirmado).
//host/path
en (descontinuado en SVR4) el sistema RFS Remote File Sharing. -
SEL/Gould UTX-32 (inconfirmado). Usado para
//host/path
.
Aplicaciones que tratan //foo/bar
especial para caminos
- Forzosamente donde
//depot/A/B/C/D
se refiere a una ruta en un depósito . - Licuadora . En su configuración usas un
//
prefijo para rutas relativas (a la combinación asociada con el bloque de datos). - El Bazel el sistema de compilación usa un
//
prefijo para etiquetas de objetivos dentro del gráfico de compilación de Bazel.