Hay un comportamiento que no puedo explicar en OSX Lion (podría estar en otras versiones también).
Cuando copio o duplico algunas aplicaciones, por ejemplo iTunes, que contienen algunas bibliotecas dinámicas, el tamaño físico de esas bibliotecas cambia (el tamaño aumenta). Esto puede ser debido a la fragmentación del disco. Pero no es solo eso, porque lo sorprendente es que el tamaño físico original es más pequeño que el tamaño lógico (donde generalmente el tamaño físico es siempre más grande que el lógico, excepto cuando se trata de una compresión).
Para ilustrar mi caso:
antoine@amarante:/Applications$ ls -ls iTunes.app/Contents/MacOS/libgnsdk_submit.1.8.2.dylib
384 -rwxrwxr-x+ 1 root admin 558704 8 jul 2011 iTunes.app/Contents/MacOS/libgnsdk_submit.1.8.2.dylib
ls
considera un tamaño de bloque de 512 bytes, 384 bloques hacen 196608 bytes en comparación con el tamaño lógico informado de 558704 bytes. O, como se muestra en una obtener información ventana desde el buscador:
558.704 octets (197 Ko sur disque)
Esto también se muestra después de algunas operaciones de copia donde copié en toda la aplicación de iTunes. El primero iTunes copie
Es un duplicado hecho a través del Finder y iTunes-cp
Es una copia hecha con el CLI. cp -a
mando.
antoine@amarante:/Applications$ ls -ls iTunes*.app/Contents/MacOS/libgnsdk_dsp.1.8.2.dylib
11632 -rwxr-xr-x+ 1 antoine admin 5955104 8 jul 2011 iTunes copie.app/Contents/MacOS/libgnsdk_dsp.1.8.2.dylib
11632 -rwxrwxr-x+ 1 antoine admin 5955104 8 jul 2011 iTunes-cp.app/Contents/MacOS/libgnsdk_dsp.1.8.2.dylib
3944 -rwxrwxr-x+ 2 root admin 5955104 8 jul 2011 iTunes.app/Contents/MacOS/libgnsdk_dsp.1.8.2.dylib
Vemos que los archivos copiados tienen un tamaño físico mayor (11632 * 512 = 5955584 bytes) que el tamaño lógico (5955104), excepto el archivo original, que es mucho más pequeño. Cuando copio el single .dylib
archivo en sí mismo, el comportamiento es el mismo. Esto sucede para unos pocos archivos de biblioteca dinámicos, no para todos.
¿Cómo puede el archivo de biblioteca original ser más pequeño que las copias? ¿Hay alguna compresión involucrada? ¿O están mis archivos originales dañados de alguna manera? ¿Cómo puedo comprobar eso?
Respuestas:
De hecho, hay compresión en HFS + en el mac en 10.6 y posteriores. Es transparente y puede ser difícil de detectar incluso con herramientas estándar del sistema operativo.
Y, no siempre se hace. Para la compatibilidad con versiones anteriores, el valor predeterminado es no comprimir, pero comprimen el sistema operativo cuando está instalado.
Lista de herramientas, en caso de rotura de enlace:
hfsdebug
afsctool
stat -f %f
- informa "banderas de usuario" en archivos - una de las banderas significa compresión. Obtengo "32" en un archivo comprimido y "0" en un archivo sin comprimir. Probablemente los 32 mapas a un campo de bits.ditto
- Tiene soporte para escribir archivos comprimidos.fuente
ditto
El comando copiará y preservará la compresión, resultando en el mismo tamaño.