GNU/Linux >> Tutoriales Linux >  >> Linux

¿Enlaces simbólicos rápidos y lentos?

De http://en.wikipedia.org/wiki/Symbolic_link#Storage_of_symbolic_links

Las primeras implementaciones de enlaces simbólicos almacenaban la información del enlace simbólico
como datos en archivos regulares. El archivo contenía la referencia textual
al objetivo del enlace y un indicador[aclaración necesaria]
que lo denotaba como un enlace simbólico.

Este método era lento y un uso ineficiente del espacio en disco en sistemas pequeños
. Una mejora, llamada enlaces simbólicos rápidos , permitió el almacenamiento de la
ruta de destino dentro de las estructuras de datos utilizadas para almacenar información de archivo
en el disco (inodos)
. Este espacio normalmente almacena una lista de
direcciones de bloque de disco asignadas a un archivo. Por lo tanto, los enlaces simbólicos con rutas de destino cortas
se acceden rápidamente. Los sistemas con enlaces simbólicos rápidos a menudo
recurren al método original si la ruta de destino supera el
espacio de inodo disponible
. El estilo original se denomina retroactivamente un
enlace simbólico lento . También se utiliza para la compatibilidad del disco con otras versiones o
anteriores de los sistemas operativos.

  1. ¿El "almacenamiento permitido de la ruta de destino dentro de las estructuras de datos
    utilizadas para almacenar información de archivo en el disco (inodos)" significa que un enlace simbólico rápido
    almacena la ruta del archivo vinculado dentro del inodo de
    enlace simbólico rápido

    ¿Un enlace simbólico rápido, como un archivo en sí mismo, en realidad solo tiene un inodo
    y no tiene contenido de archivo?

    ¿Un enlace simbólico lento, como un archivo en sí mismo, tiene un inodo y algo de contenido de archivo
    que es la ruta de destino?

  2. ¿Qué significa "si la ruta de destino supera el espacio de inodos disponible"
    ?

    ¿Es correcto que si un enlace simbólico a un archivo es un enlace simbólico rápido, si y
    solo si el enlace simbólico y el archivo están en el mismo sistema de archivos?

  3. ¿Hay algún comando que pueda comprobar si un enlace simbólico es rápido o lento
    ?

  4. Cuando un enlace simbólico tiene contenido de archivo, ¿cuál es el comando para mostrar el contenido del enlace simbólico? (De modo que si un enlace simbólico rápido no tiene contenido de archivo
    y uno lento sí, podemos verificarlo).

Respuesta aceptada:

¿El "almacenamiento permitido de la ruta de destino dentro de las estructuras de datos utilizadas para almacenar información de archivos en el disco (inodos)" significa que un enlace simbólico rápido almacena la ruta del archivo vinculado dentro del inodo del enlace simbólico rápido?

¿Un enlace simbólico rápido, como un archivo en sí mismo, en realidad solo tiene un inodo y no tiene contenido de archivo?

Depende de lo que quiera decir con "tiene contenido de archivo". Ningún enlace simbólico tiene contenido de archivo en el sentido de que no puede open() ellos y read() de ellos. Pero en el sentido implícito del texto que citó, "El archivo contenía la referencia textual al objetivo del enlace". Entonces, sí, esa referencia textual puede considerarse el "contenido" del archivo.

Relacionado:Creación de una nueva partición con partes para un nuevo disco duro:cuando está montado, es mucho más pequeño de lo esperado. ¿Por qué?

Este contenido es el mismo independientemente de si el enlace simbólico es un enlace simbólico rápido o lento. Cómo y dónde el sistema de archivos elige almacenar esa información en sus estructuras de datos en disco es un detalle de implementación y no afecta esto.

¿Un enlace simbólico lento, como un archivo en sí mismo, tiene un inodo y algún contenido de archivo que es la ruta de destino?

Desde ese mismo punto de vista, ¡sí!

¿Qué significa "si la ruta de destino excede el espacio de inodo disponible"?

Depende del sistema de archivos y el tipo de estructuras de datos que utilizó para almacenar inodos y cuánto espacio libre hay en esas estructuras de datos y si son de tamaño variable o fijo. La longitud máxima de la ruta de destino de un enlace simbólico antes de que tenga que volver a almacenarse como un enlace simbólico lento es un detalle de implementación del sistema de archivos.

Por cierto, nada impide que un sistema de archivos en particular use el mismo truco para almacenar el contenido de un regular breve. archivo para ahorrar espacio y acceso al disco.

¿Hay algún comando que pueda comprobar si un enlace simbólico es rápido o lento?

En el mejor de los casos, herramientas de depuración o volcado del sistema de archivos. Y dependerá completamente del tipo de sistema de archivos que le interese (xfs, ext*, btrfs, etc…)

Cuando un enlace simbólico tiene contenido de archivo, ¿cuál es el comando para mostrar el contenido del enlace simbólico? (De modo que si un enlace simbólico rápido no tiene contenido de archivo y uno lento sí, podemos verificarlo).

Puede obtener la ruta de destino (contenido) de un enlace simbólico con readlink , pero ls -l también funcionará.


Linux
  1. `^m` ¿Y cómo deshacerse de él?

  2. ¿Redirigir y canalizar la salida?

  3. Instalación y configuración de vsFTPD

  4. Sistemas de archivos compatibles y recomendados en Linux

  5. Subprocesos y descriptores de archivos

fd:una alternativa simple y rápida para encontrar el comando

Cómo crear enlaces duros y blandos (enlace simbólico) en sistemas Linux

Albert:un lanzador de teclado rápido y flexible

Archivos de inventario y configuración de Ansible

Cómo vincular un archivo en Linux

unix - cabeza Y cola del archivo