Saltar al contenido

Ficheros y formatos

Cómo se organiza el acceso a los registros de un fichero y qué identifica a los formatos más preguntados: instaladores, documentos, correo, imagen, audio y vídeo.

Formas de acceso a un fichero

La organización de un fichero decide cómo se llega a un registro concreto, y con ello lo que cuesta leerlo, escribirlo o borrarlo. Hay tres formas básicas y una híbrida.

En el acceso secuencial los registros se leen en el orden en que están escritos, desde el principio. Es la organización de la cinta magnética, y de ahí vienen sus dos rasgos: los registros nuevos se añaden al final, y el borrado es lógico, no físico. Borrar de verdad exigiría reescribir el fichero entero, así que lo que se hace es marcar el registro como eliminado y dejar de tenerlo en cuenta.

En el acceso directo se llega al registro sin recorrer los anteriores: una clave del propio registro, o una función aplicada sobre esa clave, indica la posición que ocupa dentro del fichero. Es la misma idea de la tabla hash llevada al almacenamiento.

En el acceso indexado hay dos ficheros: uno con los datos y otro, el índice, que asocia cada clave con la posición donde está su registro. Se busca en el índice, que es pequeño y está ordenado, y de ahí se salta directamente al dato.

OrganizaciónCómo se llega al registroRasgo típico
SecuencialRecorriendo desde el principioLos nuevos se añaden al final y el borrado es lógico
DirectaCalculando la posición a partir de la claveAcceso inmediato, sin recorrer
IndexadaConsultando un índice que apunta al datoÍndice ordenado y aparte de los datos
Híbrida o ISAMÍndice para localizar y lectura secuencial dentro del bloqueCombina las dos anteriores: el motor MyISAM de MySQL toma de ahí su nombre

Para el examen

  • Secuencial: se lee desde el principio, se añade al final y el borrado es lógico

  • Directa: la posición se calcula a partir de la clave

  • Indexada: un índice aparte apunta al dato

  • ISAM: combina índice y lectura secuencial

Instaladores y paquetes por sistema operativo

Cada sistema operativo tiene su propio formato de distribución de software, y es una de las preguntas de identificación más habituales.

ExtensiónSistemaQué es
exeWindowsEjecutable
msiWindowsPaquete de instalación de Windows Installer
pkg y dmgmacOSPaquete de instalación e imagen de disco
debLinux Debian y derivados, como UbuntuPaquete de software
rpmLinux Red Hat y derivados, como Fedora o CentOSPaquete de software
tar.gzLinux y UnixArchivo agrupado con tar y comprimido con gzip
apkAndroidAplicación instalable
aabAndroidAndroid App Bundle: formato de publicación del que la tienda genera el paquete adaptado a cada dispositivo
ipaiOSAplicación instalable

Para el examen

  • deb y rpm: Debian y Ubuntu; Red Hat y Fedora

  • msi: Windows

  • pkg y dmg: macOS

  • apk e ipa: Android e iOS

Documentos, ofimática, correo y certificados

En ofimática de Microsoft hay una frontera clara en la versión 2007. Hasta ella, los formatos binarios doc, xls y ppt eran propietarios y se apoyaban en el almacenamiento compuesto OLE. Desde ella, los formatos docx, xlsx y pptx son en realidad un archivo comprimido en zip que contiene documentos XML: es el estándar Office Open XML (OOXML), normalizado como ECMA-376 e ISO/IEC 29500. En esas extensiones la letra final indica la variante: x para el formato XML normal, m para el que admite macros y t para las plantillas (dotx, xltx, potx).

La alternativa abierta es OpenDocument, de OpenOffice y LibreOffice: odt para texto, ods para hoja de cálculo, odp para presentación, odg para dibujo y odb para base de datos.

FormatoPara qué sirve
PDF (ISO 32000-1:2008)Documento de presentación fija, independiente del dispositivo
PDF/AVariante para archivado y conservación a largo plazo
PDF/UAVariante orientada a la accesibilidad universal
PDF/XVariante para artes gráficas e impresión profesional
PostScript (PS) y PCLLenguajes de descripción de página para impresión
epubLibro electrónico de maquetación adaptable
csvTexto plano con campos separados por comas o por punto y coma
vcfTarjeta de contacto (vCard)

En correo electrónico conviene separar lo que guarda un solo mensaje de lo que guarda un buzón entero. El fichero eml contiene un único mensaje con el formato normalizado de Internet (RFC 5322, que sustituyó al RFC 2822), y msg es su equivalente propietario de Outlook. En cambio mbox (RFC 4155) es un contenedor con muchos mensajes seguidos, y pst y ost son los buzones de Outlook, el primero de almacenamiento local y el segundo la copia sin conexión sincronizada con el servidor. Los ficheros nsf son las bases de Lotus Notes, en su versión de cliente (Notes) y de servidor (Domino).

En certificados, el par p12 o pfx contiene el certificado junto con su clave privada, mientras que cer contiene el certificado X.509 sin ella. Por eso un p12 se protege con contraseña y no se envía a nadie, y un cer sí se puede repartir.

Para el examen

  • docx, xlsx y pptx: un zip de XML: OOXML, ECMA-376 e ISO/IEC 29500

  • La «m» final (docm, xlsm): admite macros

  • OpenDocument: odt, ods y odp

  • eml y msg frente a mbox y pst: los primeros guardan UN mensaje; los segundos, un buzón

  • p12/pfx frente a cer: p12 y pfx llevan la clave privada; cer, solo el certificado

Formatos de imagen y tipos MIME

