Was der Hauptunterschied zwischen dem Rahmen Arbeit und dynamischer BibliothekWas der wesentliche Unterschied zwischen Rahmen und dynamischer Bibliothek ist
Antwort
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 ...).
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.
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.
- 1. Was ist der Unterschied zwischen Plugin und Bibliothek?
- 2. Was ist der wesentliche Unterschied zwischen Funktion und Objekt in JavaScript per Definition?
- 3. Was ist der wesentliche Unterschied zwischen IIS und BizTalk Server beim Bereitstellen von. NET-Anwendung?
- 4. Was ist der wesentliche Unterschied zwischen ORMs mit aktivem Datensatz und Data Mapper?
- 5. Was ist der Unterschied zwischen `==` und `ist`?
- 6. Was ist der Unterschied zwischen% und %% für Kommentare?
- 7. Was ist der Unterschied zwischen shlex.split() und re.split()?
- 8. Was ist der Unterschied zwischen:.! und: r !?
- 9. Was ist der Unterschied zwischen Difftime und '-'?
- 10. Was ist der Unterschied zwischen $ und $$?
- 11. Was ist der Unterschied zwischen Verilog! und ~?
- 12. was ist der Unterschied zwischen [[], []] und [[]] * 2
- 13. Was ist der Unterschied zwischen/* ... */und/** ... */
- 14. Was ist der Unterschied zwischen `&` und `ref`?
- 15. Was ist der Unterschied zwischen $ (...) und `...`
- 16. Was ist der Unterschied zwischen .Equals und ==
- 17. Was ist der Unterschied zwischen "$^N" und "$ +"?
- 18. Was ist der Unterschied zwischen + = und = +?
- 19. Was ist der Unterschied zwischen? und ? = Nil
- 20. Was ist der Unterschied zwischen $ (()) und Ausdruck?
- 21. Was ist der Unterschied zwischen Dynamic Linker und Dynamic Loader?
- 22. Was ist der Unterschied zwischen:
- 23. Unterschied zwischen statischer Verknüpfung und dynamischer Verknüpfung
- 24. Was ist der Unterschied zwischen einer Ansicht und einem Stream?
- 25. Was ist der Unterschied zwischen C/C++ - Bibliothek und STL C++ - Bibliothek in XCode?
- 26. Was ist der Unterschied zwischen einer statischen Bibliothek und einer dynamischen Bibliothek?
- 27. Was ist der Unterschied zwischen Moustache.js, Handlebars.js und Underscore.js?
- 28. Was ist der Unterschied zwischen qs und Querystring
- 29. Was ist der Unterschied zwischen .so und .a Dateien?
- 30. Was ist der Unterschied zwischen RxJava und Bolts?
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
@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. –