MacOS 'DLL-Äquivalent

9

Eine DLL ähnelt also einem Ordner, ermöglicht jedoch den gleichzeitigen Zugriff mehrerer Programme / ausführbarer Dateien, wodurch Speicherplatz gespart wird (glaube ich).

Was entspricht Mac einer DLL? Ich habe die darin enthaltenen Google Chrome-Ordner ~/Library/Application Supportdurchgesehen, und anstelle der regulären Windows Default.dll gab es nur einen Ordner, "Standard" als reguläre Datei, dessen Inhalt sich vermutlich regelmäßig in der DLL befindet.

Bietet das Mac-Äquivalent dieselbe Funktion?

Kalaracey
quelle
Dieser Ordner ist nur Ihr Chrome-Profil (persönliche Einstellungen, Lesezeichen usw.). Was Sie möchten, befindet sich im Anwendungspaket.
Daniel Beck
Wenn Sie in den Ordner / Library / Application Support / Google / Chrome / Default / Extensions / (eine seltsame lange Zeichenfolge) schauen, finden Sie viele PNG- und CSS-Dateien für die Themen. Es ist der Themenordner, der sich in der DLL unter Windows befindet.
Kalaracey
In diesem Fall haben die Chrome-Entwickler anscheinend einen Trick angewendet, um beispielsweise Speicher unter Windows zu sparen. Sie verwenden unter OS X kein DLL-Äquivalent. Wenn Sie sich beispielsweise Firefox ansehen, speichern sie die Benutzerprofile als eine Reihe einzelner Dateien auf allen Betriebssystemen.
Daniel Beck
Jetzt wäre es interessant, was Sie tatsächlich fragen: Über "DLLs unter OS X" im Allgemeinen oder was das Äquivalent zu default.dllunter Mac OS X ist. Die Antworten scheinen ganz anders zu sein.
Daniel Beck
4
A dllist kein Ordner oder irgendwo in der Nähe. Es enthält Methoden und Funktionen, die von anderen Programmen aufgerufen werden können, sodass sie diese nicht selbst implementieren müssen. Manchmal enthält a dllauch Ressourcen wie Symbole.
Bobby

Antworten:

12

Die Entsprechungen zu einer Windows-DLL unter OS X sind Frameworks (Cocoa) oder Dylibs (BSD). Die System zugeführt diejenigen sind in /usr/libund /System/Library/Frameworksverbunden.

Der Ordner, den Sie erwähnen, Library/Application Supportähnelt den Application Data(oder AppRoamingjetzt?) Ordnern in Windows und enthält die persönlichen Einstellungen Ihrer Anwendungen.

Obwohl ich nicht weiß, was das Äquivalent für Chrome default.dllunter OS X ist, enthält das Anwendungspaket Folgendes:

Alt-Text

Aufgrund der Größe scheint Google Chrome Frameworkes wichtig zu sein (der Ordner Frameworksoben enthält nicht viel Interessantes).

Daniel Beck
quelle
3

Es gibt keine echten DLLs in OS X, Linux oder POSIX. Sie machen keine Unterscheidung.

Warum?

  1. Zum einen sind viele Mac-Inhalte in sich geschlossen (.apps sind schließlich wirklich nur Ordner).

  2. Die Binärdateien in Mac OS X (und Linux und anderen * Nixen) verwenden die ELF (steht für Executable and Library Format) sowohl für Bibliotheken als auch für ausführbare Dateien.

Die Standarddatei, die Sie dort gefunden haben, war wahrscheinlich eine ELF-Binärdatei.

Update : dmckee weist darauf hin, dass .dylibs exklusiv für Macs im Mach-O- Format vorliegen. Es ist jedoch schwierig, die beiden vom Sehen zu unterscheiden, da keiner von ihnen tatsächlich eine Erweiterung erfordert.

digitxp
quelle
1
DLLs unter Windows verwenden dasselbe Format wie ausführbare Dateien (oder zumindest einmal), nicht wahr?
Daniel Beck
1
Sie tun es immer noch .
digitxp
Gut zu wissen - als ich Ihren Beitrag las, dachte ich, Sie hätten die Unixe herausgegriffen, aber Sie haben ELF ausdrücklich erwähnt.
Daniel Beck
1
Ähm ... das ist einfach falsch. Gespeicherte Objektdateien (.so) und dynamische Bibliotheken (.dylib) dienen unter Linux und Mac OS genau demselben Zweck wie dynamisch ladbare Bibliotheken (.dll) unter Windowns. Die Tatsache, dass sie einen Verpackungsstandard mit ausführbaren Dateien teilen, ändert nichts an dieser Tatsache.
dmckee --- Ex-Moderator Kätzchen
1
@digitxp: Du hast den Punkt verpasst. Die Verpackung spielt dabei keine Rolle. Gemeinsame Objektdateien von Windows .dlls, Mac OS .dylibs und .so (die von Mac OS ebenfalls verwendet werden können, wenn auch nicht so elegant wie .dylibs) bieten alle denselben Dienst: zur Laufzeit dynamisch ladbare, gemeinsam genutzte Bibliotheken.
dmckee --- Ex-Moderator Kätzchen
2

Die nächstgelegenen Linux- und Mac-Entsprechungen werden als "gemeinsam genutzte Objektdateien" (normalerweise mit der Erweiterung .so) und als dynamische Bibliotheken (normalerweise mit einer .dylib-Erweiterung) bezeichnet.

Freigegebene Objekte werden auf typischen Linux-Systemen häufig verwendet. Dynamische Bibliotheken sind nicht ganz so allgegenwärtig, da das .app-Format einen sehr sicheren Verteilungsmechanismus für die Unterstützung mehrerer Architekturen auf Kosten größerer exectuatble "Dateien" ermöglicht.

dmckee --- Ex-Moderator Kätzchen
quelle