Creo que existe cierta confusión general sobre la relación entre los cuatro elementos distribuidos por la web. Quería aclarar esto.
- ¿Las horquillas con nombre son iguales a los atributos extendidos ? Si no, ¿qué son los atributos extendidos?
- ¿La bifurcación de recursos todavía se implementa como una bifurcación o como un atributo extendido ? Si se implementa de otra manera, ¿cómo?
- Los metadatos almacenados con un archivo (creador, fecha de modificación ...) tienen alguna relación o superposición en la terminología entre los otros tres mencionados. Un ejemplo sería, los atributos extendidos son solo pares de metadatos adicionales (clave + valor) almacenados en un archivo.
Cualquier respuesta que pueda aclarar cómo se relacionan los cuatro, especialmente con respecto a las tres preguntas, sería muy apreciada y contribuiría a resolver las disputas que veo que ocurren en diferentes recursos.
metadata
hfs
resources
extended-attributes
terminology
rubixibuc
fuente
fuente
Respuestas:
La confusión surge del hecho de que la relación entre estos conceptos es compleja y ha cambiado con el tiempo. En los sistemas actuales, la diferencia entre una bifurcación 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 de atributos.
Para una bifurcación, lo que se almacena es la lista de bloques de asignación de disco que contienen los datos. Una bifurcación de recursos sigue siendo una bifurcación.
Los metadatos básicos del sistema de archivos se almacenan en elementos dedicados del registro del sistema de archivos en sí, independientemente de los atributos y las referencias de horquilla con nombre.
fuente
com.apple.FinderInfo
puede aparecer como un atributo extendido , la información del buscador extendido (generalmentedate_added
,extended_flags
más tres campos reservados) no es un atributo extendido.No soy un experto en esto, pero he leído un poco para tratar de entender lo que está sucediendo.
Yo diría que "la confusión surge del hecho de que:
AIUI, el archivo de catálogo HFS + contiene registros de archivo de catálogo (entre otras cosas). El registro del archivo del 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 del archivo del catálogo también contiene dos estructuras que proporcionan información sobre la ubicación y el tamaño de la bifurcación de datos y de la bifurcación 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: Los registros de atributos de datos en línea, los registros de atributos de datos de horquilla y los registros de atributos de extensión. Los registros de atributos de datos en línea almacenan pequeños atributos que pueden caber dentro del registro. Los registros de atributos de datos de horquilla contienen referencias a un máximo de ocho extensiones que pueden contener atributos más grandes. se utiliza para extender un registro de Atributo de datos de Fork cuando ya se usan sus registros de ocho extensiones ".
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, entonces, ¿cómo se usan?
AIUI, las primeras versiones del sistema operativo (posiblemente versiones anteriores a 10.4 Tiger, que John Siracusa parece indicar que tuvieron algunos cambios importantes en esta área), señalaron la bifurcación de datos y la bifurcación de recursos del archivo del Catálogo.
AIUI, una vez que llegamos a 10.4 Tiger, el archivo de atributos se usa ampliamente para almacenar todo tipo de datos.
Es posible (pero no lo sé) que en 10.4 y posteriores, cualquier Resource Forks se señale desde el Archivo de atributos. Es decir, en respuesta a su primera pregunta, diría que los tenedores con nombre son atributos extendidos, a menos que sean el tenedor de recursos, y el tenedor de recursos se hace referencia desde el archivo de catálogo.
El problema para saber cómo se implementan las cosas es que para preservar la compatibilidad con versiones anteriores, y probablemente particularmente para admitir el acceso a los sistemas de archivos escritos por una versión de Mac OS desde otra versión, se deben admitir de manera transparente diferentes cosas y mezclas de cosas.
No podemos decir por las herramientas normales de la línea de comando de la Terminal dónde se almacenan los datos.
Por lo tanto, el acceso a
rsrc
podría sugerir que se está accediendo a la bifurcación de recursos en el archivo de catálogo.Sin embargo, sabemos que aunque la sintaxis parece que
Icon^M
se está accediendo a un archivo debajo del directorio, este no es realmente el caso, porqueentonces Apple ha implementado un caso especial para Resource Forks.
Si en cambio lo hacemos
Esto sugiere que estamos accediendo al archivo de atributos. Pero, de nuevo, la implementación de
ls
puede tener un caso especial para Resource Forks.John Siracusa señala aquí que las listas de ACL se almacenan como 'Atributos extendidos', pero están especialmente enmascaradas para que no se muestren
xattr
. De nuevo, hay un procesamiento de casos especiales en la implementación de xattr.(Tenga en cuenta que este procesamiento de caso especial puede estar en el código de la herramienta o en el código de las API subyacentes a las que acceden las herramientas).
GregW, si ves esto, sería bueno obtener una opinión más experta en cuanto a si estoy en la línea correcta, o simplemente confusa.
fuente