1 votos

¿Cómo se puede hacer una lista de los frameworks que utiliza MacOS?

Apple guarda los frameworks en /System/Library/Frameworks/ y /System/Library/PrivateFrameworks/. Dentro de estos directorios se encuentran los archivos *.framework, que son a su vez un directorio de recursos informáticos (ejecutables binarios, librerías enlazadas dinámicamente, cabeceras, etc.).

¿Cómo puedo listar qué frameworks están siendo utilizados actualmente por el sistema, por ejemplo, tienen un componente cargado en la memoria del núcleo o están siendo ejecutados? ¿Existe una manera de saber qué marcos son necesarios para que un programa determinado, como un demonio o una aplicación, se ejecute correctamente? Si es posible, me gustaría generar un árbol de dependencias de frameworks para un programa del sistema elegido arbitrariamente.

He tratado de reunir esta información de top pero esto no me informa sobre las bibliotecas cargadas dinámicamente, ni vincula explícitamente un ejecutable al directorio del framework del que procede.

3voto

Jose Chavez Puntos 645

Hay que tener en cuenta que los frameworks también pueden colocarse en cualquier otro lugar del sistema de archivos, no están limitados a esas dos rutas. En particular, algunas aplicaciones tendrán frameworks dentro de su paquete de aplicaciones.

Tu primera pregunta proviene de un malentendido: los frameworks no son algo que utilice el núcleo, que se cargue en la memoria del mismo, etc. Creo que los estás confundiendo con las extensiones del kernel (similares, por ejemplo, a los módulos del kernel en Linux), que son ejecutables cargados en la memoria del kernel y utilizados por el propio kernel.

En cambio, los programas de espacio de usuario utilizan los frameworks, que se vinculan al espacio de memoria de ese programa de espacio de usuario en particular. Esto se puede hacer de dos maneras - o bien se hace al inicio por el enlazador dinámico del sistema ( dyld ), o puede hacerse en tiempo de ejecución por el propio programa.

Para el primer caso, puedes ver la lista de frameworks que un ejecutable solicita al enlazador dinámico del sistema que cargue por él al iniciarse, ejecutando un comando como este en el Terminal:

otool -L /Applications/Firefox.app/Contents/MacOS/firefox

En el segundo caso, tendrá que supervisar el programa durante su ejecución. Ten en cuenta que no puedes estar seguro de que atraparás todos los frameworks utilizados de esta manera, ya que los frameworks reales cargados podrían depender de la entrada del programa. Sin embargo, no es habitual que los programas funcionen así, por lo que probablemente estará bien usando otool para su escenario.

Ten en cuenta que un framework puede depender de otro, por lo que tendrás que volver a ejecutar otool en los frameworks de la lista para construir manualmente un gráfico de dependencias.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X