stringtranslate.com

Formato de archivo

Archivo wav: 2,1 megabytes.
Archivo ogg: 154 kilobytes.

Un formato de archivo es una forma estándar en la que se codifica la información para su almacenamiento en un archivo de computadora . Especifica cómo se utilizan los bits para codificar información en un medio de almacenamiento digital . Los formatos de archivos pueden ser propietarios o libres .

Algunos formatos de archivo están diseñados para tipos de datos muy particulares: los archivos PNG , por ejemplo, almacenan imágenes en mapa de bits mediante compresión de datos sin pérdidas . Otros formatos de archivo, sin embargo, están diseñados para el almacenamiento de varios tipos diferentes de datos: el formato Ogg puede actuar como contenedor para diferentes tipos de multimedia , incluida cualquier combinación de audio y vídeo , con o sin texto (como subtítulos ), y metadatos. . Un archivo de texto puede contener cualquier secuencia de caracteres, incluidos posibles caracteres de control , y está codificado en uno de varios esquemas de codificación de caracteres . Algunos formatos de archivo, como HTML , gráficos vectoriales escalables y el código fuente de software informático , son archivos de texto con sintaxis definidas que permiten su uso para fines específicos.

Especificaciones

Los formatos de archivo suelen tener una especificación publicada que describe el método de codificación y permite probar la funcionalidad prevista del programa. No todos los formatos tienen documentos de especificación disponibles gratuitamente, en parte porque algunos desarrolladores ven sus documentos de especificación como secretos comerciales , y en parte porque otros desarrolladores nunca crean un documento de especificación formal, dejando que el precedente establecido por otros programas ya existentes que usan el formato defina el formato a través de cómo estos programas existentes lo utilizan.

Si el desarrollador de un formato no publica especificaciones gratuitas, otro desarrollador que desee utilizar ese tipo de archivo debe aplicar ingeniería inversa al archivo para descubrir cómo leerlo o adquirir el documento de especificaciones de los desarrolladores del formato pagando una tarifa y firmando un contrato. Acuerdo de no divulgación . Este último enfoque sólo es posible cuando existe un documento de especificación formal. Ambas estrategias requieren mucho tiempo, dinero o ambos; por lo tanto, los formatos de archivo con especificaciones disponibles públicamente tienden a ser compatibles con más programas.

Patentes

La ley de patentes , en lugar de los derechos de autor , se utiliza con mayor frecuencia para proteger un formato de archivo. Aunque las patentes para formatos de archivos no están directamente permitidas según la ley estadounidense, algunos formatos codifican datos mediante algoritmos patentados . Por ejemplo, antes de 2004, el uso de la compresión con el formato de archivo GIF requería el uso de un algoritmo patentado y, aunque el propietario de la patente inicialmente no hizo cumplir su patente, más tarde comenzó a cobrar regalías . Esto ha resultado en una disminución significativa en el uso de GIF y es en parte responsable del desarrollo del formato alternativo PNG . Sin embargo, la patente GIF expiró en Estados Unidos a mediados de 2003 y en todo el mundo a mediados de 2004.

Identificar el tipo de archivo

Tradicionalmente, diferentes sistemas operativos han adoptado diferentes enfoques para determinar el formato de un archivo en particular, y cada enfoque tiene sus propias ventajas y desventajas. La mayoría de los sistemas operativos modernos y las aplicaciones individuales necesitan utilizar todos los siguientes enfoques para leer formatos de archivos "extranjeros", si no funcionan con ellos por completo.

Extensión de nombre de archivo

Un método popular utilizado por muchos sistemas operativos, incluidos Windows , macOS , CP/M , DOS , VMS y VM/CMS , es determinar el formato de un archivo basándose en el final de su nombre, más específicamente las letras que siguen a la final. período. Esta parte del nombre del archivo se conoce como extensión del nombre del archivo . Por ejemplo, los documentos HTML se identifican con nombres que terminan en .html (o .htm ) y las imágenes GIF con .gif . En el sistema de archivos FAT original , los nombres de los archivos estaban limitados a un identificador de ocho caracteres y una extensión de tres caracteres, conocido como nombre de archivo 8.3 . Hay un número limitado de extensiones de tres letras, lo que puede provocar que una determinada extensión sea utilizada por más de un programa. Muchos formatos todavía utilizan extensiones de tres caracteres, aunque los sistemas operativos y programas de aplicación modernos ya no tienen esta limitación. Dado que no existe una lista estándar de extensiones, más de un formato puede utilizar la misma extensión, lo que puede confundir tanto al sistema operativo como a los usuarios.

