Alias ​​(Mac OS)

Pequeño archivo que representa otro archivo
Alias ​​de Mac OS
Código de tipoAlisado
Identificador de tipo uniforme (UTI)archivo com.apple.alias
Número mágico'book\0\0\0\0mark\0\0\0\0'
Desarrollado porApple, Inc.
Tipo de formatoatajo

En el sistema operativo Mac OS 7 clásico y posteriores, y en macOS , un alias es un archivo pequeño que representa otro objeto en un sistema de archivos local, remoto o extraíble [1] y proporciona un enlace dinámico a él; el objeto de destino se puede mover o renombrar, y el alias seguirá vinculándose a él (a menos que se vuelva a crear el archivo original; un alias de este tipo es ambiguo y la forma en que se resuelve depende de la versión de macOS). En Windows, un "acceso directo" , un archivo con una extensión .lnk, realiza una función similar.

Es similar al enlace simbólico de Unix , pero con la distinción de funcionar incluso si el archivo de destino se mueve a otra ubicación en el mismo disco (en este caso actúa como un enlace duro , pero el origen y el destino del enlace pueden estar en diferentes sistemas de archivos, y el destino del enlace puede ser un directorio). Como descendiente de BSD , macOS también admite enlaces simbólicos (y duros) de Unix.

Función

Un alias actúa como un sustituto de cualquier objeto en el sistema de archivos, como un documento , una aplicación , una carpeta , un disco duro , un recurso compartido de red o un medio extraíble o una impresora . Cuando se hace doble clic, la computadora actuará de la misma manera que si se hubiera hecho doble clic en el archivo original. Del mismo modo, elegir un archivo de alias desde un cuadro de diálogo "Abrir archivo" abriría el archivo original. El propósito de un alias es ayudar al usuario a administrar grandes cantidades de archivos al proporcionar formas alternativas de acceder a ellos sin tener que copiar los archivos en sí. Si bien un alias típico en el Mac OS clásico era pequeño, entre 1 y 5 KB, en macOS puede ser bastante grande, más de 5 MB (5000 KB) para el alias de una carpeta.

Prevención de fallos de alias

Un alias es una referencia dinámica a un objeto. El original puede ser movido a otro lugar dentro del mismo sistema de archivos , sin romper el vínculo. El sistema operativo almacena varios datos sobre el original en la bifurcación de recursos del archivo de alias. Algunos ejemplos de la información utilizada para localizar el original son:

  • camino
  • ID de archivo (número de inodo)
  • ID de directorio (número de inodo)
  • nombre
  • tamaño del archivo

Dado que cualquiera de estas propiedades puede cambiar sin que el ordenador lo sepa, como resultado de la actividad del usuario, se utilizan varios algoritmos de búsqueda para encontrar el objetivo más plausible. Esta tolerancia a fallos distingue al alias de funciones similares en otros sistemas operativos, como el enlace simbólico de Unix o el acceso directo de Microsoft Windows , a costa de una mayor complejidad e imprevisibilidad. Por ejemplo, una aplicación se puede mover de un directorio a otro dentro del mismo sistema de archivos, pero un alias existente seguiría ejecutando la misma aplicación al hacer doble clic.

Puede surgir la pregunta de cómo debería funcionar un alias si se mueve un archivo y luego se crea un archivo con el mismo nombre que el archivo movido original, ya que el alias se puede usar para localizar tanto el nombre original como la nueva ubicación del archivo original. Con los enlaces simbólicos, la referencia es inequívoca (los enlaces simbólicos se refieren al nuevo archivo, los enlaces físicos al original). Sin embargo, antes de Mac OS X 10.2, un alias tan ambiguo encontraría consistentemente el archivo movido original, en lugar del archivo recreado. En Mac OS X 10.2 y versiones posteriores, se encuentra el nuevo archivo, coincidiendo con el comportamiento de los enlaces simbólicos [1]. Las aplicaciones macOS pueden usar programáticamente el comportamiento anterior si es necesario.

Los alias funcionan de manera similar a las sombras en el Workplace Shell gráfico del sistema operativo OS/2 .

Signos distintivos

En el sistema operativo 7 y Mac OS 9 , los alias se distinguían visualmente para el usuario por el hecho de que sus nombres de archivo estaban en cursiva. Para adaptarse a los idiomas que no tienen cursiva (como el japonés ), en Mac OS 8.5 se agregó otra marca distintiva, una "flecha de alias" (una flecha negra con un pequeño borde blanco) similar a la que se usa para los accesos directos en Microsoft Windows.

En macOS , los nombres de archivo de los alias no están en cursiva, pero la insignia de flecha permanece.

Estructura de archivo

