Alias ​​(Mac OS)

Mac OS alias
Typschlüssel Alis
Uniform Typ Identifier (UTI) com.apple.alias-file
magische Zahl 'book\0\0\0\0mark\0\0\0\0'
Entwickelt von Apple Inc.
Art des Formats Abkürzung

Im Klassischer Mac OS System 7 und später und in Mac OS, ein alias ist eine kleine Datei, die ein anderes Objekt in einem lokalen, entfernten oder abnehmbaren Objekt darstellt[1] Dateisystem und bietet einen dynamischen Zusammenhang damit; Das Zielobjekt kann verschoben oder umbenannt werden, und der Alias ​​wird weiterhin darauf verknüpfen (es sei denn, die Originaldatei wird neu erstellt; ein solcher Alias ​​ist mehrdeutig und wie es gelöst wird, hängt von der Version von macOS ab). In Windows, a "Abkürzung"Eine Datei mit einer .lnk -Erweiterung führt eine ähnliche Funktion aus.

Es ähnelt dem Unix symbolischer Link, aber mit der Unterscheidung des Arbeiten harte VerbindungAber die Quelle und das Ziel des Links können sich in verschiedenen Dateisystemen befinden, und das Ziel des Links kann ein Verzeichnis sein. Als Nachkomme von BSD, macOS unterstützt auch symbolische (und harte) Unix -Links.

Funktion

Ein Alias ​​fungiert als Einsatz für ein Objekt im Dateisystem wie a dokumentieren, ein Anwendung, a Mappe, a Festplatte, a Netzwerkfreigabe oder abnehmbares Medium oder a Drucker. Beim Doppelklick handelt der Computer genauso wie die Originaldatei doppelklickte. Auswahl einer Alias ​​-Datei aus einer "Datei öffnen" ebenfalls Dialogbox würde die Originaldatei öffnen. Der Zweck eines Alias ​​besteht darin, den Benutzer bei der Verwaltung einer großen Anzahl von Dateien zu unterstützen, indem sie alternative Möglichkeiten bereitstellen, auf ihn zuzugreifen, ohne die Dateien selbst kopieren zu müssen. Während ein typischer Alias ​​unter dem klassischen Mac -Betriebssystem zwischen 1 und 5 kb unter macOS gering war, kann er für den Alias ​​zu einem Ordner mehr als 5 MB (5000 kb) sein.

Verhinderung von Alias ​​-Versagen

Ein Alias ​​ist ein dynamischer Verweis auf ein Objekt. Das Original kann an einen anderen Ort verlegt werden innerhalb desselben Dateisystems, ohne den Link zu brechen. Das Betriebssystem speichert mehrere Informationen über das Original in der Ressourcengabel der Alias ​​-Datei. Beispiele für die Informationen, mit denen das Original gefunden wurde, sind:

  • Weg
  • Datei -ID (Inode -Nummer)
  • Verzeichnis -ID (Inode -Nummer)
  • Name
  • Dateigröße

Da sich eine dieser Eigenschaften ohne das Wissen des Computers ändern kann, werden aufgrund der Benutzeraktivität verschiedene Suchalgorithmen verwendet, um das plausibelste Ziel zu finden. Diese Fehlertoleranz unterscheidet den Alias ​​von ähnlichen Funktionen in einigen anderen Betriebssystemen wie der Unix symbolischer Link oder der Microsoft Windows Abkürzungauf Kosten einer erhöhten Komplexität und Unvorhersehbarkeit. Beispielsweise kann eine Anwendung von einem Verzeichnis in ein anderes innerhalb desselben Dateisystems verschoben werden, aber ein vorhandener Alias ​​würde beim Doppelklicken immer noch dieselbe Anwendung starten.

Die Frage kann auftreten, wie ein Alias ​​funktionieren sollte, wenn eine Datei verschoben wird, und dann wird eine Datei mit demselben Namen wie die ursprüngliche bewegte Datei erstellt, da der Alias ​​verwendet werden kann, um sowohl den ursprünglichen Namen als auch den neuen Speicherort des Originaldatei. Mit symbolischen Links ist die Referenz eindeutig (Soft -Links beziehen sich auf die neue Datei, harte Links zum Original). Vor Mac OS X 10.2 würde ein solch eindeutiger Alias ​​jedoch die ursprüngliche bewegte Datei und nicht die nachgebildete Datei konsequent finden. In Mac OS X 10.2 und späteren Veröffentlichungen wird die neue Datei gefunden, die dem Verhalten symbolischer Links entspricht [1]. MacOS -Anwendungen können das alte Verhalten bei Bedarf programmgesteuert verwenden.

Aliase sind ähnlich im Betrieb zu Schatten in der grafischen Arbeitsplatzschale des OS/2 Betriebssystem.

Unterscheidungsmerkmale