Un artefacto de este enfoque es que se puede engañar fácilmente al sistema para que trate un archivo como un formato diferente simplemente cambiándole el nombre; un archivo HTML puede, por ejemplo, tratarse fácilmente como texto sin formato cambiándole el nombre de filename.html a filename. TXT . Aunque esta estrategia era útil para los usuarios expertos que podían comprender y manipular fácilmente esta información, a menudo resultaba confusa para los usuarios menos técnicos, que accidentalmente podían inutilizar un archivo (o "perderlo") al cambiarle el nombre incorrectamente.

Esto llevó a que la mayoría de las versiones de Windows y Mac OS ocultaran la extensión al enumerar archivos. Esto evita que el usuario cambie accidentalmente el tipo de archivo y permite a los usuarios expertos desactivar esta función y mostrar las extensiones.

Sin embargo, ocultar la extensión puede crear la apariencia de dos o más nombres de archivos idénticos en la misma carpeta. Por ejemplo, es posible que necesite el logotipo de una empresa tanto en formato .eps (para publicaciones) como en formato .png (para sitios web). Con las extensiones visibles, aparecerían como nombres de archivo únicos: " CompanyLogo.eps " y " CompanyLogo.png ". Por otro lado, ocultar las extensiones haría que ambas aparecieran como " CompanyLogo ", lo que puede generar confusión.

Ocultar extensiones también puede suponer un riesgo para la seguridad. [1] Por ejemplo, un usuario malintencionado podría crear un programa ejecutable con un nombre inocente como " Holiday photo.jpg.exe ". El " .exe " estaría oculto y un usuario desprevenido vería " Holiday photo.jpg ", que parecería ser una imagen JPEG , que normalmente no puede dañar la máquina. Sin embargo, el sistema operativo aún verá la extensión " .exe " y ejecutará el programa, lo que luego podría causar daño a la computadora. Lo mismo ocurre con los archivos con una sola extensión: como no se muestra al usuario, no se puede deducir ninguna información sobre el archivo sin investigarlo explícitamente. Para engañar aún más a los usuarios, es posible almacenar un icono dentro del programa, en cuyo caso la asignación de iconos de algunos sistemas operativos para el archivo ejecutable ( .exe ) se anularía con un icono comúnmente utilizado para representar imágenes JPEG, haciendo que el programa parezca como una imagen. Las extensiones también pueden ser falsificadas: algunos virus de macro de Microsoft Word crean un archivo de Word en formato de plantilla y lo guardan con una extensión .doc . Dado que Word generalmente ignora las extensiones y observa el formato del archivo, estas se abrirían como plantillas, se ejecutarían y propagarían el virus. [ cita necesaria ] Esto representa un problema práctico para los sistemas Windows donde la ocultación de extensiones está activada de forma predeterminada.

Metadatos internos

Una segunda forma de identificar un formato de archivo es utilizar información sobre el formato almacenado dentro del archivo, ya sea información destinada a este propósito o cadenas binarias que siempre se encuentran en ubicaciones específicas en archivos de algunos formatos. Dado que el lugar más fácil para ubicarlos es al principio, dicha área generalmente se denomina encabezado de archivo cuando tiene más de unos pocos bytes , o número mágico si tiene solo unos pocos bytes de longitud.

encabezado de archivo

Los metadatos contenidos en el encabezado de un archivo generalmente se almacenan al principio del archivo, pero también pueden estar presentes en otras áreas, incluido a menudo el final, según el formato del archivo o el tipo de datos contenidos. Los archivos basados ​​en caracteres (texto) suelen tener encabezados basados ​​en caracteres, mientras que los formatos binarios suelen tener encabezados binarios, aunque esto no es una regla. Los encabezados de archivos basados ​​en texto suelen ocupar más espacio, pero al ser legibles por humanos, pueden examinarse fácilmente mediante un software sencillo, como un editor de texto o un editor hexadecimal.

