GNU/Linux >> Tutoriales Linux >  >> Linux

¿En qué sistemas es diferente //foo/bar de /foo/bar?

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.
Relacionado:¿Cómo suprimir un mensaje de un programa mientras lo instala para usarlo en un programa bash?
Linux
  1. Linux:¿Diferencia entre /dev/console, /dev/tty y /dev/tty0?

  2. Debian – ¿Mover /var, /home a una partición separada?

  3. ¿Es Rsync ~/foo Target/foo lo mismo que Rsync ~/foo/ Target/foo/?

  4. ¿Qué es diferente entre /bin/false y /sbin/nologin como shell del usuario nologin?

  5. Instalar binarios en /bin, /sbin, /usr/bin y /usr/sbin, interacciones con --prefix y DESTDIR

Django static_root en /var/www/... - sin permisos para recopilar estática

¿Cómo saber desde qué carpeta se está ejecutando un proceso?

¿Por qué poner otras cosas que no sean /home en una partición separada?

¿Cuál es la diferencia entre /tmp y /run?

hacer eco o imprimir /dev/stdin /dev/stdout /dev/stderr

¿Deberían vivir los sitios web en /var/ o /usr/ según el uso recomendado?