In System 7 bis Mac OS 9Aliase unterschieden sich visuell vom Benutzer durch die Tatsache, dass ihre Dateinamen kursiv waren. Sprachen unterzubringen, die keine Kursivschrift haben (wie z. japanisch), in Mac OS 8.5 Ein weiteres Unterscheidungsmerkmal wurde hinzugefügt, das mit einem "Alias ​​-Pfeil" - einem schwarzen Pfeil mit einem kleinen weißen Rand - ähnlich wie für Verknüpfungen in Microsoft -Fenstern ähnelt.

Im Mac OSDie Dateinamen der Aliase werden nicht kursiv, aber das Pfeilabzeichen bleibt.

Dateistruktur

Die Alias ​​-Dateien in macOS beginnen mit dem magische Zahl 62 6f 6f 6b 00 00 00 00 6d 61 72 6b 00 00 00 00 welches ist in ASCII book␀␀␀␀mark␀␀␀␀ ( Darstellung der Nullcharakter).

Nach der magischen Zahl wurde berichtet, dass ein Alias ​​eine Reihe von Datensätzen enthält. Jeder Rekord ist 150 Bytes lang und besteht aus den unten gezeigten Feldern (alle Ganzzahlen sind Big Endian).[2] Alias ​​-Dateien sind jedoch weitaus größer als dies erklären würden, und enthalten andere Informationen zumindest einschließlich Symbole.[3][4]

  1. 4 Bytes Benutzer Typ Name/App Createor Code = Long ASCII Text String (None = 0)
  2. 2 Bytes -Datensatzgröße = kurze nicht signierte Gesamtlänge
  3. 2 Bytes Record Version = Short Integer Version (aktuelle Version = 2)
  4. 2 Bytes alias sort = Short Integer Value (Datei = 0; Verzeichnis = 1)
  5. 1 Byte -Volumenname Zeichenfolge Länge = Byte Unsigned Länge
  6. 27 Bytes Volumenname Zeichenfolge (wenn Band -Zeichenfolge <27 Zeichen, dann mit Nullen pad)
  7. 4 Bytes Volumen erstellt Mac Datum = langer nicht signierter Wert in Sekunden seit Beginn 1904 bis 2040
  8. 2 Bytes Volumensignatur = kurzer nicht signierter HFS -Wert
  9. 2 Bytes Volumentyp = kurzer Ganzzahl -Mac OS -Wert (Typen sind fest HD = 0; Netzwerkdiskette = 1; 400 KB FD = 2; 800 KB FD = 3; 1,4 MB FD = 4; andere ejectable Media = 5)
  10. 4 Bytes Parent Directory ID = langer nicht signierter HFS -Wert
  11. 1 Bytes Dateiname Zeichenfolge Länge = Byte Unsigned Länge
  12. 63 Bytes Dateiname Zeichenfolge (wenn Dateiname Zeichenfolge <63 chars, dann mit Nullen)
  13. 4 Bytes Dateinummer = lang nicht signiertes HFS -Wert
  14. 4 Bytes -Datei erstellt Mac Datum = langer nicht signierter Wert in Sekunden seit Beginn 1904 bis 2040
  15. 4 Bytes -Dateitypname = Long ASCII Text Zeichenfolge
  16. 4 Bytes Datei Ersteller Name = Long ASCII Text Zeichenfolge
  17. 2 Bytes nlvl aus (Verzeichnisse von Alias ​​bis zur Wurzel) = kurzer Ganzzahlbereich
  18. 2 Bytes nlvl bis (Verzeichnisse von der Stamm- bis Quelle) = kurzer Ganzzahlbereich (wenn Alias ​​auf einem anderen Volumen, dann oben auf -1 eingestellt)
  19. 4 Bytes Volumenattribute = lange Hex -Flags
  20. 2 Bytes Volumendateisystem ID = Short Integer HFS -Wert
  21. 10 Bytes reserviert = 80-Bit-Wert auf Null eingestellt
  22. 4+ Bytes Optionale zusätzliche Datenzeichenfolge = Kurzbefängertyp + kurze nicht signierte Zeichenfolgelänge (Typen sind erweitert info End = -1; Verzeichnisname = 0; Verzeichnis ids = 1; Absolute Path = 2; Appleshare Zonenname = 3; AppleShare Server Name = 4; Appleshare Benutzername = 5; Treibername = 6; Überarbeitete Appleshare Info = 9; appreremoteAccess Dialup Info = 10)
  23. String Data = Hex Dump
  24. Un nicht

Alias ​​-Aufzeichnungsstruktur außerhalb der Größenlänge

Das Folgende ist für die Verwendung mit dem Alias ​​Resource Manager des Apple.

  1. 4 Bytes Ressourcentyp Name = Long ASCII Text Zeichenfolge
  2. 2 Bytes Resource ID = Short Ganzzahlwert
  3. 2 Bytes Resource End Pad = Kurzwert auf Null eingestellt

Java -Code, um eine Alias ​​-Datei zu markieren

