.dll-Äquivalent beim Mac?

Dieses Thema im Forum "Mac OS X" wurde erstellt von McOdysseus, 17.03.2006.

  1. McOdysseus

    McOdysseus Thread Starter MacUser Mitglied

    Beiträge:
    6.595
    Medien:
    1
    Zustimmungen:
    820
    MacUser seit:
    31.12.2003
    Hallo zusammen!

    Ich gebe offen zu: Ich bin ein Informatik-Nerd!
    Da ich über die Suche keine Antwort gefunden habe (obwohl ich sicher bin, daß diese oder eine ähnliche Frage hier schon gestelllt wurde…), wäre es nett, wenn mir jemand erklären könnte, was der Zweck von 'dynamic libraries' bei Windows-basierten Rechnern sind (Wirklich nur das Zugreifen verschiedener Anwendungen auf gemeinsam verwendete Daten?) und durch was Selbige bei Apple-Rechnern funktional 'ersetzt' werden.

    Bitte bedenkt, daß meinem technischen Verständnis enge Grenzen gesetzt sind! ;)

    Danke für eure Mühen!
    McO
     
  2. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.808
    Zustimmungen:
    3.633
    MacUser seit:
    23.11.2004
    das nahe liegende .dylib übersehen? ,)

    dynamisch heisst halt, dass du zur laufzeit dazu gelinkt werden, im gegensatz zu static libraries, die beim kompilieren gelinkt werden...
     
  3. misti

    misti MacUser Mitglied

    Beiträge:
    3.496
    Zustimmungen:
    33
    MacUser seit:
    09.06.2004
    dann bist du kein nerd sondern ein n00b ;)
     
  4. McOdysseus

    McOdysseus Thread Starter MacUser Mitglied

    Beiträge:
    6.595
    Medien:
    1
    Zustimmungen:
    820
    MacUser seit:
    31.12.2003
    In der Tat hab ich das Übersehen, aber in diesem Themenbereich bewege ich mich ohnehin wie ein Blinder mit Sonnenbrille bei Neumond.

    Weißt du vielleicht eine Stelle, an der ich über das Thema etwas (in verständlicher Sprache) nachlesen kann?

    Danke
    McO
     
  5. Gremlin

    Gremlin MacUser Mitglied

    Beiträge:
    743
    Zustimmungen:
    3
    MacUser seit:
    11.01.2006
    Es gibt einen recht guten Wikipedia-Artikel. Der ist zwar Windows-Spezifisch, aber die dylibs von MacOS X funktionieren sehr ähnlich.

    Gremlin
     
  6. McOdysseus

    McOdysseus Thread Starter MacUser Mitglied

    Beiträge:
    6.595
    Medien:
    1
    Zustimmungen:
    820
    MacUser seit:
    31.12.2003
    Den Wikipedia-Artikel hatte ich auch schon gefunden, aber der Vergleich zum Mac fehlte mir halt…

    Trotzdem danke für den Hinweis!
     
  7. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.041
    Zustimmungen:
    1.316
    MacUser seit:
    13.09.2004
    @McO: 2te Webseite von rechts, 4ter link von oben ;)

    Grob vereinfacht verhält es sich so:

    Ein Programm besteht aus

    - so genanntem entry-Code, der ein Programm beim System anmelet und den Start ermöglicht.
    - einer Hauptrouztine die den Gesamtablauf überwacht
    - einem Haufen Objekten und/oder Prozeduren
    - einem Exit-Code der ein Programm sauber beendet und Speicher freigibt

    Hat man nun häufig wiederkehrende Aufgaben, so kann man den Code mehrfach benutzen und erstellt sogenannte Libraries. Diese Haben weder Entry- noch Exit-Code und verfügenn auch über keine Hauptroutine, denn das wäre ja alles überflüssig. Im Grunde sind es Sammlungen von Prozeduren oder Objekten. Daher der Name Library. Da man sich zu diesen dynamisch verbinden ( to link) kann, heißen die bei Windows DynamicLinkLibraries oder eben kurz DLL!

    Bei allen (T)UNIXen enden diese Libraries nicht auf *.dll sondern *.so! Das Prinzip ist jedoch ähnlich!


    Bitte nicht hauen, wenn's technisch nicht 100%ig ist, es ging McO ja um das Prinzip!
     
  8. McOdysseus

    McOdysseus Thread Starter MacUser Mitglied

    Beiträge:
    6.595
    Medien:
    1
    Zustimmungen:
    820
    MacUser seit:
    31.12.2003
    @wegus

    also entsprechen die 'sharedobjects' den 'dynamiclinklibraries'?

    na dann schiebe ich noch eine eitle (und wahrscheinlich auch naive) frage hinterher:
    warum höre ich (rein subjektiv) recht häufig windows-user über .dlls fluchen, aber noch nie einen unix/mac-user über .so-dateien?
     
  9. lundehundt

    lundehundt MacUser Mitglied

    Beiträge:
    19.352
    Zustimmungen:
    881
    MacUser seit:
    22.02.2003
    Das Prizip der Dynamischen Library findet sich wohl auf den meisten Betriebssystemen. Eine Library ist keineswegs nur eine Ansammlung gemeinsam genutzter Daten sondern eher eine Sammlung von subprogrammen die es erlauben, Programme modularer aufzubauen.

    Wenn Programmcode compiliert wird laeuft ein linking step der externe Libraries in den Programmcode einbindet. Dann spricht man von statischen Libraries.

    Eine dynamische Library steht therortisch allen Programmen zur Verfuegung und muss nicht zum Zeitpunkt des compilierens gelinkt werden. Erst wenn das Programm aufgerufen wird tritt ein "loader" auf den Plan der vom OS geteuert wird der die Library erst zur Laufzeit des Programmes laed.

    Unter Mac OS X liegen die dynamischen Libraries im Verzeichnis Libraries (wo sonst) und haben den suffix .dylib. Oder sie sind in sogenannte bundels zusammengefasst die die Endung .framework haben.
     
    Zuletzt bearbeitet: 17.03.2006
  10. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.041
    Zustimmungen:
    1.316
    MacUser seit:
    13.09.2004
    Lunde hat es schon beantowrtet, die kurze Erklärung ist "Organisation ist Alles!".

    Bei UNIXen ist es üblich Libs mit Versionen zu bezeichnen:

    libraryabc-1.0.12.so
    libraryabc-1.0.13.so
    libraryabc-1.0.14.so

    die jeweils aktuelle wird über einen symbolischen link adressiert der hier

    libraryabc.so hieße und auf libraryabc-1.0.14.so zeigen würde. Somit erreichen die Programme immer eine Library ( wenn auch nicht immer die neueste auf jedem Rechner vorliegt, so gibt es dann die neueste auf diesem Rechner). Programmiert man nun geschickt und fragt die Version der Library ab, kann man abhängig von der Version unterschiedliche Fähigkeiten aus der Library nutzen.

    Wer bei Windows ( vor allem bei alten Systemen) mal in das System32 und System-Verzeichnis guckt, findet unmgengen von DLLs. Allein schon die immense Zahl unterschiedlicher VisualBasic-Runtime-DLLs ( mit unterschiedlichem Namen), ist irre! Da braucht dann Programm XY die Runtime aus Version 6, und Programm XYZ die von VB for Applications...

    im Grunde fehlt Windows da ein strengerer Formalismus. Das ist eigentlich Alles!
     
Die Seite wird geladen...

Diese Seite empfehlen