Además de identificar el formato del archivo, los encabezados de los archivos pueden contener metadatos sobre el archivo y su contenido. Por ejemplo, la mayoría de los archivos de imagen almacenan información sobre el formato, el tamaño, la resolución y el espacio de color de la imagen y, opcionalmente, información de autor como quién hizo la imagen, cuándo y dónde se hizo, qué modelo de cámara y configuración fotográfica se utilizaron ( Exif ), y pronto. Dichos metadatos pueden ser utilizados por el software que lee o interpreta el archivo durante el proceso de carga y posteriormente.

Un sistema operativo puede utilizar los encabezados de archivos para recopilar rápidamente información sobre un archivo sin cargarlo todo en la memoria, pero hacerlo utiliza más recursos de una computadora que leer directamente desde la información del directorio . Por ejemplo, cuando un administrador de archivos gráficos tiene que mostrar el contenido de una carpeta, debe leer los encabezados de muchos archivos antes de poder mostrar los íconos apropiados, pero estos estarán ubicados en diferentes lugares del medio de almacenamiento, por lo que tardará más en acceder. . Una carpeta que contiene muchos archivos con metadatos complejos, como información en miniatura , puede requerir un tiempo considerable antes de poder mostrarse.

Si un encabezado está codificado en binario de manera que el encabezado en sí necesita una interpretación compleja para ser reconocido, especialmente para proteger el contenido de los metadatos, existe el riesgo de que el formato del archivo pueda malinterpretarse. Incluso puede que haya estado mal escrito en la fuente. Esto puede dar como resultado metadatos corruptos que, en casos extremadamente graves, pueden incluso hacer que el archivo sea ilegible. [ se necesita aclaración ]

Un ejemplo más complejo de encabezados de archivos son los que se utilizan para formatos de archivos contenedores (o contenedores).

número mágico

Una forma de incorporar metadatos de tipos de archivos, a menudo asociados con Unix y sus derivados, es almacenar un "número mágico" dentro del propio archivo. Originalmente, este término se usaba para un conjunto específico de identificadores de 2 bytes al comienzo de los archivos, pero dado que cualquier secuencia binaria puede considerarse como un número, cualquier característica de un formato de archivo que lo distinga de manera única se puede usar para la identificación. Las imágenes GIF , por ejemplo, siempre comienzan con la representación ASCII de GIF87a o GIF89a , dependiendo del estándar al que se adhieran. Muchos tipos de archivos, especialmente los de texto sin formato, son más difíciles de detectar con este método. Los archivos HTML, por ejemplo, pueden comenzar con la cadena <html> (que no distingue entre mayúsculas y minúsculas), o una definición de tipo de documento adecuada que comienza con <!DOCTYPE HTML> o, para XHTML , el identificador XML , que comienza con < ?xml . Los archivos también pueden comenzar con comentarios HTML, texto aleatorio o varias líneas vacías, pero seguir siendo HTML utilizable.

El enfoque del número mágico ofrece mejores garantías de que el formato se identificará correctamente y, a menudo, puede determinar información más precisa sobre el archivo. Dado que las pruebas de "número mágico" razonablemente confiables pueden ser bastante complejas, y cada archivo debe probarse efectivamente contra todas las posibilidades en la base de datos mágica, este enfoque es relativamente ineficiente, especialmente para mostrar grandes listas de archivos (en contraste, nombre de archivo y metadatos). Los métodos basados ​​en ellos necesitan verificar solo un dato y compararlo con un índice ordenado). Además, los datos deben leerse desde el propio archivo, lo que aumenta la latencia en comparación con los metadatos almacenados en el directorio. Cuando los tipos de archivos no se prestan a este reconocimiento, el sistema debe recurrir a los metadatos. Sin embargo, es la mejor manera para que un programa compruebe si el archivo que se le ha ordenado procesar tiene el formato correcto: mientras que el nombre o los metadatos del archivo pueden modificarse independientemente de su contenido, fallando una prueba del número mágico bien diseñada. es una señal bastante segura de que el archivo está dañado o es del tipo incorrecto. Por otro lado, un número mágico válido no garantiza que el archivo no esté dañado o sea del tipo correcto.

