Fragen zu 10.4 Interna

T

Tom_Stern

Mitglied
Thread Starter
Dabei seit
11.06.2004
Beiträge
94
Reaktionspunkte
0
Hallo Zusammen.

Ich beschäftige mich derzeitig mit 10.4 und hätte da mal ein paar grundlegende Fragen:

1) Ich habe gelesen, dass Programm-Bundles Shared Librarys beinhalten, die anderen Programmen systemweit zur Verfügung stehen. Woher weiß das System, welche Library in welchem Programm-Bundle die Aktuellste ist bzw. diejenige ist, die den Funktionsumfang enthält, der benötigt wird?

2) Es gibt ja noch den Ordner /Library. Hier werden wohl auch Shared Librarys abgelegt, also Programmbibliotheken, die von mehreren Programmen genutzt werden. Soweit ich weiß, gab es bei Mac OS 9.x eine Versionsnummernarchitektur, wonach jeweils immer die höchste Library gekennzeichnet wurde und die alten dadurch nicht verändert oder überschrieben oder gelöscht wurden. Ist das bei Mac OS X auch noch so mit der Versionsnummernvergabe für neu hinzugefügte Versionen einer bereits vorhandenen Shared Library?

3. Da ja Shared Librarys im jeweiligen Programm-Bundle liegen können und trotzdem Systemweit zur Verfügung stehen, welche Existenzberechtigung hat dann noch der /Library - Ordner (bezogen auf Shared Librarys)?

4. Ich vermute, dass es sowas wie eine Dateitypenzuordnungstabelle gibt, in der festgehalten ist, welche Dateitypen mit welchen Programmen geöffnet werden. Ich meine, mal gehört zu haben, dass die zu handhabenen Datei-Typen im jeweiligen Programm-Bundle eines Programmes hinterlegt sind. Sucht das System dann von sich aus alle Programm-Bundles nach dieser Information ab, wenn eine Datei geöffnet wird oder teilt das Programm-Bundle (bzw. das Programm beim erstmaligen Start) dem System mit, welche Dateitypen es handhaben kann und das wird dann im OS in einer Tabelle festgehalten?

Möglicherweise hat jemand auch einen Link zu dem oben skizzierten Themengebieten, der mir weiterhelfen könnte.

Danke und Gruß

Tom
 
Kurz zu 1 und 3: Nein, Programme können zwar Bibliotheken im Bundle beinhalten, diese stehen dann aber anderen Programmen nicht zur Verfügung. Diese sollten dann nach Möglichkeit im Ordner /Library/Frameworks (oder einem der Pendante) liegen.
Zu 2: Was ich dazu spontan wüßte ist, daß ein Framework-Bundle mehrere Versionen enthalten kann. Ein vergleichbarer Mechanismus ist mir aber vom klassischen Mac OS her nicht bekannt.
Zu 4: Der Finder ist es, der diese Informationen beim Kopieren der Programme ausliest (genauer eigentlich die sog. Launch Services). Diese Informationen stehen in der Datei Info.plist im Programmpaket. Es gibt dazu auch ausführliche Informationen auf den Entwicklerseiten von Apple. Das genaue Dokument habe ich allerdings nicht im Kopf. Wenn du selbst nur ein paar Zuordnungen ändern möchtest, geht das allerdings am einfachsten über das Dateiinfofenster im Finder oder mit dem Programm RCDefaultApps. Letzteres erlaubt auch die Zuordnung von Programmen zu bestimmten Protokollen, wie http:// und feed://.
 
Ulfrinn schrieb:
Kurz zu 1 und 3: Nein, Programme können zwar Bibliotheken im Bundle beinhalten, diese stehen dann aber anderen Programmen nicht zur Verfügung.

Hi Ulfrinn,

danke für die schnelle Antwort. Zu 1) und 2) habe ich die Informationen von folgender Webseite:

http://www.cgc.ch/wiesomac/wiesomac/rechnerkrieg.html

Dort steht u.a.:

[Bei Mac OS ist es und war es nie nötig Shared Libraries zu ersetzen, mehrere Versionen können im Systemerweiterungsordner parallel existieren. Um Versionskonflikte zu verhindern verwendet das klassische Mac OS mehrere Versionsnummern, ähnlich der Minor- und Major-Versionierung bei UNIX und Mac OS X. Bei Mac OS X können sich Shared Libraries oder allgemein Shared Frameworks übrigens innerhalb der Programmbundles befinden, stehen aber trotzdem allen Programmen zur Verfügung - deshalb kein Vergleich zu dem, wie Microsoft mit none-sharable side-by-side DLLs die Symptome dieser DLL-Architektur behandeln wollen.]

