Verknüpfung (Computer)Als Verknüpfung (englisch link oder shortcut) bezeichnet man in der Computertechnik einen Verweis auf ein Objekt an einer anderen Stelle, ähnlich einem Querverweis. Bei den Objekten kann es sich zum Beispiel um Dateien oder Verzeichnisse handeln, die in der Regel an einem anderen Speicherort abgelegt sind oder auch unter einer anderen Bezeichnung geführt werden. Im World Wide Web können Verknüpfungen auf andere Webseiten oder Abschnitte innerhalb einer Webseite verweisen. Eine Verknüpfung kann auch eine Beziehung zwischen zwei oder mehr Objekten herstellen; solche Assoziationen oder Beziehungen werden oft als UML-Diagramm oder Entity-Relationship-Diagramm dargestellt. Verknüpfungen im Verzeichnis- und DateisystemVerknüpfungen können allgemein in die folgenden fünf Kategorien unterschieden werden:
WindowsUnter Windows gibt es fünf Arten von Verknüpfungen. DateiverknüpfungBei der Dateiverknüpfung von Windows handelt es sich um eine gewöhnliche, sehr kleine Datei, welche die versteckte Dateiendung Ein Windows-Shortcut ist sichtbar, das heißt, der Benutzer sieht die Verknüpfung im Windows-Explorer oder anderen Dateimanagern als Verknüpfung. Die meisten Anwendungen verfolgen solchen Shortcuts aber nicht; wenn die Anwendung versucht, die Dateiverknüpfung zu öffnen, wird in der Regel nicht automatisch das Ziel geöffnet, sondern die Anwendung versucht erfolglos, die Verknüpfung selbst zu öffnen. In Windows-Shortcuts sind keine relativen (.\Unterordner\Datei.txt), sondern nur absolute Pfadangaben möglich. In Windows 95 und Windows 98 konnten Dateiverknüpfungen für DOS Programme angelegt werden, welche mit einer Vielzahl von speziellen Einstellungen versehen werden konnten, um das DOS Programm unter Windows 9x zur Ausführung bringen zu können. Dies war für ca. 10 % der DOS Spiele notwendig, die unter Windows 95/98 nicht out of the box zum Laufen zu bringen waren.[1] OrdnerverknüpfungBei der Ordnerverknüpfung[2] (englisch auch virtual folder,[3] zu dt. virtueller Ordner oder virtuelles Verzeichnis) von Windows handelt es sich um ein Verzeichnis mit den Eigenschaften „schreibgeschützt“ und/oder system,[4] das eine auf das Ziel verweisende Dateiverknüpfung mit dem festen Namen target.lnk sowie eine (versteckte) Datei desktop.ini mit (mindestens) folgendem Inhalt enthält: [.ShellClassInfo]
CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}
Eine Ordnerverknüpfung ist (im Windows-Explorer) transparent. Ordnerverknüpfungen werden von Windows selbst erzeugt und verwendet, beispielsweise in der Netzwerkumgebung. Shell Objects in WindowsShell objects[5] oder shell folder sind in der Windows Registry definierte Objekte, die u. a. auch die Funktion einer Verknüpfung realisieren können. Die (mindestens) notwendigen Registry-Einträge für ein solches shell object sind wie folgt (die [HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000000}]
@="angezeigter Name"
[HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000000}\DefaultIcon]
@="..." ; Pfad zum anzuzeigenden Symbol
[HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000000}\InProcServer32]
@="%SystemRoot%\\System32\\ShDocVw.Dll"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000000}\Instance]
"CLSID"="{0AFACED1-E828-11D1-9187-B532F1E9575D}"
[HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000000}\Instance\InitPropertyBag]
"Attributes"=hex:15,00,00,00
"Target"="..." ; absoluter (nur ohne "TargetKnownFolder" oder "TargetSpecialFolder")
; oder relativer Pfad zum Zielobjekt
"TargetKnownFolder"="{guidguid-guid-guid-guid-guidguidguid}" ; GUID des Zielordners, ab ''Windows Vista''
"TargetSpecialFolder"="0x00xy" ; CSIDL des Zielobjekts
[HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000000}\ShellFolder]
"Attributes"=hex:00,00,00,00
Windows verwendet solche verknüpfenden shell objects selbst, beispielsweise für die virtuellen Ordner Eigene Dateien auf dem Desktop sowie Schriftarten und Verwaltung in der Systemsteuerung. Ein shell object ist (im Windows-Explorer) transparent. Symbolische VerknüpfungSeit Windows Vista und Windows Server 2008 (beide intern Windows NT 6.0) stehen über das Win32-API echte symbolische Verknüpfungen zur Verfügung, die transparent im Dateisystem vorliegen und auf Dateien und Verzeichnisse des eigenen Computers verweisen können. Symbolische Verknüpfungen können eine relative Zielangabe enthalten. Zum Anlegen dieser symbolischen Verknüpfung wird das Recht Create Symbolic Link benötigt. Dieses steht standardmäßig nur Benutzern mit Administratorrechten zur Verfügung. Weiterhin muss beim Anlegen der Verknüpfung bekannt sein, ob das Ziel eine Datei oder ein Verzeichnis ist. Aus diesen Gründen sind die symbolischen Verknüpfungen von Windows nicht vollständig kompatibel zu POSIX. AbzweigungspunkteUnabhängig davon gibt es seit der NTFS-Ausgabe 3.0, dem von Windows 2000 standardmäßig verwendeten Dateisystem, sogenannte „Abzweigungspunkte“ (englisch auch ‚[file system] reparse points‘ oder ‚junction points‘ und kurz ‚junctions‘ genannt). Allerdings wurden die zugehörigen Verwaltungswerkzeuge erst später, nach und nach ab Windows XP mitgeliefert und derartige Verweise wohl erst ab Vista (sicher aber ab Windows 7) auch im Explorer (mit dem üblichen Verknüpfungspfeil, ähnlich wie bei Dateiverknüpfungen) angezeigt. Abzweigungspunkte sind den symbolischen Verknüpfungen auf Verzeichnisse sehr viel ähnlicher als „Dateiverknüpfungen“ oder „Ordnerverknüpfungen“. Diese Abzweigungspunkte entsprechen unter Linux (und anderen Unixähnlichen) weitgehend dem Einhängen von Verzeichnissen an einer weiteren Stelle mittels Abzweigungspunkte können ab Windows Vista über eine Befehlszeile mit dem Befehl Mit den folgenden Befehlen kann ein Abzweigungspunkt C:\>mklink /J "C:\Neue Verbindung" "C:\Verzeichnis"
oder C:\>junction "C:\Neue Verbindung" "C:\Verzeichnis"
oder C:\>linkd "C:\Neue Verbindung" "C:\Verzeichnis"
Mit der oben schon genannten Anwendung und dessen nachrüstbaren Befehl Ein Abzweigungspunkt kann über folgende Befehle aufgehoben werden: C:\>rmdir "C:\Neue Verbindung"
oder C:\>junction -d "C:\Neue Verbindung"
oder C:\>linkd "C:\Neue Verbindung" /D
Wobei der Übergabewert „d“ für das englische ‚delete‘ oder ‚deleting‘ – also „löschen“ – und Im Unterschied zu echten symbolischen Verknüpfungen werden in Abzweigungspunkten stets absolute Pfade gespeichert. Folgendes Beispiel zeigt wie mit den Befehlen C:\>mklink /j "Neue Verbindung" Zielordner
Verbindung erstellt für Neue Verbindung <<===>> Zielordner
C:\>dir /al
Datenträger in Laufwerk C: ist abc
Verzeichnis von C:\
07.12.2010 10:30 <VERBINDUNG> Neue Verbindung [C:\Zielordner]
Auf der Befehlszeile können Abzweigungspunkte auch mit dem Befehl dir angezeigt werden, wobei anstelle eines <DIR> (für normale Verzeichnisse) dann <VERBINDUNG> (oder englisch <JUNCTION>) ausgegeben wird. Dabei wird dann auch – ab Vista – das Verweisziel angezeigt, das bei älteren Windows-Ausgaben gesondert über die genannten Zusatzanwendungen (oder auch über den Befehl OrdnerüberblendungAb Windows Vista werden Schreibvorgänge von Programmen, die keine Schreibberechtigung für das entsprechende Verzeichnis haben, unter bestimmten Voraussetzungen ohne Fehlermeldung durchgeführt; der eigentliche Schreibvorgang wird in ein Schattenverzeichnis im Benutzerprofil umgeleitet. Dieses Schattenverzeichnis wird für diesen Benutzer dem eigentlichen Verzeichnis überblendet, so dass es für ihn aussieht, als sei der Schreibvorgang erfolgreich durchgeführt worden. So können Programme, die das Konzept der eingeschränkten Benutzerrechte nicht korrekt unterstützen, trotzdem ohne Fehlermeldung ablaufen. Cygwin und VerknüpfungenDie Cygwin-Umgebung unterstützt POSIX-kompatible harte Links und symbolische Verknüpfungen. Harte Links werden dabei transparent auf harte Links von Windows abgebildet. Vorhandene Abzweigungspunkte werden als symbolische Verknüpfung angezeigt. Von Cygwin aus angelegte symbolische Verknüpfungen werden allerdings emuliert, da die Windows-eigenen symbolischen Verknüpfungen nicht vollständig POSIX-kompatibel sind. Solche Verknüpfungen sind daher nur für Cygwin-Programme sichtbar, sonstige Programme sehen nur eine Datei mit Systemattribut. Dies gilt auch unter Vista und Windows 7. Cygwin unterstützt auch symbolische Verknüpfungen, die von Microsoft SFU angelegt wurden. Umgekehrt gilt dies nicht. SFU verwendet ebenfalls Dateien zur Emulation, aber in einem abweichenden Format. Jenseits der Windows-WeltVerknüpfungen ähnliche Konzepte finden sich auch in anderen Betriebssystemen: So unterstützt Unix Softlinks oder symbolische Links, welche den Zugriff auf eine Datei über einen alternativen Pfad erlauben. Anlegen lassen sie sich mit dem Dienstprogramm ln oder aber in jedem grafischen Dateimanager per Drag & Drop. Unter OpenVMS kommt ein Konzept namens Logical Name der Windows-Verknüpfung am nächsten. Angelegt werden solche Verknüpfungen mit dem Befehl DEFINE. HyperlinkHyperlinks sind eine besondere Form von Verknüpfungen und bestehen aus einer Angabe des zu verwendenden MIME-Protokolls und einer eindeutigen Ressourcenbezeichnung, z. B. der URL eines Weblinks. ProgrammierungAbbildung von ObjektbeziehungenEine Verknüpfung kann auch eine Beziehung zwischen zwei oder mehr Objekten herstellen; solche Assoziationen oder Beziehungen werden oft als UML-Diagramm oder Entity-Relationship-Diagramm dargestellt und finden entsprechend Verwendung in der Objektorientierten Programmierung oder in Datenbanken. Referenz/ZeigerIn der Programmierung kann eine Variable/Bezeichner ein Alias für eine andere sein – wird der Referenz ein neuer Wert zugewiesen, so ändert sich auch der Wert des „Originals“. Programmspezifische VerknüpfungenWeiterhin gibt es programmspezifische Verknüpfungen, z. B. in Office-Suiten Verweise auf andere Dokumente oder Bilder. Diese können dann meist nur von der entsprechenden Anwendung ausgewertet werden, sind aber grundsätzlich auch nur Verweise auf Objekte an anderer Stelle. Weblinks
Einzelnachweise
|