Las llamadas líneas shebang en los archivos de script son un caso especial de números mágicos. Aquí, el número mágico es texto legible por humanos que identifica un intérprete de comandos específico y las opciones que se pasarán al intérprete de comandos.

Otro sistema operativo que utiliza números mágicos es AmigaOS , donde los números mágicos se denominaron "Cookies Mágicas" y se adoptaron como sistema estándar para reconocer archivos ejecutables en formato de archivo ejecutable Hunk y también para permitir que programas, herramientas y utilidades individuales traten automáticamente sus archivos de datos guardados. , o cualquier otro tipo de archivo al guardar y cargar datos. Este sistema luego se mejoró con el sistema de reconocimiento de tipo de datos estándar de Amiga . Otro método fue el método FourCC , originado en OSType en Macintosh, posteriormente adaptado por Interchange File Format (IFF) y derivados.

Metadatos externos

Una última forma de almacenar el formato de un archivo es almacenar explícitamente información sobre el formato en el sistema de archivos, en lugar de dentro del archivo mismo.

Este enfoque mantiene los metadatos separados tanto de los datos principales como del nombre, pero también es menos portátil que las extensiones de nombre de archivo o los "números mágicos", ya que el formato debe convertirse de un sistema de archivos a otro. Si bien esto también es cierto hasta cierto punto con las extensiones de nombre de archivo (por ejemplo, para compatibilidad con el límite de tres caracteres de MS-DOS ), la mayoría de las formas de almacenamiento tienen una definición más o menos equivalente de los datos y el nombre de un archivo, pero pueden tener una representación variable o nula. de más metadatos.

Tenga en cuenta que los archivos zip o archivos comprimidos resuelven el problema del manejo de metadatos. Un programa de utilidad recopila varios archivos junto con metadatos sobre cada archivo y las carpetas/directorios de los que provienen, todo dentro de un archivo nuevo (por ejemplo, un archivo zip con extensión .zip ). El nuevo archivo también está comprimido y posiblemente cifrado, pero ahora se puede transmitir como un único archivo entre sistemas operativos mediante transmisiones FTP o se envía por correo electrónico como archivo adjunto. En el destino, el único archivo recibido debe ser descomprimido mediante una utilidad compatible para que sea útil. Los problemas de manejo de metadatos se resuelven de esta manera utilizando archivos zip o archivos comprimidos.

Códigos de tipo de Mac OS

El sistema de archivos jerárquico de Mac OS almacena códigos de creador y tipo como parte de la entrada del directorio para cada archivo. Estos códigos se denominan OSTypes. Estos códigos podían ser cualquier secuencia de 4 bytes, pero a menudo se seleccionaban de modo que la representación ASCII formara una secuencia de caracteres significativos, como una abreviatura del nombre de la aplicación o las iniciales del desarrollador. Por ejemplo , un archivo "pila" de HyperCard tiene un creador WILD ( del nombre anterior de Hypercard, "WildCard") y un tipo STAK . El editor de texto BBEdit tiene un código de creador que hace referencia a su programador original, Rich Siegel. El código de tipo especifica el formato del archivo, mientras que el código del creador especifica el programa predeterminado para abrirlo cuando el usuario hace doble clic. Por ejemplo, el usuario podría tener varios archivos de texto, todos con el código de tipo TEXT , pero cada uno abierto en un programa diferente, debido a que tiene diferentes códigos de creador. Esta característica estaba pensada para que, por ejemplo, los archivos de texto plano legibles por humanos pudieran abrirse en un editor de texto de uso general, mientras que los archivos de programación o de código HTML se abrirían en un editor especializado o IDE . Sin embargo, esta característica era a menudo fuente de confusión para los usuarios, ya que a menudo era impredecible qué programa se iniciaría cuando se hacía doble clic en los archivos. RISC OS utiliza un sistema similar, que consta de un número de 12 bits que se puede buscar en una tabla de descripciones; por ejemplo, el número hexadecimal tiene un "alias" de PoScript , que representa un archivo PostScript .R*chFF5

