2010-03-26 9 views

Antwort

13

In seinem Herzen, ein O X-Framework ist eine dynamisch verknüpfte Bibliothek. Das Framework ist ein special directory structure namens "Framework Bundle", das eine oder mehrere Versionen der dynamisch verknüpften Bibliothek sowie abhängige Frameworks, Ressourcen, Metadaten usw. enthält. Andere "Bundles" auf OS X enthalten .app Bundles (die ein ausführbar sowie Ressourcen, abhängige Frameworks, etc ...).

8

Dynamische Bibliothek ist ein grundlegendes Konzept, das weitgehend unabhängig von der spezifischen Plattform ist, dh Sie können über dynamische Bibliotheken unter OSX, Linux, Windows sprechen und dasselbe grundlegende Ding meinen - ein Stück verschiebbaren Objektcode mit exportierten API-Symbolen in einer Weise, die es ermöglicht, dass es auf Anforderung von Anwendungen auf der Plattform geladen und geteilt wird.

Ein Framework ist ein OSX-spezifischer Begriff. Es ist ein Paket, das eine allgemein akzeptierte Verzeichnisstruktur definiert und dynamische Bibliotheken, Ressourcen, eine Beschreibung des Pakets und andere relevante Dinge an vordefinierten Orten speichert. Was bedeutet, dass es hauptsächlich semantische Bedeutung hat, die es Entwicklern (und Werkzeugen, die sie erstellen) ermöglicht, sich darauf in einer allgemein verständlichen Weise zu beziehen. Es ist erwähnenswert, dass das Framework keine Shared Libraries enthalten muss.

+0

Aber wenn wir shared library sagen, bedeutet dies, dass mehrere gleichzeitig laufende Anwendungen diese einzelne Bibliothek gemeinsam nutzen können. Angenommen, es gibt eine globale Variable in der dynamischen Bibliothek und die Anwendungen, die auf diese Variable zugreifen, haben eine eigene Instanz, wie ist das möglich? Ich werde verwirrt. – PrithviRaj

+3

@prithviraj - Betriebssysteme, die einen Bibliothekscode für eine Anwendung teilen, teilen sich das Codesegment. Das Datensegment wird normalerweise als "copy-on-write" geladen, was bedeutet, dass eine einzelne Kopie geladen wird und jeder Code, der sich niemals ändert, diese Kopie teilt. Sobald Änderungen im Datensegment der Bibliothek vorgenommen werden, werden diese Seiten in den lokalen Speicherbereich der Anwendung kopiert, während die schreibgeschützten Codeseiten weiterhin freigegeben werden. –

2

Die Anatomy of a Framework könnte nützlich sein. Insbesondere ist die in diesem Beispiel erwähnte Versions/Current/MyFramework eine gemeinsam genutzte Bibliothek. In diesem Abschnitt werden einige der anderen Dinge beschrieben, die möglicherweise in einem Framework-Bundle vorhanden sind.

Verwandte Themen