La primera división es entre imagen de mapa de bits, que guarda píxeles y pierde calidad al ampliarse, e imagen vectorial, que guarda las figuras como fórmulas y se escala sin degradarse. La segunda es entre compresión con pérdida, que descarta información para ocupar menos, y sin pérdida, que permite reconstruir el original exacto.

FormatoCompresiónRasgos
JPEG o JPGCon pérdidaDel grupo Joint Photographic Experts Group. Pensado para fotografía. JPEG 2000 es su sucesor y admite también modo sin pérdida
PNGSin pérdidaTransparencia por canal alfa y color real de 24 bits. No admite animación
GIFSin pérdida (LZW)Paleta limitada a 256 colores, transparencia simple y animación
TIFFCon o sin compresiónFormato etiquetado (tagged) y multipágina. Habitual en digitalización y artes gráficas
BMPSin pérdida (RLE opcional)Mapa de bits de Microsoft, sencillo y voluminoso
SVGNo aplica: es vectorialScalable Vector Graphics, definido en XML. Se incrusta de forma nativa en HTML5 y se edita con herramientas como Inkscape
WebPAdmite los dos modos, con pérdida y sin ellaDe Google. Soporta transparencia y también animación

Los tipos MIME son la etiqueta con la que se declara la naturaleza de un contenido para que el navegador sepa qué hacer con él. Se escriben como tipo y subtipo separados por una barra: image/gif, image/svg+xml, text/html, text/xml, application/javascript, application/pdf o video/mpeg.

Para el examen

  • JPEG: con pérdida, para fotografía

  • PNG: sin pérdida, con canal alfa y sin animación

  • GIF: 256 colores y animación

  • SVG: vectorial, escrito en XML

  • Tipo MIME: tipo/subtipo: image/svg+xml, application/pdf, text/html

Audio, vídeo, contenedores y códecs

Aquí hay que separar dos cosas que se confunden siempre. El códec es el algoritmo que codifica y descodifica la señal, y decide la calidad y el tamaño. El contenedor es el envoltorio con cajones para meter dentro las pistas de vídeo, las de audio, los subtítulos y los metadatos, y decide qué se puede combinar. Un mismo contenedor admite distintos códecs, y por eso saber que un fichero es .mp4 no dice todavía con qué está codificado.

Formato de audioTipoRasgos
MP3Con pérdidaMPEG-1 y MPEG-2 Audio Layer III, normalizado por ISO. Sus etiquetas ID3 guardan autor, título, álbum o género
AACCon pérdidaSucesor del MP3, dentro de MPEG-4 Audio. Extensiones m4a, m4b y aac
FLACSin pérdidaFree Lossless Audio Codec, de la fundación Xiph.Org
ALACSin pérdidaEl equivalente de Apple al FLAC
AC3Con pérdidaDolby Digital, multicanal, de los laboratorios Dolby
OpusCon pérdidaDe Xiph.Org, muy usado en voz sobre IP y en tiempo real
VorbisCon pérdidaDe Xiph.Org, con extensión ogg
Contenedor de vídeoOrigenRasgos
MKV (Matroska)AbiertoMuy flexible: admite casi cualquier códec, varias pistas y subtítulos
AVIMicrosoftAudio Video Interleave, antiguo y muy extendido
ASFMicrosoftContenedor de WMA (audio) y WMV (vídeo)
MP4EstándarMPEG-4 Part 14, el más universal en distribución y web
MOVAppleContenedor de QuickTime
OGGXiph.OrgContenedor abierto, habitual con Vorbis y Theora
3GPEstándar móvilVersión reducida para telefonía
MPGEstándarMPEG-1 en vídeo CD, MPEG-2 en DVD y MPEG-4 en alta definición
WebMGoogleBasado en Matroska, con vídeo VP8, VP9 o AV1 y audio Vorbis u Opus

Entre los códecs de vídeo, la línea principal la marcan los estándares del grupo MPEG y la UIT: AVC (H.264), su sucesor HEVC (H.265) y el más reciente VVC (H.266), cada uno con mejor compresión que el anterior a igual calidad. Junto a ellos conviven DivX y Xvid, muy extendidos en su día, el WMV de Microsoft, y la familia abierta y libre de regalías VP8, VP9 y AV1.

Contenedor y códec responden a preguntas distintas: MP4, MKV o AVI son cajas, y H.264, HEVC o AV1 son lo que va dentro.

Para el examen

  • Contenedores: MP4, MKV, AVI, MOV, OGG y WebM

  • Códecs de vídeo: H.264 (AVC), H.265 (HEVC), H.266 (VVC), VP9 y AV1

  • Audio sin pérdida: FLAC y ALAC

  • Audio con pérdida: MP3, AAC, Vorbis, Opus y AC3

Cómo se identifica de verdad un fichero

La extensión es solo una convención del nombre y se puede cambiar sin que el contenido cambie, así que no sirve para identificar un fichero con seguridad. Lo que sí lo identifica es el magic number o firma (signature): los primeros bytes del fichero, que llevan un patrón fijo característico de cada formato.

Por eso un archivo renombrado como imagen sigue siendo detectable como ejecutable, algo relevante en seguridad, y por eso los servidores comprueban la firma y no la extensión al aceptar una subida. Apache Tika es una biblioteca de Java muy usada para esta tarea: detecta el tipo de un fichero por su firma y extrae además sus metadatos y su texto.

La extensión la decide quien nombra el fichero; el magic number lo decide quien lo escribió. Solo el segundo es prueba de qué contiene.

Para el examen

  • Qué identifica el formato real: el magic number: los primeros bytes del fichero

  • Lo que NO lo identifica: la extensión

  • Apache Tika: detecta el tipo por la firma y extrae metadatos