MacOS 'dll equivalente

9

Por lo tanto, una DLL es similar a una carpeta, pero permite que múltiples programas / ejecutables accedan a ella a la vez, conservando así la memoria (creo).

¿Cuál es el equivalente de Mac de una DLL? Estaba mirando a través de las carpetas de Google Chrome en el interior ~/Library/Application Support, y en lugar de Windows Default.dll normal, solo había una carpeta, "Predeterminada" como un archivo normal, con contenido, supongo, regularmente estaría dentro de la DLL.

¿El equivalente de Mac proporciona la misma función?

kalaracey
fuente
Esa carpeta es solo su perfil de Chrome (configuración personal, marcadores, etc.). Lo que desea se encuentra dentro del paquete de la aplicación.
Daniel Beck
Bueno, cuando miras dentro de la carpeta / Biblioteca / Soporte de aplicaciones / Google / Chrome / Predeterminado / Extensiones / (alguna cadena larga extraña) encuentras muchos archivos png y css para los temas. Es la carpeta de temas, que se encuentra dentro de la DLL en Windows.
kalaracey
En ese caso, parece que los desarrolladores de Chrome usaron un truco, por ejemplo, para conservar memoria en Windows. No utilizan una DLL equivalente en OS X. Si observa, por ejemplo, Firefox, almacenan los perfiles de usuario como un conjunto de archivos individuales en todos los sistemas operativos.
Daniel Beck
Ahora sería interesante lo que realmente está preguntando: acerca de "DLL en OS X" en general, o cuál es el equivalente a default.dllMac OS X. Las respuestas parecen ser bastante diferentes.
Daniel Beck
44
A dllno es una carpeta, ni está cerca de ella. Contiene métodos y funciones que pueden ser invocados por otros programas, por lo que no necesitan implementarlos ellos mismos. A veces, a dlltambién contiene recursos, como iconos.
Bobby

Respuestas:

12

Los equivalentes a una DLL de Windows en OS X son Frameworks (Cocoa) o dylibs (BSD). Los sistemas suministrados están en /usr/liby /System/Library/Frameworksrespectivamente.

La carpeta que menciona Library/Application Supportes similar a las carpetas Application Data(¿o AppRoamingahora?) En Windows, que contiene la configuración personal de sus aplicaciones.

Si bien no sé cuál es el equivalente de Chrome default.dllen OS X, el paquete de la aplicación contiene lo siguiente:

texto alternativo

Adivinando por el tamaño, parece que Google Chrome Frameworkpodría ser importante (la carpeta de Frameworksarriba no tiene mucho interés)

Daniel Beck
fuente
3

No hay archivos DLL reales en OS X, Linux o POSIX para el caso. No hacen la diferenciación.

¿Por qué?

  1. Una gran cantidad de cosas de Mac, por ejemplo, es independiente (las .app son realmente solo carpetas después de todo).

  2. Los archivos binarios en Mac OS X (y Linux y otros * Nixes) usan ELF (que significa formato ejecutable y de biblioteca) para bibliotecas y ejecutables.

El archivo predeterminado que encontró allí probablemente era un binario ELF.

Actualización : dmckee señala que .dylibs están bajo el formato Mach-O exclusivo para Mac. Sin embargo, es difícil distinguir los dos a simple vista, porque ninguno de ellos requiere ninguna extensión.

digitxp
fuente
1
Las DLL en Windows usan el mismo formato que los ejecutables (o al menos lo hicieron alguna vez), ¿no?
Daniel Beck
1
Aún lo hacen .
digitxp
Es bueno saberlo: cuando leí tu publicación pensé que destacabas los Unix, pero mencionaste específicamente a ELF.
Daniel Beck
1
Ehm ... esto simplemente está mal. Los archivos de objetos shored (.so) y las bibliotecas dinámicas (.dylib) tienen exactamente el mismo propósito en Linux y Mac OS que las bibliotecas cargables dinámicamente (.dll) en Windows El hecho de que compartan un estándar de empaquetado con ejecutables no cambia este hecho.
dmckee --- ex gatito moderador el
1
@digitxp: Has perdido el punto. El embalaje no es importante en este asunto. Windows .dll's, Mac OS .dylib's y .so compartieron archivos de objetos (que Mac OS también puede usar, aunque no tan bien como los .dylib's) todos brindan el mismo servicio: bibliotecas compartidas cargables dinámicamente en tiempo de ejecución.
dmckee --- ex gatito moderador el
2

Los equivalentes más cercanos de Linux y Mac se denominan "archivos de objetos compartidos" (generalmente con una extensión .so) y bibliotecas dinámicas (normalmente con una extensión .dylib) respectivamente.

Los objetos compartidos se usan ampliamente en los sistemas Linux típicos, las bibliotecas dinámicas no son tan ubicuas porque el formato .app permite un mecanismo de distribución muy seguro para soportar múltiples arquitecturas a costa de "archivos" ejecutables más grandes.

dmckee --- gatito ex moderador
fuente