Identificadores de tipo uniforme (ITU) de macOS

Un identificador de tipo uniforme (UTI) es un método utilizado en macOS para identificar de forma única clases de entidades "tipificadas", como formatos de archivo. Fue desarrollado por Apple como reemplazo de OSType (códigos de tipo y creador).

La UTI es una cadena Core Foundation , que utiliza una cadena DNS inversa . Algunos tipos comunes y estándar usan un dominio llamado público (por ejemplo, public.png para una imagen de gráficos de red portátiles ), mientras que otros dominios se pueden usar para tipos de terceros (por ejemplo, com.adobe.pdf para formato de documento portátil ). Las ITU se pueden definir dentro de una estructura jerárquica, conocida como jerarquía de conformidad. Por lo tanto, public.png se ajusta a un supertipo de public.image , que a su vez se ajusta a un supertipo de public.data . Una ITU puede existir en múltiples jerarquías, lo que proporciona una gran flexibilidad.

Además de los formatos de archivo, las UTI también se pueden usar para otras entidades que pueden existir en macOS, incluidas:

Catálogo VSAM

En IBM OS/VS hasta z/OS , el catálogo VSAM (anterior a los catálogos ICF ) y el registro de volumen VSAM en el conjunto de datos de volumen VSAM (VVDS) (con catálogos ICF) identifica el tipo de conjunto de datos VSAM.

VTOC

En IBM OS/360 a través de z/OS , un bloque de control de conjunto de datos (DSCB) de formato 1 o 7 en la tabla de contenido de volumen (VTOC) identifica la organización del conjunto de datos ( DSORG ) del conjunto de datos que describe.

Atributos extendidos de OS/2

Los sistemas de archivos HPFS , FAT12 y FAT16 (pero no FAT32) permiten el almacenamiento de "atributos extendidos" con archivos. Estos comprenden un conjunto arbitrario de tripletes con un nombre, un tipo codificado para el valor y un valor, donde los nombres son únicos y los valores pueden tener hasta 64 KB de longitud. Hay significados estandarizados para ciertos tipos y nombres (bajo OS/2 ). Uno de ellos es que el atributo extendido ".TYPE" se utiliza para determinar el tipo de archivo. Su valor comprende una lista de uno o más tipos de archivos asociados con el archivo, cada uno de los cuales es una cadena, como "Texto sin formato" o "Documento HTML". Por tanto, un archivo puede tener varios tipos.

El sistema de archivos NTFS también permite el almacenamiento de atributos extendidos de OS/2, como una de las bifurcaciones de archivos , pero esta característica simplemente está presente para admitir el subsistema OS/2 (no presente en XP), por lo que el subsistema Win32 trata esta información como una información opaca. bloque de datos y no los utiliza. En cambio, se basa en otras bifurcaciones de archivos para almacenar metainformación en formatos específicos de Win32. Los programas Win32 aún pueden leer y escribir los atributos extendidos de OS/2, pero las aplicaciones deben analizar los datos por completo.

Atributos extendidos POSIX

En Unix y sistemas similares a Unix , los sistemas de archivos ext2 , ext3 , ext4 , ReiserFS versión 3, XFS , JFS , FFS y HFS+ permiten el almacenamiento de atributos extendidos con archivos. Estos incluyen una lista arbitraria de cadenas "nombre=valor", donde los nombres son únicos y se puede acceder a un valor a través de su nombre relacionado.

Identificadores únicos de PRONOM (PUID)

El identificador único persistente (PUID) de PRONOM es un esquema extensible de identificadores persistentes, únicos e inequívocos para formatos de archivos, que ha sido desarrollado por los Archivos Nacionales del Reino Unido como parte de su servicio de registro técnico PRONOM . Los PUID se pueden expresar como identificadores uniformes de recursos utilizando el espacio de nombres info:pronom/ . Aunque aún no se utiliza ampliamente fuera del gobierno del Reino Unido y de algunos programas de preservación digital , el esquema PUID proporciona mayor granularidad que la mayoría de los esquemas alternativos.

tipos MIME

