21Aug

¿Cuál es la ventaja de usar el formato de archivo Tar hoy?

click fraud protection


El formato de archivo de alquitrán es, en los años de cálculo, un verdadero Matusalén, pero todavía se usa mucho.¿Qué hace que el formato tar sea tan útil después de su inicio?

Pregunta de hoy &La sesión de respuesta nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de sitios web Q & A dirigida por la comunidad.

El lector de SuperUser

de Question MarcusJ siente curiosidad por el formato tar y por qué todavía lo usamos después de todos estos años:

Sé que tar se creó para los archivos de cinta en el pasado, pero hoy tenemos formatos de archivo que tantoAgregue archivos y realice la compresión dentro del mismo formato de archivo lógico.

Preguntas:

  • ¿Hay una penalización de rendimiento durante la agregación de las etapas de descompresión /compression/ para usar tar encapsulado en gzip o bzip2, en comparación con el uso de un formato de archivo que agregue y comprima en la misma estructura de datos? Supongamos que el tiempo de ejecución del compresor que se compara es idéntico( por ejemplo, gzip y Deflate son similares).
  • instagram viewer
  • ¿Hay características del formato de archivo tar que no tienen otros formatos de archivo, como. 7z y. zip?
  • Dado que tar es un formato de archivo tan viejo, y existen formatos de archivo más nuevos hoy en día, ¿por qué tar( ya sea encapsulado en gzip, bzip2 o incluso el nuevo xz) todavía se usa mucho hoy en GNU / Linux, Android, BSD y otrosSistemas operativos UNIX, para transferencias de archivos, descargas de fuente y binarias de programas, y algunas veces incluso como formato de administrador de paquetes.

Esa es una pregunta perfectamente razonable;tanto ha cambiado en el mundo de la informática en los últimos treinta años, pero todavía estamos utilizando el formato tar.¿Cuál es la historia?

La respuesta

SuperUser contribuidor Allquixotic ofrece una idea de la longevidad y la funcionalidad del formato tar:

Parte 1: rendimiento

Aquí hay una comparación de dos flujos de trabajo separados y lo que hacen.

Tiene un archivo en el disco blah.tar.gz que es, digamos, 1 GB de datos comprimidos gzip que, cuando se descomprime, ocupa 2 GB( por lo que una relación de compresión del 50%).

La forma en que crearía esto, si tuviera que archivar y comprimir por separado, sería:

archivos tar cf blah.tar. ..

Esto daría como resultado blah.tar que es una mera agregación de los archivos.en forma descomprimida

Entonces harías

gzip blah.tar

Esto leería los contenidos de blah.tar desde el disco, los comprimiría a través del algoritmo de compresión gzip, escribiría los contenidos en blah.tar.gz, luego des-conectaría( borraría) el archivo blah.alquitrán.

¡Ahora, descomprimimos!

Way 1

Tienes blah.tar.gz, de una forma u otra.

Usted decide ejecutar:

gunzip blah.tar.gz

Esto

  • LEERá los contenidos de datos comprimidos de 1GB de blah.tar.gz.
  • PROCESE los datos comprimidos a través del descompresor gzip en la memoria.
  • A medida que el búfer de memoria se llena con datos de "un bloque", ESCRIBA los datos sin comprimir en el archivoblabla.tar en el disco y repita hasta que se lean todos los datos comprimidos.
  • Desvincula( elimina) el archivo blah.tar.gz.

Ahora, tiene blah.tar en el disco, que no está comprimido pero contiene uno o más archivos dentro de él, con una sobrecarga de estructura de datos muy baja. El tamaño del archivo es probablemente un par de bytes más grande que la suma de todos los datos del archivo.

Ejecuta:

tar xvf blah.tar

Esto

  • LEERá los 2 GB de contenido de datos sin comprimir de blah.tar y las estructuras de datos del formato de archivo tar, incluida información sobre permisos de archivos, nombres de archivos, directorios, etc.
  • ESCRIBIR en el discolos 2GB de datos más los metadatos. Esto implica: traducir la estructura de datos / información de metadatos para crear nuevos archivos y directorios en el disco, según corresponda, o reescribir los archivos y directorios existentes con nuevos contenidos de datos.

La información total que LEÍDO del disco en este proceso fue de 1 GB( para gunzip) + 2 GB( para tar) = 3 GB.

La información total que ESCRIBIÓ al disco en este proceso fue de 2 GB( para gunzip) + 2 GB( para tar) + unos pocos bytes para metadatos = aproximadamente 4 GB.

Way 2

Tienes blah.tar.gz, de una forma u otra.

Decide ejecutar:

tar xvzf blah.tar.gz

  • LEERá los contenidos de datos comprimidos de 1GB de blah.tar.gz, un bloque a la vez, en la memoria.
  • PROCESE los datos comprimidos a través del descompresor gzip en la memoria.
  • A medida que el búfer de memoria se llena, canalizará los datos, en la memoria, a través del analizador de formatos de archivos tar, que leerá la información sobre los metadatos, etc. y los datos del archivo descomprimido.
  • A medida que el búfer de memoria se llena en el analizador de archivos tar, ESCRIBE los datos descomprimidos en el disco, creando archivos y directorios y llenándolos con los contenidos sin comprimir.

La información total que LEÍDO del disco en este proceso fue de 1 GB de datos comprimidos, punto.

El total de datos que WROTE en el disco en este proceso fue de 2 GB de datos sin comprimir + unos pocos bytes para metadatos = aproximadamente 2 GB.

Si observa, la cantidad de E / S de disco en Way 2 es idéntica a la E / S de disco realizada por, por ejemplo, los programas Zip o 7-Zip, ajustando por cualquier diferencia en la relación de compresión.

Y si la relación de compresión es su preocupación, use el compresor Xz para encapsular tar, y tiene el archivo TAR de LZMA2, que es tan eficiente como el algoritmo más avanzado disponible para 7-Zip: -)

Parte 2: Características

tar almacena permisos de UNIX dentro de sus metadatos de archivos, y es muy conocido y probado para empaquetar con éxito un directorio con todo tipo de permisos diferentes, enlaces simbólicos, etc. Hay más de unas pocas instancias en las que uno podría necesitar agrupar un montón de archivosen un solo archivo o secuencia, pero no necesariamente comprimirlo( aunque la compresión es útil y se usa con frecuencia).

Parte 3: Compatibilidad

Muchas herramientas se distribuyen en formato fuente o binario como. tar.gz o. tar.bz2 porque es un formato de "denominador común más bajo": al igual que la mayoría de los usuarios de Windows tienen acceso a. zip o. rardescompresores, la mayoría de las instalaciones de Linux, incluso las más básicas, tendrán acceso al menos a alquitrán y gunzip, sin importar qué tan antiguas o reducidas sean. Incluso los firmwares de Android tienen acceso a estas herramientas.

Los nuevos proyectos dirigidos a audiencias que ejecutan distribuciones modernas pueden distribuirse en un formato más moderno, como. tar.xz( utilizando el formato de compresión Xz( LZMA), que se comprime mejor que gzip o bzip2), o. 7z, que es similara los formatos de archivo Zip o Rar porque comprime y especifica un diseño para encapsular múltiples archivos en un solo archivo.

No se ve. 7z se usa con más frecuencia por la misma razón que la música no se vende en tiendas de descarga en línea en formatos nuevos como Opus o video en WebM.Compatibilidad con personas que ejecutan sistemas antiguos o muy básicos.

¿Tiene algo que agregar a la explicación? Suena apagado en los comentarios.¿Desea leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Mira el hilo de discusión completo aquí.