Odpowiednik dll systemu MacOS

9

więc biblioteka DLL jest podobna do folderu, ale umożliwia dostęp do niego wielu programom / plikom wykonywalnym jednocześnie, co oszczędza pamięć (tak myślę).

Jaki jest odpowiednik biblioteki DLL dla komputera Mac? Przeglądałem wewnątrz foldery Google Chrome ~/Library/Application Support, a zamiast zwykłego pliku Windows Default.dll był tylko folder „Domyślny” jako zwykły plik z zawartością, jak sądzę, regularnie znajdowałby się w bibliotece DLL.

Czy odpowiednik komputera Mac zapewnia tę samą funkcję?

kalaracey
źródło
Ten folder to tylko Twój profil Chrome (ustawienia osobiste, zakładki itp.). To, czego chcesz, znajduje się w pakiecie aplikacji.
Daniel Beck
Cóż, kiedy zajrzysz do folderu / biblioteki / wsparcia aplikacji / Google / Chrome / Default / Extensions / (jakiś dziwny długi ciąg), znajdziesz wiele plików png i css dla motywów. Jest to folder motywów, który znajduje się w bibliotece DLL w systemie Windows.
kalaracey
W takim przypadku wydaje się, że programiści Chrome zastosowali sztuczkę, np. W celu oszczędzania pamięci w systemie Windows. Nie używają ekwiwalentu DLL w OS X. Jeśli spojrzysz np. Na Firefox, przechowują profile użytkowników jako kilka pojedynczych plików we wszystkich systemach operacyjnych.
Daniel Beck
Ciekawe, o co właściwie pytasz: o „bibliotekach DLL w systemie OS X” lub o odpowiedniku default.dllsystemu Mac OS X. Odpowiedzi wydają się być zupełnie inne.
Daniel Beck
4
A dllnie jest folderem ani nigdzie w pobliżu. Zawiera metody i funkcje, które mogą być wywoływane przez inne programy, dzięki czemu nie potrzebują ich implementować samodzielnie. Czasami a dlltakże zawiera zasoby, takie jak ikony.
Bobby

Odpowiedzi:

12

Odpowiednikami biblioteki DLL systemu Windows w systemie OS X są Frameworki (kakao) lub dylibs (BSD). Dostarczone przez system są odpowiednio /usr/libi /System/Library/Frameworks.

Wspomniany folder Library/Application Supportjest podobny do folderów Application Data(lub AppRoamingteraz?) W systemie Windows i zawiera ustawienia osobiste aplikacji.

Chociaż nie wiem, jaki jest odpowiednik Chrome w default.dllOS X, pakiet aplikacji zawiera następujące elementy:

alternatywny tekst

Odgadywanie na podstawie rozmiaru, wygląda na to, że Google Chrome Frameworkmoże być ważne (folder Frameworkspowyżej nie zawiera wielu zainteresowań)

Daniel Beck
źródło
3

W tym przypadku nie ma prawdziwych bibliotek DLL w systemie OS X, Linux ani żadnym POSIX. Nie różnicują.

Dlaczego?

  1. Na przykład wiele rzeczy na Maca jest samodzielnych (w końcu .app to tak naprawdę tylko foldery).

  2. Pliki binarne w Mac OS X (oraz Linux i innych * Nixach) używają ELF (skrót od pliku wykonywalnego i formatu biblioteki) zarówno dla bibliotek, jak i plików wykonywalnych.

Plik domyślny, który tam znajdziesz, był prawdopodobnie plikiem binarnym ELF.

Aktualizacja : dmckee wskazuje, że .dylibs są w formacie Mach-O wyłącznym dla komputerów Mac. Trudno jednak odróżnić je od wzroku, ponieważ żadne z nich nie wymaga żadnego rozszerzenia.

digitxp
źródło
1
Pliki DLL w systemie Windows używają tego samego formatu co pliki wykonywalne (a przynajmniej kiedyś dawno temu), prawda?
Daniel Beck
1
Nadal tak robią .
digitxp
Dobrze wiedzieć - kiedy czytałem twój post, myślałem, że wyróżniasz Unixy, ale konkretnie wspomniałeś o ELF.
Daniel Beck
1
Ehm ... to po prostu źle. Pliki obiektów współużytkowanych (.so) i biblioteki dynamiczne (.dylib) mają dokładnie taki sam cel w systemach Linux i Mac OS, jak biblioteki dynamicznie ładowane (.dll) w Windowns. Fakt, że dzielą standard pakowania z plikami wykonywalnymi, nie zmienia tego faktu.
dmckee --- były moderator kociak
1
@digitxp: Nie trafiłeś w sedno. Opakowanie nie jest ważne w tej kwestii. Pliki współdzielonych plików Windows .dll, Mac OS .dylib i .so (z których Mac OS może również korzystać, choć nie tak płynnie, jak używa .dylib) - wszystkie zapewniają tę samą usługę: dynamicznie ładowane, współdzielone biblioteki w czasie wykonywania.
dmckee --- były moderator kociak
2

Najbliższe odpowiedniki Linuksa i Maca nazywane są odpowiednio „plikami obiektów współdzielonych” (zwykle z rozszerzeniem .so) i bibliotekami dynamicznymi (zwykle uzupełniającymi rozszerzenie .dylib).

Współużytkowane obiekty są szeroko stosowane w typowych systemach Linux, biblioteki dynamiczne nie są tak wszechobecne, ponieważ format .app umożliwia bardzo bezpieczny mechanizm dystrybucji do obsługi wielu architektur kosztem większych możliwych do wytłumaczenia „plików”.

dmckee --- były kot moderator
źródło