stringtranslate.com

Alias ​​(Mac OS)

En Mac OS System 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 al mismo; el objeto de destino se puede mover o cambiar de nombre, y el alias seguirá vinculándose a él (a menos que se vuelva a crear el archivo original; dicho alias es ambiguo y cómo se resuelve depende de la versión de macOS). En Windows, un "atajo" , un archivo con extensión .lnk, realiza una función similar.

Es similar al enlace simbólico de Unix , pero con la diferencia de que funciona incluso si el archivo de destino se mueve a otra ubicación en el mismo disco (en este caso actúa como un enlace físico , 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 físicos) de Unix.

Función

Un alias actúa como 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 . Al hacer 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 alias desde el cuadro de diálogo "Abrir archivo" abriría el archivo original. El propósito de un alias es ayudar al usuario a administrar una gran cantidad de archivos brindándole formas alternativas de acceder a ellos sin tener que copiar los archivos. Mientras que 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 se puede mover 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 alias. Ejemplos de la información utilizada para localizar el original son:

Dado que cualquiera de estas propiedades puede cambiar sin el conocimiento de la computadora, 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 expensas 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 aún iniciará 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 original movido, ya que el alias se puede utilizar para localizar tanto el nombre original como la nueva ubicación del archivo. archivo original. Con enlaces simbólicos la referencia es inequívoca (los enlaces suaves 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 original movido, en lugar del archivo recreado. En Mac OS X 10.2 y versiones posteriores, se encuentra el nuevo archivo, que coincide con el comportamiento de los enlaces simbólicos [1]. Las aplicaciones macOS pueden utilizar mediante programación el comportamiento anterior si es necesario.

Los alias tienen un funcionamiento similar a las sombras en el Workplace Shell gráfico del sistema operativo OS/2 .

Marcas distintivas

Desde System 7 hasta 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 dar cabida a los idiomas que no tienen cursiva (como el japonés ), en Mac OS 8.5 se agregó otra marca distintiva, una insignia con 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. Ventanas.

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

Estructura de archivos

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␀␀␀␀ ( que representa el carácter nulo ).

Siguiendo el número mágico, se ha informado que un alias tiene un conjunto de registros en su interior, cada registro tiene 150 bytes de largo 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, al menos incluidos íconos. [3] [4]

  1. Nombre del tipo de usuario de 4 bytes/código del creador de la aplicación = cadena de texto ASCII larga (ninguno = 0)
  2. Tamaño de registro de 2 bytes = longitud total corta sin firmar
  3. Versión de registro de 2 bytes = versión de entero corto (versión actual = 2)
  4. Tipo de alias de 2 bytes = valor entero corto (archivo = 0; directorio = 1)
  5. Longitud de la cadena del nombre del volumen de 1 byte = longitud del byte sin signo
  6. Cadena de nombre de volumen de 27 bytes (si la cadena de nombre de volumen tiene < 27 caracteres, rellene con ceros)
  7. Volumen de 4 bytes creado fecha mac = valor largo sin firmar en segundos desde el comienzo de 1904 a 2040
  8. Firma de volumen de 2 bytes = valor HFS corto sin firmar
  9. Tipo de volumen de 2 bytes = valor entero corto de Mac OS (los tipos son HD fijo = 0; Disco de red = 1; 400 kB FD = 2; 800 kB FD = 3; 1,4 MB FD = 4; Otros medios expulsables = 5)
  10. ID del directorio principal de 4 bytes = valor HFS largo sin firmar
  11. 1 bytes longitud de la cadena del nombre del archivo = longitud del byte sin signo
  12. Cadena de nombre de archivo de 63 bytes (si la cadena de nombre de archivo tiene < 63 caracteres, rellene con ceros)
  13. Número de archivo de 4 bytes = valor HFS largo sin firmar
  14. Archivo de 4 bytes creado fecha mac = valor largo sin firmar en segundos desde el comienzo de 1904 a 2040
  15. Nombre del 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 de enteros cortos
  18. 2 bytes nlvl To (directorios desde la raíz hasta el origen) = rango de enteros cortos (si el alias está en un volumen diferente, entonces establezca arriba en -1)
  19. Atributos de volumen de 4 bytes = indicadores hexadecimales largos
  20. ID del sistema de archivos de volumen de 2 bytes = valor HFS entero corto
  21. 10 bytes reservados = valor de 80 bits puesto a cero
  22. Cadenas de datos adicionales opcionales de más de 4 bytes = tipo entero corto + longitud de cadena corta sin signo (los tipos son Fin de información extendida = -1; Nombre del directorio = 0; ID del directorio = 1; Ruta absoluta = 2; Nombre de la zona AppleShare = 3; Nombre del servidor 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. datos de cadena = volcado hexadecimal
  24. las longitudes impares tienen una longitud de cadena impar de 1 byte pad = valor de byte establecido en cero

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

Lo siguiente es para usar con Alias ​​Resource Manager 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. Almohadilla final de recurso de 2 bytes = 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. checkForMacAliasFile booleano estático público ( Archivo inputFile ) lanza FileNotFoundException , IOException {         // Sólo los archivos pueden ser alias. // No probar directorios; serán falsos. if ( entradaFile . isFile ()) { byte [] marcador = nuevo byte [] { 0x62 , 0x6F , 0x6F , 0x6B , 0x00 , 0x00 , 0x00 , 0x00 , 0x6D , 0x61 , 0x72 , 0x6B , 0x00 , 0x00 , 0x00 , 0x00 }; longitud larga = archivo de entrada . longitud (); if ( longitud > 16 ) { byte [] resultado = nuevo byte [ 16 ] ; FileInputStream fis = nuevo FileInputStream ( archivo de entrada ); fis . leer ( resultado ); fis . cerca (); devolver matrices . es igual ( resultado , marcador ); } }                                                      falso retorno ; } 

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

Gestionar 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 crearía un alias, con el mismo nombre y "alias" añadido, en la misma carpeta. En versiones posteriores, fue posible crear alias arrastrando y soltando , 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 simples no pudieron encontrar un reemplazo confiable). Esto se hizo seleccionando un nuevo objetivo a través del cuadro de diálogo estándar Abrir archivo.

En Mac OS 8.5 se agregaron opciones para el comando : opción de arrastrar un objeto en el Finder 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 para "crear acceso directo" en los sistemas Windows.

API de programación

La API de Alias ​​Manager es parte de Carbon . Se desconoce si estaba presente en Mac OS Classic. [5]

Mac OS X 10.6 introdujo algunas API relacionadas con alias en Cocoa , como parte de NSURL. [6]

Relación con los enlaces duros y simbólicos de BSD

Unix y sistemas operativos similares proporcionan 2 características muy similares a los alias de macOS: enlaces simbólicos y enlaces físicos . Cuando se utiliza macOS Finder, los enlaces se muestran y se tratan en gran medida como alias de macOS, e incluso llevan un atributo "Tipo" idéntico. Sin embargo, cuando se utiliza 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 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 gratuitamente utiliza las API de Mac Carbon para realizar esta tarea. [7] Teniendo en cuenta eso, comandos como cd se pueden configurar para buscar alias y tratarlos como enlaces físicos o simbólicos.

Referencias

  1. ^ "Capítulo 4 - Alias ​​Manager / Acerca de Alias ​​Manager - Estrategias de búsqueda". Dentro de Macintosh : Archivos . Archivado desde el original el 7 de octubre de 2008.
  2. ^ Alguna información sobre los alias de MacOS recopilados de la web. (esfuerzo de ingeniería inversa)
  3. ^ "¿Por qué los archivos de alias del Finder son tan grandes últimamente?". Comunidades de soporte de Apple .
  4. ^ "Más detalles, incluidos cambios con varias versiones de Mac OS". Archivado desde el original el 30 de abril de 2013 . Consultado el 11 de octubre de 2018 .
  5. ^ "Administrador de alias". Documentación para desarrolladores de Apple .
  6. ^ "Desuso · Número 3 · nathanday/ndalias · GitHub".
  7. ^ Davis, esos. "obtenerNombreVerdadero.c". Sugerencias para Mac OS X. IDG . Consultado el 24 de octubre de 2016 .

enlaces externos