Los archivos de alias en macOS comienzan con el número mágico 62 6F 6F 6B 00 00 00 00 6D 61 72 6B 00 00 00 00 que está en ASCII book␀␀␀␀mark␀␀␀␀ ( representa el carácter nulo ).

Siguiendo el número mágico, se ha informado que un alias tiene un conjunto de registros dentro de él, cada registro tiene 150 bytes de longitud y consta de los campos que se muestran a continuación (todos los números enteros son big endian). [2] Sin embargo, los archivos de alias son mucho más grandes de lo que esto explicaría e incluyen otra información, incluidos al menos íconos. [3] [4]

  1. Nombre de tipo de usuario de 4 bytes/código de creador de la aplicación = cadena de texto ASCII larga (ninguno = 0)
  2. Tamaño de registro de 2 bytes = longitud total corta sin signo
  3. Versión de registro de 2 bytes = versión entera corta (versión actual = 2)
  4. 2 bytes alias kind = valor entero corto (archivo = 0; directorio = 1)
  5. Cadena de nombre de volumen de 1 byte con longitud de byte sin signo
  6. Cadena de nombre de volumen de 27 bytes (si la cadena de nombre de volumen < 27 caracteres, rellénela con ceros)
  7. Volumen de 4 bytes creado mac fecha = valor largo sin signo en segundos desde el comienzo 1904 hasta 2040
  8. Firma de volumen de 2 bytes = valor HFS corto sin signo
  9. Tipo de volumen de 2 bytes = valor entero corto del sistema operativo Mac (los tipos son: disco duro fijo = 0; disco de red = 1; disco duro externo de 400 kB = 2; disco duro externo de 800 kB = 3; disco duro externo de 1,4 MB = 4; otros medios expulsables = 5)
  10. 4 bytes de id del directorio principal = valor HFS largo sin signo
  11. 1 byte nombre de archivo cadena longitud = byte longitud sin signo
  12. Cadena de nombre de archivo de 63 bytes (si la cadena de nombre de archivo < 63 caracteres, rellénela con ceros)
  13. Número de archivo de 4 bytes = valor HFS largo sin signo
  14. Archivo de 4 bytes creado mac fecha = valor largo sin signo en segundos desde el comienzo 1904 hasta 2040
  15. Nombre de tipo de archivo de 4 bytes = cadena de texto ASCII larga
  16. Nombre del creador del archivo de 4 bytes = cadena de texto ASCII larga
  17. 2 bytes nlvl Desde (directorios desde el alias hasta la raíz) = rango entero corto
  18. 2 bytes nlvl To (directorios desde la raíz hasta la fuente) = rango entero corto (si el alias está en un volumen diferente, configure lo anterior en -1)
  19. Atributos de volumen de 4 bytes = indicadores hexadecimales largos
  20. 2 bytes de identificación del sistema de archivos de volumen = valor HFS entero corto
  21. 10 bytes reservados = valor de 80 bits establecido en cero
  22. Cadenas de datos adicionales opcionales de 4+ bytes = tipo entero corto + longitud de cadena corta sin signo (los tipos son Fin de información extendida = -1; Nombre de directorio = 0; ID de directorio = 1; Ruta absoluta = 2; Nombre de zona de AppleShare = 3; Nombre de servidor de AppleShare = 4; Nombre de usuario de AppleShare = 5; Nombre del controlador = 6; Información de AppleShare revisada = 9; Información de acceso telefónico de AppleRemoteAccess = 10)
  23. cadena de datos = volcado hexadecimal
  24. Las longitudes impares tienen una longitud de cadena impar de 1 byte. El valor del byte se establece en cero.

Estructura de registro de alias fuera de la longitud del tamaño

Lo siguiente es para utilizar con el Administrador de recursos de alias de Apple.

  1. Nombre del tipo de recurso de 4 bytes = cadena de texto ASCII larga
  2. ID de recurso de 2 bytes = valor entero corto
  3. 2 bytes de recurso de fin de relleno = valor corto establecido en cero

Código Java para marcar un archivo alias

// Esta función comprueba si un archivo coincide con el número mágico del alias. public static boolean checkForMacAliasFile ( File inputFile ) throws FileNotFoundException , IOException {         // Solo los archivos pueden ser alias. // No pruebe los directorios; serán falsos. if ( inputFile . isFile ()) { byte [] bookmark = new byte [] { 0x62 , 0x6F , 0x6F , 0x6B , 0x00 , 0x00 , 0x00 , 0x00 , 0x6D , 0x61 , 0x72 , 0x6B , 0x00 , 0x00 , 0x00 , 0x00 }; long length = inputFile . length (); if ( length > 16 ) { byte [] result = new byte [ 16 ] ; FileInputStream fis = new FileInputStream ( inputFile ); fis . read ( result ); fis . close (); return Arrays . es igual a ( resultado , marcador ); } }                                                      devuelve falso ; } 