Los tipos MIME se utilizan ampliamente en muchas aplicaciones relacionadas con Internet y cada vez más en otros lugares, aunque su uso para información de tipo en disco es poco común. Estos consisten en un sistema estandarizado de identificadores (administrados por la IANA ) que consta de un tipo y un subtipo , separados por una barra diagonal —por ejemplo, texto/html o imagen/gif . Originalmente estaban pensados ​​como una forma de identificar qué tipo de archivo se adjuntó a un correo electrónico , independientemente de los sistemas operativos de origen y de destino. Los tipos MIME identifican archivos en BeOS , AmigaOS 4.0 y MorphOS , además de almacenar firmas de aplicaciones únicas para su inicio. En AmigaOS y MorphOS, el sistema de tipo Mime funciona en paralelo con el sistema de tipo de datos específico de Amiga.

Sin embargo, existen problemas con los tipos MIME; Varias organizaciones y personas han creado sus propios tipos MIME sin registrarlos adecuadamente en la IANA, lo que hace que el uso de este estándar sea incómodo en algunos casos.

Identificadores de formato de archivo (FFID)

Los identificadores de formato de archivo son otra forma, no muy utilizada, de identificar formatos de archivo según su origen y categoría de archivo. Fue creado para el conjunto de software Description Explorer. Está compuesto por varios dígitos de la forma NNNNNNNNN-XX-YYYYYYY. La primera parte indica el origen/mantenedor de la organización (este número representa un valor en una base de datos de una empresa/organización de estándares), y los 2 dígitos siguientes categorizan el tipo de archivo en hexadecimal . La parte final se compone de la extensión habitual del nombre del archivo o del número estándar internacional del archivo, rellenado con ceros a la izquierda. Por ejemplo, la especificación del archivo PNG tiene el FFID de 000000001-31-0015948donde 31indica un archivo de imagen, 0015948es el número estándar e 000000001indica la Organización Internacional de Normalización (ISO).

Identificación de formato basada en el contenido del archivo

Otra forma menos popular de identificar el formato de archivo es examinar el contenido del archivo en busca de patrones distinguibles entre los tipos de archivos. El contenido de un archivo es una secuencia de bytes y un byte tiene 256 permutaciones únicas (0–255). Por lo tanto, contar la aparición de patrones de bytes, lo que a menudo se denomina distribución de frecuencia de bytes, proporciona patrones distinguibles para identificar tipos de archivos. Existen muchos esquemas de identificación de tipos de archivos basados ​​en contenido que utilizan una distribución de frecuencia de bytes para construir modelos representativos para el tipo de archivo y utilizan técnicas estadísticas y de minería de datos para identificar tipos de archivos. [2]

Estructura de archivos

Hay varios tipos de formas de estructurar datos en un archivo. Los más habituales se describen a continuación.

Formatos no estructurados (volcados de memoria sin formato)

Los formatos de archivo anteriores utilizaban formatos de datos sin procesar que consistían en volcar directamente las imágenes de memoria de una o más estructuras en el archivo.

Esto tiene varios inconvenientes. A menos que las imágenes de memoria también tengan espacios reservados para futuras ampliaciones, ampliar y mejorar este tipo de archivos estructurados es muy complicado. También crea archivos que pueden ser específicos de una plataforma o lenguaje de programación (por ejemplo, una estructura que contiene una cadena Pascal no se reconoce como tal en C ). Por otro lado, desarrollar herramientas para leer y escribir este tipo de archivos es muy sencillo.

Las limitaciones de los formatos no estructurados llevaron al desarrollo de otros tipos de formatos de archivo que podrían ampliarse fácilmente y ser compatibles con versiones anteriores al mismo tiempo.

Formatos basados ​​en fragmentos

En este tipo de estructura de archivos, cada dato está incrustado en un contenedor que de alguna manera identifica los datos. El alcance del contenedor puede identificarse mediante marcadores de inicio y fin de algún tipo, mediante un campo de longitud explícito en algún lugar o mediante requisitos fijos de la definición del formato de archivo.

