Еквівалент dll MacOS


9

Так, DLL схожа на папку, але вона дозволяє декільком програмам / виконуваним файлам отримати доступ до неї одночасно, тим самим зберігаючи пам'ять (я думаю).

Що таке еквівалент DLL для Mac? Я переглядав папки Google Chrome всередині ~/Library/Application Support, і замість звичайної Windows Default.dll була просто папка, "За замовчуванням", як звичайний файл, зі вмістом, я припускаю, регулярно знаходився б всередині DLL.

Чи забезпечує еквівалент Mac однакову функцію?


Ця папка - це лише ваш профіль Chrome (особисті налаштування, закладки тощо). Те, що ви хочете, знаходиться всередині програми.
Даніель Бек

Добре, коли ви заглянете всередину папки / Бібліотека / Підтримка додатків / Google / Chrome / Типовий / Розширення / (якийсь дивний довгий рядок), ви знайдете багато файлів png та css для цих тем. Це папка тем, яка знаходиться всередині DLL у Windows.
kalaracey

У такому випадку, схоже, розробники Chrome використали хитрість, наприклад, для збереження пам’яті в Windows. Вони не використовують еквівалент DLL в OS X. Якщо ви подивитесь, наприклад, на Firefox, вони зберігають профілі користувачів як купу окремих файлів у всіх операційних системах.
Даніель Бек

Тепер було б цікаво, що ви насправді запитуєте: Про "DLL в ОС X" взагалі або про те, що таке еквівалент default.dllна Mac OS X. Відповіді, здається, зовсім інші.
Даніель Бек

4
A dll- це не папка, ні її поблизу. Він містить методи та функції, на які можна звертатися іншими програмами, так що їм не потрібно, щоб вони реалізували їх самі. Іноді a dllтакож містить ресурси, як іконки.
Боббі

Відповіді:


12

Еквіваленти DLL для Windows на OS X є Frameworks (какао) або dylibs (BSD). Системи, що постачаються, знаходяться у /usr/libта /System/Library/Frameworksвідповідно.

Папка, яку ви згадуєте, Library/Application Supportподібна до Application Data(або AppRoamingзараз?) Папок у Windows, містить особисті налаштування ваших програм.

Хоча я не знаю, що таке еквівалент Chrome для default.dllOS X, пакет програм містить наступне:

alt текст

Згадавши про розмір, схоже, це Google Chrome Frameworkможе бути важливо (папка Frameworksтрохи вище не містить великого інтересу)


3

Немає справжніх DLL в OS X, Linux або будь-якому POSIX з цього приводу. Вони не роблять диференціації.

Чому?

  1. Багато матеріалів для Mac, наприклад, є автономними (.app - це насправді лише папки).

  2. Бінарні файли в Mac OS X (а також Linux та інші * Nixes) використовують ELF (що розшифровується як Формат бібліотеки), як для бібліотек, так і для виконавчих файлів.

Файл за замовчуванням, який ви знайшли там, мабуть, був бінарним файлом ELF.

Оновлення : dmckee вказує, що .dylibs знаходяться у форматі Mach-O виключно для Macs. Однак важко відрізнити обох, оскільки жоден з них насправді не потребує розширення.


1
DLL в Windows використовують той самий формат, що і виконавчі файли (або принаймні, колись), чи не так?
Даніель Бек


Добре знати - коли я читав ваш пост, я думав, що ви виділили Unixes, але ви спеціально згадали ELF.
Даніель Бек

1
Ем ... це просто неправильно. Файли із переданими об’єктами (.so) та динамічні бібліотеки (.dylib) служать точно такій самій цілі в Linux та Mac OS, що і динамічно завантажувані бібліотеки (.dll) у Windows. Той факт, що вони поділяють стандарт упаковки з виконуваними файлами, цей факт не змінює.
dmckee --- кошеня колишнього модератора

1
@digitxp: Ви пропустили суть. Упаковка в цьому питанні не важлива. Об'єктні файли Windows .dll, Mac OS .dylib та .so спільні (які Mac OS також може використовувати, хоча і не так витончено, як це використовує .dylib) - це одна і та ж послуга: час роботи, бібліотеки, що динамічно завантажуються, спільно використовувати.
dmckee --- кошеня колишнього модератора

2

Найближчі еквіваленти linux та Mac називаються "спільними файлами об'єктів" (зазвичай мають розширення .so) та динамічними бібліотеками (як правило, мають розширення .dylib).

Спільні об'єкти широко використовуються в типових системах Linux, динамічні бібліотеки не є настільки всюдисущими, оскільки формат .app дозволяє дуже безпечний механізм розповсюдження для підтримки декількох архітектур ціною великих файлів, що виконуються.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.