2010-03-26 13 views

Respuesta

13

En el fondo, un marco OS X es una biblioteca de enlace dinámico. El Framework es un special directory structure llamado "paquete de marco" que contiene una o más versiones de la biblioteca enlazada dinámicamente, así como también frameworks dependientes, recursos, metadatos, etc. Otros "paquetes" en OS X incluyen paquetes .app (que contienen un ejecutables, así como recursos, frameworks dependientes, etc ...).

8

La biblioteca dinámica es un concepto básico mayoritariamente independiente de la plataforma específica, es decir, se puede hablar de bibliotecas dinámicas en OSX, Linux y Windows, lo mismo básico: una pieza de código de objeto reubicable con símbolos API exportados de una manera que permita que las aplicaciones en la plataforma lo carguen y compartan a pedido.

Un marco es un término específico de OSX. Es un paquete que define una estructura de directorios comúnmente acordada y almacena bibliotecas dinámicas, recursos, descripción del paquete y otras cosas relevantes en ubicaciones predefinidas. Lo que significa que tiene en su mayoría significado semántico que permite a los desarrolladores (y las herramientas que crean) referirse a él de una manera comúnmente entendida. Vale la pena señalar que no se requiere que el marco contenga bibliotecas compartidas en absoluto.

+0

Pero cuando decimos biblioteca compartida, eso significa que varias aplicaciones que se ejecutan simultáneamente pueden compartir esa única biblioteca ¿verdad ?. Entonces, supongamos que hay una variable global en la biblioteca dinámica y las aplicaciones que acceden a esa variable tendrán su propia instancia, ¿cómo es esto posible? me estoy confundiendo – PrithviRaj

+3

@prithviraj: los sistemas operativos que comparten un código de biblioteca en la aplicación comparten el segmento de código. el segmento de datos generalmente se carga como "copiar-en-escribir", lo que significa que se carga una sola copia y cualquier código que nunca lo cambia comparte esa copia. Tan pronto como se realizan cambios en el segmento de datos de la biblioteca, esas páginas se copian en el espacio de memoria local de la aplicación mientras aún se comparten las páginas de códigos de solo lectura. –

2

El Anatomy of a Framework puede ser útil. Específicamente, el Versions/Current/MyFramework mencionado en ese ejemplo es una biblioteca compartida. Esa sección continúa para describir algunas de las otras cosas que podrían existir en un paquete de marco.

Cuestiones relacionadas