11 votos

Confusión en Metadatos | Forks con nombre | Atributos extendidos | Fork de recursos -- HFS+

Creo que hay cierta confusión general sobre la relación entre estos cuatro elementos dispersos por la web. Quería aclarar esto.

  1. Son horquillas con nombre lo mismo que atributos extendidos ? Si no es así, ¿qué son los atributos ampliados?
  2. ¿Es el horquilla de recursos todavía se implementa como una bifurcación o como un atributo extendido ? Si se aplica de otra manera, ¿cómo?
  3. El metadatos almacenado con un archivo (creador, fecha de modificación...) ¿hay alguna relación o solapamiento terminológico entre los otros tres mencionados? Un ejemplo sería, ¿son atributos extendidos solo extra pares de metadatos (clave + valor) almacenado en un archivo.

Cualquier respuesta que pueda aclarar cómo se interrelacionan los cuatro, especialmente en lo que respecta a la tercera pregunta, sería muy apreciada, y contribuiría a resolver las disputas que veo que se producen en los diferentes recursos.

6voto

galets Puntos 543

La confusión se debe a que la relación entre estos conceptos es compleja y ha cambiado con el tiempo. En los sistemas actuales, la diferencia entre un tenedor con nombre y un atributo extendido es en gran medida académica.

Para un atributo extendido, los datos reales se almacenan en el registro de datos del atributo.

Para una bifurcación, lo que se almacena es la lista de bloques de asignación de disco que contienen los datos. Un fork de recursos sigue siendo un fork.

Los metadatos básicos del sistema de archivos se almacenan en elementos dedicados del propio registro del sistema de archivos, independientemente de los atributos y de las referencias a la horquilla con nombre.

3voto

Tim Puntos 16

No soy un experto en esto, pero he leído un poco para tratar de entender lo que está pasando.

Yo diría que "la confusión surge del hecho de que:

  • la relación entre estos conceptos es compleja y
  • ha cambiado con el tiempo y
  • Apple ha implementado tanto las API a nivel de programa como las herramientas como ls o cp de tal manera que se ocultan muchas de las diferencias entre los conceptos."

AIUI, el archivo HFS+ Catalog contiene registros de archivos de catálogo (entre otras cosas). El Registro de Archivo de Catálogo contiene el tipo normal de información sobre el archivo, como la fecha de creación, la fecha de acceso, etc. El Registro de Archivo de Catálogo también contiene dos estructuras que dan información sobre la ubicación y el tamaño de la horquilla de datos y de la horquilla de recursos.

AIUI, HFS+ también tiene (copiado de Wikipedia HFS+) un "Archivo de Atributos [que] es un nuevo árbol B en HFS Plus que no tiene una estructura correspondiente en HFS. El archivo de atributos puede almacenar tres tipos diferentes de registros de 4 KB: Registros de atributos de datos en línea, registros de atributos de datos en horquilla y registros de atributos de extensión. Los registros de atributos de datos en línea almacenan pequeños atributos que pueden caber dentro del propio registro. Los registros de atributos de datos de bifurcación contienen referencias a un máximo de ocho extensiones que pueden contener atributos más grandes. Los atributos de extensión se utilizan para ampliar un registro de atributos de datos de bifurcación cuando ya se han utilizado sus ocho registros de extensión".

AIUI, los datos almacenados en (o referenciados desde) el archivo de atributos (ya sea en línea, datos de horquilla o atributos de extensión) se conocen como atributos extendidos.

Esas son las estructuras de datos, ¿cómo se utilizan?

AIUI, las primeras versiones del sistema operativo (posiblemente versiones anteriores a 10.4 Tiger, que John Siracusa parece indicar que hubo algunos cambios importantes en esta área), apuntó a la bifurcación de datos y a la bifurcación de recursos del archivo del Catálogo.

AIUI, una vez que llegamos a 10.4 Tiger, el Archivo de Atributos se convierte en algo muy utilizado para almacenar todo tipo de datos.

Es posible (pero no lo sé) que en 10.4 y posteriores, cualquier Bifurcación de Recursos sea señalada desde el Archivo de Atributos. Es decir, en respuesta a tu primera pregunta, yo diría que las bifurcaciones con nombre son Atributos Extendidos, a menos que sean la Bifurcación de Recursos, y la Bifurcación de Recursos sea referenciada desde el archivo de Catálogo.

El problema de saber cómo se implementan las cosas es que para preservar la compatibilidad hacia atrás, y probablemente en particular para soportar el acceso a los sistemas de archivos escritos por una versión de Mac OS desde otra versión, diferentes cosas y mezclas de cosas necesitan ser soportadas de forma transparente.

No podemos saber desde las herramientas normales de la línea de comandos de la Terminal dónde se guardan realmente los datos.

Así, el acceso a rsrc podría sugerir que se está accediendo a la horquilla de recursos del archivo del catálogo.

$ ls -l Icon^M/rsrc
-rwxr-xr-x  1 root  admin  486 23 Jul  2004 Icon?/rsrc

Sin embargo, sabemos que aunque la sintaxis parece un archivo debajo del Icon^M se está accediendo al directorio, esto no es realmente el caso, porque

$ ls -lR Icon^M
-rwxr-xr-x@ 1 root  admin  0 23 Jul  2004 Icon?

por lo que Apple ha implementado un caso especial para los tenedores de recursos.

Si en cambio hacemos

$ ls -l@
-rwxr-xr-x@ 1 root  admin   0 23 Jul  2004 Icon?
    com.apple.FinderInfo    32 
    com.apple.ResourceFork  486 

Esto sugiere que estamos accediendo al Archivo de Atributos. Pero de nuevo, la implementación de ls puede tener un caso especial para los tenedores de recursos.

John Siracusa señala aquí que las listas ACL se almacenan como "Atributos Extendidos", pero están especialmente enmascarados para que no se muestren en xattr . Así que de nuevo hay un procesamiento de casos especiales en la implementación de xattr.

(Tenga en cuenta que este procesamiento de casos especiales puede estar en el código de la herramienta, o en el código de las APIs subyacentes a las que acceden las herramientas).

GregW, si ves esto, estaría bien tener una opinión más experta sobre si estoy en la línea correcta, o simplemente estoy irremediablemente confundido.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X