Hay un repositorio de Github con código C++ funcional aquí.

Administrar alias

Interfaz de usuario

En System 7, la única forma de crear un alias era seleccionar el original y elegir "Crear alias" en el menú "Archivo". Luego se creaba un alias con el mismo nombre y la palabra "alias" adjuntada en la misma carpeta. En versiones posteriores, fue posible crear alias mediante la función de arrastrar y soltar , mientras se mantenían presionadas las teclas modificadoras de comando y opción.

Mac OS 8.5 agregó una función para volver a conectar alias que se habían roto por una razón u otra (cuando los algoritmos de búsqueda simple no pudieron encontrar un reemplazo confiable). Esto se hizo seleccionando un nuevo destino a través del cuadro de diálogo Abrir archivo estándar.

En Mac OS 8.5 se agregaron opciones para arrastrar un objeto en el Finder con el comando - opción para crear un alias en esa ubicación. Aquí es donde se agregó el cursor de alias al sistema. El cursor refleja la apariencia del cursor de "crear acceso directo" en los sistemas Windows.

API de programación

La API de Alias ​​Manager es parte de Carbon que permite a los desarrolladores crear alias y acceder al archivo con alias. [5]

Mac OS X 10.6 introdujo la API de marcadores en Cocoa como un conjunto de métodos NSURLy funciones para CFURL. [6] [7] En Mac OS X 10.7.3 , la API se mejoró para App Sandbox con marcadores con alcance de seguridad, que agregan permisos de seguridad a los alias por aplicación o por documento. [8]

En Mac OS X 10.8, la API de Alias ​​Manager quedó oficialmente obsoleta en favor de la API de Marcadores. [5]

Unix y sistemas operativos similares ofrecen dos características muy similares a los alias de macOS: enlaces simbólicos y enlaces físicos . Al utilizar el Finder de macOS, los enlaces se muestran y se tratan en gran medida como alias de macOS, e incluso llevan un atributo "Kind" idéntico. Sin embargo, al utilizar la línea de comandos del shell, los alias de macOS no se reconocen: por ejemplo, no se puede utilizar el comando cd con el nombre de un archivo de alias. Esto se debe a que un alias se implementa como un archivo en el disco que debe ser interpretado por una API, mientras que los enlaces se implementan dentro del sistema de archivos y, por lo tanto, son funcionales en cualquier nivel del sistema operativo.

Actualmente no existe ningún comando preinstalado para resolver un alias en la ruta del archivo o directorio al que hace referencia. Sin embargo, un programa C disponible de forma gratuita utiliza las API de Carbon para Mac para realizar esta tarea. [9] En vista de ello, se pueden configurar comandos como cd para comprobar si hay alias y tratarlos como enlaces simbólicos o físicos.

Referencias

  1. ^ "Capítulo 4 - Administrador de alias / Acerca del Administrador de alias - Estrategias de búsqueda". Inside Macintosh : Archivos . Archivado desde el original el 7 de octubre de 2008.
  2. ^ "Algunos datos sobre alias de MacOS recopilados de la web". Archivado desde el original el 20 de enero de 2010.
  3. ^ "¿Por qué los archivos alias del Finder son tan grandes últimamente?". Comunidades de soporte técnico de Apple . Archivado desde el original el 7 de mayo de 2021.
  4. ^ "Más detalles, incluidos los cambios en las distintas versiones de Mac OS". Archivado desde el original el 2013-04-30 . Consultado el 2018-10-11 .
  5. ^ ab "Administrador de alias". Documentación para desarrolladores de Apple . Archivado desde el original el 11 de agosto de 2020.
  6. ^ "Notas de la versión de NSURL y CFURL". Biblioteca de referencia de Mac OS X. 5 de junio de 2008. Archivado desde el original el 26 de octubre de 2018.
  7. ^ "Guía de programación del sistema de archivos". Biblioteca para desarrolladores de Mac OS X. 6 de junio de 2011. Archivado desde el original el 6 de octubre de 2011.
  8. ^ "App Sandbox en profundidad". Biblioteca para desarrolladores de Mac OS X. 13 de septiembre de 2016. Archivado desde el original el 11 de julio de 2012.
  9. ^ Davis, Thos. "getTrueName.c". Consejos para Mac OS X. IDG. Archivado desde el original el 13 de noviembre de 2014. Consultado el 24 de octubre de 2016 .
  • Alias ​​del Sistema 7: artículo sobre los alias del Sistema 7, de 1992


Obtenido de "https://es.wikipedia.org/w/index.php?title=Alias_(Mac_OS)&oldid=1218291826"