A lo largo de la década de 1970, muchos programas utilizaron formatos de este tipo general. Por ejemplo, procesadores de texto como troff , Script y Scribe , y archivos de exportación de bases de datos como CSV . Electronic Arts y Commodore - Amiga también utilizaron este tipo de formato de archivo en 1985, con su formato de archivo IFF (Interchange File Format).

A un contenedor a veces se le llama "trozo" , aunque "trozo" también puede implicar que cada pieza es pequeña y/o que los trozos no contienen otros trozos; muchos formatos no imponen esos requisitos.

La información que identifica un "fragmento" particular puede denominarse de muchas maneras diferentes, a menudo términos que incluyen "nombre de campo", "identificador", "etiqueta" o "etiqueta". Los identificadores suelen ser legibles por humanos y clasifican partes de los datos: por ejemplo, como "apellido", "dirección", "rectángulo", "nombre de fuente", etc. No son lo mismo que los identificadores en el sentido de una clave de base de datos o un número de serie (aunque un identificador bien puede identificar sus datos asociados como dicha clave).

Con este tipo de estructura de archivos, las herramientas que no conocen ciertos identificadores de fragmentos simplemente omiten aquellos que no comprenden. Dependiendo del significado real de los datos omitidos, esto puede ser útil o no ( CSS define explícitamente dicho comportamiento).

Este concepto ha sido utilizado una y otra vez por flujos y archivos codificados RIFF (Microsoft-IBM equivalente a IFF), PNG, almacenamiento JPEG, DER ( Reglas de codificación distinguidas ) (que se describieron originalmente en CCITT X.409:1984 y, por lo tanto, son anteriores a IFF). ) y formato de intercambio de datos estructurados (SDXF) .

De hecho, cualquier formato de datos debe identificar de alguna manera el significado de sus componentes, y los marcadores de límites integrados son una forma obvia de hacerlo:

Formatos basados ​​en directorios

Este es otro formato extensible, que se parece mucho a un sistema de archivos ( los documentos OLE son sistemas de archivos reales), donde el archivo se compone de "entradas de directorio" que contienen la ubicación de los datos dentro del archivo mismo, así como sus firmas (y en ciertos casos). casos su tipo). Buenos ejemplos de este tipo de estructuras de archivos son imágenes de disco , ejecutables , documentos OLE TIFF y bibliotecas .

Algunos formatos de archivo como ODT y DOCX, que están basados ​​en PKZIP , están fragmentados y llevan un directorio. [ cita necesaria ]

La estructura de un formato de archivo basado en directorios se presta a modificaciones más fácilmente que los formatos no estructurados o basados ​​en fragmentos. [ cita necesaria ] La naturaleza de este tipo de formato permite a los usuarios construir cuidadosamente archivos que hacen que el software lector haga cosas que los autores del formato nunca pretendieron que sucedieran. Un ejemplo de esto es la bomba zip . Los formatos de archivos basados ​​en directorios también usan valores que apuntan a otras áreas del archivo, pero si algún valor de datos posterior apunta a datos que se leyeron anteriormente, puede resultar en un bucle infinito para cualquier software de lectura que asuma que el archivo de entrada es válido y sigue ciegamente el bucle. [ cita necesaria ]

Ver también

Referencias

  1. ^ PC World (23 de diciembre de 2003). "Consejos para Windows: por razones de seguridad, vale la pena conocer las extensiones de sus archivos". Archivado desde el original el 23 de abril de 2008 . Consultado el 20 de junio de 2008 .
  2. ^ "Identificación del formato de archivo". Archivado desde el original el 14 de agosto de 2009 . Consultado el 21 de julio de 2009 .
  • "Tipos de datos de atributos extendidos". Consejos y trucos de REXX, versión 2.80 . Archivado desde el original el 25 de diciembre de 2004 . Consultado el 9 de febrero de 2005 .
  • "Atributos extendidos utilizados por WPS". Consejos y trucos de REXX, versión 2.80 . Archivado desde el original el 21 de marzo de 2005 . Consultado el 9 de febrero de 2005 .
  • "Atributos ampliados: ¿qué son y cómo se pueden utilizar?". Roger Orr . Archivado desde el original el 21 de marzo de 2008 . Consultado el 9 de febrero de 2005 .

enlaces externos