// Diese Funktion überprüft, ob eine Datei mit der Alias ​​Magic -Nummer übereinstimmt. Öffentlichkeit statisch Boolesche checkFormacaliasfile(Datei Eingabedatei) Würfe FilenotFoundException, IoException {  // Nur Dateien können Aliase sein.  // Testen Verzeichnisse nicht; Sie werden falsch sein.  wenn (Eingabedatei.Isfile()) {  Byte[] Lesezeichen = Neu Byte[] {  0x62, 0x6f, 0x6f, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x61, 0x72, 0x6b, 0x00, 0x00, 0x00, 0x00  };  lang Länge = Eingabedatei.Länge();  wenn (Länge > 16) {  Byte[] Ergebnis = Neu Byte[16];  FileInputStream fis = Neu FileInputStream(Eingabedatei);  fis.lesen(Ergebnis);  fis.nah dran();  Rückkehr Arrays.gleich(Ergebnis, Lesezeichen);  }  }  Rückkehr FALSCH; } 

Da ist ein Github Repo mit dem Arbeiten C ++ - Code hier.

Aliase verwalten

Benutzeroberfläche

In System 7 war die einzige Möglichkeit, einen Alias ​​zu erstellen, das Original auszuwählen und aus dem Menü "Datei" zu wählen "Alias ​​machen". Ein Alias ​​mit demselben Namen und "Alias" wird dann im selben Ordner erstellt. In späteren Versionen wurde es möglich, Aliase durch zu schaffen Drag-and-Drop, während der Befehl und die Option Modifikator -Tasten gedrückt halten.

Mac OS 8.5 fügte eine Funktion hinzu, um Aliase neu zu verbinden, die aus dem einen oder anderen Grund unterbrochen worden waren (wenn die einfachen Suchalgorithmen einen zuverlässigen Ersatz nicht gefunden haben). Dies wurde durchgeführt, indem ein neues Ziel über das Dialogfeld "Standard Open Datei" ausgewählt wurde.

In Mac OS 8.5 wurden Optionen hinzugefügt für Befehl-Möglichkeit Schleppen Ein Objekt im Finder, um an diesem Ort einen Alias ​​zu erstellen. Hier ist das Alias ​​Cursor wurde dem System hinzugefügt. Der Cursor spiegelt das Erscheinungsbild des Cursors "Shortcut" auf Windows -Systemen wider.

Programmierapi

Die ALIAS -Manager -API ist Teil von Kohlenstoff. Es ist nicht bekannt, ob es in Mac OS Classic vorhanden war.[5]

Mac OS X 10.6 stellte einige aliasbezogene APIs zu Kakao, Als ein teil von NSURL.[6]

Beziehung zu BSD -symbolischen und harten Verbindungen

Unix und ähnliche Betriebssysteme bieten 2 Merkmale, die den Aliase von macOS sehr ähnlich sind: Symbolische Links und harte Links. Bei der Verwendung des MacOS -Finders werden Links weitgehend wie MacOS -Aliase angezeigt und behandelt und sogar ein identisches "Art" -attribut tragen. Bei Verwendung der Shell -Befehlszeile werden MacOS -Aliase jedoch nicht erkannt: Sie können beispielsweise das nicht verwenden CD Befehl mit dem Namen einer Alias ​​-Datei. Dies liegt daran, dass ein Alias ​​als Datei auf der Festplatte implementiert wird, die von einer API interpretiert werden muss, während Links im Dateisystem implementiert werden und daher auf jeder Ebene des Betriebssystems funktionsfähig sind.

Derzeit gibt es keinen vorinstallierten Befehl, um einen Alias ​​auf den Pfad der Datei oder des Verzeichnisses zu beheben, auf das er sich bezieht. Ein frei verfügbares C -Programm nutzt jedoch den Mac Kohlenstoff APIs, um diese Aufgabe auszuführen.[7] Angesichts dessen Befehle wie CD Kann eingerichtet werden, um Aliase zu überprüfen und sie genau wie symbolische oder harte Links zu behandeln.

Verweise

  1. ^ "Kapitel 4 - Alias ​​-Manager / Über den Alias ​​-Manager - Suchstrategien". Im Macintosh: Dateien. Archiviert von das Original am 7. Oktober 2008.
  2. ^ Einige Informationen zu aus dem Web gesammelten Aliase von MacOS. (Reverse Engineering Bemühungen)
  3. ^ "Warum sind Finder Alias ​​-Dateien in letzter Zeit so groß?". Apple Support Communities.
  4. ^ "Weitere Details, einschließlich Änderungen mit verschiedenen Mac OS -Versionen". Archiviert von das Original Am 2013-04-30. Abgerufen 2018-10-11.
  5. ^ "Alias ​​Manager". Apple Developer -Dokumentation.
  6. ^ "Abschaltung · Ausgabe Nr. 3 · Nathanday/Ndalias · GitHub".
  7. ^ Davis, Thos. "GetTruename.c". Mac OS X Hinweise. Idg. Abgerufen 24. Oktober 2016.

Externe Links