Wie gut diese Information recherchiert ist, kann ich leider nicht sagen. Es wäre mal interessant zu wissen, ob das stimmt mit den Shared Librarys in den Programm-Bundles.

Gruß

Tom
 
Zuletzt bearbeitet von einem Moderator:
Tom_Stern schrieb:
Hi Ulfrinn,

danke für die schnelle Antwort. Zu 1) und 2) habe ich die Informationen von folgender Webseite:

http://www.cgc.ch/wiesomac/wiesomac/rechnerkrieg.html

Dort steht u.a.:

[Bei Mac OS ist es und war es nie nötig Shared Libraries zu ersetzen, mehrere Versionen können im Systemerweiterungsordner parallel existieren. Um Versionskonflikte zu verhindern verwendet das klassische Mac OS mehrere Versionsnummern, ähnlich der Minor- und Major-Versionierung bei UNIX und Mac OS X. Bei Mac OS X können sich Shared Libraries oder allgemein Shared Frameworks übrigens innerhalb der Programmbundles befinden, stehen aber trotzdem allen Programmen zur Verfügung - deshalb kein Vergleich zu dem, wie Microsoft mit none-sharable side-by-side DLLs die Symptome dieser DLL-Architektur behandeln wollen.]

Wie gut diese Information recherchiert ist, kann ich leider nicht sagen. Es wäre mal interessant zu wissen, ob das stimmt mit den Shared Librarys in den Programm-Bundles.

Gruß

Tom
Eigentlich bin ich absolut davon überzeugt, daß es mit den Shared Libraries in den Programmpaketen nicht funktioniert. Da müßte einfach an zu vielen Stellen gesucht werden, da für diese Informationen keine Datenbank besteht. Unter Mac OS können Programme ja an jedem x-beliebigen Ort liegen. Ich bleibe also bei meiner Aussage, daß Bibliotheken, die im Programmpaket (Unterordner „Frameworks“) stecken, nur vom jeweiligen Programm eingebunden werden können.
Bzgl. der Versionierung und dem alten OS: Die Bibliotheken wurden im Prinzip beim Start des Systems geladen, nicht erst nach Bedarf bei Programmstart. Mit einem unterschiedlichen Dateinamen, z. B. „Meine Bibliothek 1.0“ und „Meine Bibliothek 1.2“ ist es theoretisch möglich, zwei ähnliche Erweiterungen im Systemordner liegen zu haben. Praktisch würde das Dispatching aber wohl versagen und nur die aktuellste Version, also die, die zuletzt geladen wird, verwendet werden.
 
Zuletzt bearbeitet von einem Moderator:
ich bin nun kein wahrer experte. mein problem ist, dass der benutzerwechsel jedesmal mit bangen minuten verbunden ist. mein neues 10.4.1 braucht sehr lange, bis es den wechsel vollzieht und nach dem kennwort fragt - und der farbkreisel dreht und dreht sich. ist dies normal)
 
BEU schrieb:
ich bin nun kein wahrer experte. mein problem ist, dass der benutzerwechsel jedesmal mit bangen minuten verbunden ist. mein neues 10.4.1 braucht sehr lange, bis es den wechsel vollzieht und nach dem kennwort fragt - und der farbkreisel dreht und dreht sich. ist dies normal)
Hallo und willkommen im Forum! Wahrscheinlich werden dir mehr Leute helfen können, wenn du für diese Frage ein separates Thema aufmachst. Schreibe dann bitte gleich auch ein paar mehr Informationen, wie beispielsweise, ob du von einer vorherigen OS-X-Version wie 10.3.x (Panther) aktualisiert hast, ob dies mit allen Benutzern auftritt, respektive auch beim Wechsel zwischen zwei neu angelegten Benutzern. Im Zweifelsfall ist die Allheilmethode „Rechte reparieren“ (mit dem Festplatten-Dienstprogramm) immer gut. Für weitere Fragen allerdings wie gesagt bitte ein neues Thema aufmache – Dann kommen dir mehr Leute zur Hilfe. :)
 
"man dyld" beantwortet dir, wo das system nach shared libs sucht...
wie schon erwähnt wurde, haben diese auch versions nummern (auch im binary)
 
Zurück
Oben Unten