📁 SOFTWARE 2 - EETP 468 - 2026

Estructuras de
Archivos de Datos

Conocé cómo los programas y sistemas operativos organizan, identifican y almacenan la información en disco.

01 ¿Qué es un archivo? 02 Archivos de texto 03 Archivos binarios 04 Formatos comunes 05 Estructura interna 06 Eficiencia de acceso 07 Comparación 08 Actividad
// 01

¿Qué es un archivo?

📄 Definición

Un archivo es una colección de datos relacionados, almacenada en un soporte persistente (disco, SSD, nube) bajo un nombre y una ubicación dentro del sistema de archivos.

🧩 Identificación

Cada archivo se identifica por: nombre, extensión (p. ej. .txt, .jpg), ruta en el sistema, y metadatos (fecha, tamaño, permisos).

🗂️ Tipos principales

Se dividen en archivos de datos (contienen información del usuario) y archivos de programa (contienen instrucciones ejecutables o código fuente).

⚙️ Ambiente de software

Cada sistema operativo (Windows, Linux, macOS) y cada aplicación tiene sus propias convenciones para crear, leer y modificar archivos.

💡 Concepto clave
La extensión es una convención que indica al sistema operativo qué programa debe usarse para abrir el archivo y qué estructura de datos esperar dentro.
Categoría Ejemplos de archivos Ambiente típico Tipo
Documentos de texto .txt .md .csv Cualquier SO Texto
Documentos de oficina .docx .xlsx .pdf Windows / macOS Binario
Imágenes .png .jpg .bmp Multiplataforma Binario
Audio / Video .mp3 .mp4 .wav Multiplataforma Binario
Programas ejecutables .exe .elf .app Windows / Linux / macOS Ejecutable
Código fuente .py .java .c .js Cualquier SO Texto
// 02

Archivos de Texto

Los archivos de texto almacenan información como secuencias de caracteres legibles por humanos, codificados bajo un estándar (ASCII, UTF-8, etc.).

Identificación
Extensión .txt, .csv, .html. Detectables sin extensión leyendo bytes iniciales (todos < 0x7F en ASCII).
Representación de datos
Cada carácter = 1 byte (ASCII) o 1–4 bytes (UTF-8). Fin de línea: LF en Unix, CR+LF en Windows.
Estructura de almacenamiento
Secuencial lineal. Sin encabezados ni metadatos internos. El contenido comienza en el byte 0.
Vinculación interna
Ninguna estructura interna formal. Las líneas se separan por caracteres de nueva línea; no hay punteros ni índices.
Ocupación de espacio
Tamaño real = cantidad de caracteres × bytes por carácter. Sin compresión ni datos adicionales. Muy eficiente para texto simple.
Eficiencia de acceso
Acceso secuencial O(n). Para encontrar la línea 500 hay que leer las 499 anteriores. No apto para grandes volúmenes sin índice.
// Visualización hex de "Hola Mundo\n" en UTF-8
0x0000 48 6F 6C 61 20 4D 75 6E 64 6F 0A Hola Mundo. ← 0A = salto de línea (LF)
0x000B 45 73 74 65 20 65 73 20 61 72 67 Este es arg ← texto plano, legible
⚠️ Codificación
El mismo archivo puede verse diferente en distintos sistemas si la codificación no es la misma. UTF-8 es el estándar moderno; evita usar ANSI/Latin-1 para texto en español.
// 03

Archivos Binarios

Los archivos binarios almacenan información en su representación más compacta y eficiente, no necesariamente legible por humanos.

Identificación (Magic Numbers)
Los primeros bytes identifican el formato. Ejemplo: FF D8 FF = JPEG; 89 50 4E 47 = PNG; 50 4B 03 04 = ZIP/DOCX.
Representación de datos
Enteros, flotantes, booleanos en su forma nativa de CPU. Un entero de 32 bits ocupa exactamente 4 bytes; un texto ocupa n bytes.
Estructura de almacenamiento
Encabezado (header) + cuerpo de datos + pie opcional. El header describe versión, dimensiones, offset al contenido, paleta de colores, etc.
Vinculación interna
Punteros de offset, tablas de índice, listas enlazadas internas. Permiten saltar directamente a cualquier parte del archivo.
Ocupación de espacio
Compacto: un número de 64 bits ocupa 8 bytes vs. 20 bytes como texto. Muchos formatos agregan compresión (zlib, LZ4) reduciendo aún más.
Eficiencia de acceso
Acceso aleatorio O(1) si el formato usa offsets fijos. Búsqueda de registros en O(log n) con índices internos.
// Primeros bytes de un archivo PNG
0x0000 89 50 4E 47 0D 0A 1A 0A .PNG.... ← Firma mágica PNG
0x0008 00 00 00 0D .... ← Longitud del chunk IHDR (13 bytes)
0x000C 49 48 44 52 IHDR ← Tipo de chunk (cabecera de imagen)
0x0010 00 00 04 B0 00 00 03 20 ....... ← Ancho: 1200px | Alto: 800px
// 04

Formatos Comunes por Ambiente

📕
PDF .pdf
Portable Document Format — Adobe / multiplataforma
▼
Identificación
Firma %PDF-1.x en los primeros bytes. Versión visible como texto ASCII.
Representación
Mezcla de texto (PostScript), datos comprimidos (zlib), imágenes embebidas y fuentes vectoriales.
Estructura
Header → objetos (pages, fonts, images) → cross-reference table → trailer. Acceso por tabla de referencias.
Eficiencia
La tabla xref permite saltar directamente a cualquier página. Archivos grandes pueden usar xref streams comprimidos.
// Estructura lógica de un PDF
+0000
Header (%PDF-1.7)~10 B
+000A
Cuerpo de objetos (páginas, imágenes, fuentes)variable
...
Cross-Reference Table (xref)20 B × objetos
final
Trailer (offset de xref, nro objetos)~50 B
🖼️
JPEG .jpg / .jpeg
Joint Photographic Experts Group — estándar mundial para fotos
▼
Identificación
Magic bytes: FF D8 FF. Termina siempre con FF D9 (End Of Image).
Representación
Píxeles como bloques 8×8, transformada DCT (coseno), cuantización y compresión Huffman. Pérdida de información ("lossy").
Estructura
Segmentos marcados (SOI, APP0/JFIF, DQT, SOF, DHT, SOS, EOI). Cada segmento lleva tipo + longitud.
Espacio y eficiencia
Factor de compresión 10:1 típico respecto a BMP. A mayor compresión, menor calidad visual (artefactos en bordes).
✔ Ventaja clave
Ideal para fotografías. Reduce drásticamente el tamaño aprovechando que el ojo humano es menos sensible a cambios de alta frecuencia.
✖ Desventaja
No apto para texto, logos o gráficos con bordes nítidos → usar PNG. Cada guardado recomprime y pierde más calidad.
🎵
MP3 .mp3
MPEG-1 Audio Layer III — audio comprimido universal
▼
Identificación
Empieza con tag ID3 (49 44 33) o directamente con frame de audio (FF FB).
Representación
Audio dividido en frames de ~26 ms. Cada frame contiene header (4 bytes) + datos de audio comprimidos con modelo psicoacústico.
Estructura
ID3v2 tag (metadatos: artista, álbum, carátula) + secuencia de frames de audio + opcionalmente ID3v1 al final.
Espacio
128 kbps → ~1 MB/min (vs. 10 MB/min en WAV). Compresión 10:1 con pérdida mínima perceptible a calidades medias.
⚙️
EXE / ELF .exe / sin ext.
Ejecutables — Windows (PE) y Linux/Unix (ELF)
▼
Identificación
PE (Windows): 4D 5A ("MZ"). ELF (Linux): 7F 45 4C 46 ("elf").
Representación
Código máquina binario + datos estáticos + tablas de símbolos + secciones (.text, .data, .bss, .rdata).
Estructura ELF
ELF Header (52/64 bytes) → Program Header Table → Secciones de código y datos → Section Header Table.
Vinculación
El enlazador dinámico (ld.so) resuelve referencias a bibliotecas compartidas (.dll / .so) en tiempo de carga.
// Secciones típicas de un ELF
.text
Código ejecutable (instrucciones de máquina)R-X
.rodata
Constantes de solo lectura (strings, tablas)R--
.data
Variables globales inicializadasRW-
.bss
Variables no inicializadas (0 bytes en disco)RW-
🗜️
ZIP .zip / .docx / .xlsx / .jar
Contenedor comprimido — base de muchos formatos modernos
▼
Identificación
Firma: 50 4B 03 04 ("PK"). Usada por ZIP y todos los formatos basados en él (DOCX, XLSX, JAR, APK).
Representación
Cada archivo interno tiene su propio header local + datos comprimidos (DEFLATE). Al final, el Central Directory lista todos los archivos.
Vinculación
El Central Directory al final del ZIP actúa como índice, permitiendo extraer un solo archivo sin descomprimir todo.
Dato curioso
Un archivo .docx es en realidad un ZIP con XML adentro. Podés renombrarlo a .zip y abrirlo.
🔍 Exploralo vos mismo
Renombrá un archivo .docx a .zip, descomprimilo y vas a ver carpetas como word/, _rels/ con archivos XML dentro.
// 05

Estructura Interna y Almacenamiento

Los archivos no son simplemente datos: tienen una organización interna que permite al software localizarlos, interpretarlos y acceder a su contenido.

📌 Header (Encabezado)

Primeros bytes del archivo. Contienen la firma mágica, versión del formato, dimensiones, metadatos y offsets a las secciones del cuerpo.

📦 Body (Cuerpo)

Los datos reales: píxeles, texto, audio, código. Pueden estar en bruto, comprimidos o codificados (Base64, RLE, Huffman, LZ77).

🔗 Índices y Tablas

Estructuras que mapean nombres → offsets o claves → posiciones. Hacen posible el acceso directo sin recorrer todo el archivo.

🔚 Footer (Pie)

Presente en algunos formatos (ZIP, PDF). Contiene el directorio central o trailer que apunta de vuelta al resto del archivo.

💡 Sistema de archivos (FAT32, NTFS, ext4)
El sistema operativo gestiona el espacio en disco dividido en clusters (bloques de 4 KB típicamente). Un archivo puede ocupar múltiples clusters no contiguos (fragmentación). El SO mantiene una tabla (FAT, MFT, inode) que registra qué clusters pertenecen a cada archivo.
Sistema de ArchivosSOTamaño max. archivoMetadatosCaracterísticas
FAT32 Windows / USB 4 GB Básicos Simple, compatible universalmente
NTFS Windows 16 EB Avanzados (ACL, compresión) Journaling, seguridad, cuotas
ext4 Linux 16 TB Inodos (permisos Unix) Journaling, extents, rápido
APFS macOS / iOS 8 EB Encriptación nativa Snapshots, clones, SSD-optimized
// 06

Factores de Eficiencia en el Acceso

La velocidad con que un programa puede leer o escribir datos depende de múltiples factores relacionados con el formato y el hardware.

Acceso secuencial (texto plano)Lento para grandes datos
Acceso con índice (SQLite, PDF xref)Rápido
Archivo fragmentado en HDDPenalización por seeks
Archivo contiguo en SSDMuy rápido
Binario sin compresiónRápido lectura
Binario comprimido (ZIP, MP3)Balance espacio/velocidad
📊 Factores que influyen
  • 🔹 Tipo de acceso: secuencial vs. aleatorio
  • 🔹 Presencia de índices o tablas de salto
  • 🔹 Nivel de compresión del contenido
  • 🔹 Tamaño del cluster del sistema de archivos
  • 🔹 Fragmentación del archivo en disco
  • 🔹 Caché del sistema operativo (buffer cache)
  • 🔹 Tipo de almacenamiento: HDD vs. SSD vs. RAM
⚠️ Fragmentación

Cuando un archivo crece y no cabe en un bloque contiguo, el SO lo divide en fragmentos. En HDD esto causa "seek time" (la cabeza lectora debe moverse físicamente). En SSD no hay penalización mecánica, pero sí overhead de gestión. La desfragmentación reorganiza los datos para mejorar la eficiencia.

// 07

Tabla Comparativa General

Formato Tipo Identificación Compresión Acceso directo Espacio Uso principal
.txt / .csv Texto Sin firma; codificación ✗ No ✗ Solo líneas Alto (verboso) Intercambio, logs, config
.json / .xml Texto { o <?xml ✗ No ✗ Solo parseo Alto APIs, configuración
.pdf Binario %PDF-x.x ✓ Parcial ✓ xref table Medio Documentos imprimibles
.jpg Binario FF D8 FF ✓ DCT lossy ✗ Líneas de scan Bajo Fotografías
.png Binario 89 50 4E 47 ✓ DEFLATE lossless ✗ Líneas de scan Medio Gráficos, transparencia
.mp3 Binario 49 44 33 / FF FB ✓ Psicoacústica ✗ Frames secuenciales Bajo Audio comprimido
.zip / .docx Contenedor 50 4B 03 04 ✓ DEFLATE ✓ Central Dir Muy bajo Archivado, Office
.exe / ELF Ejecutable MZ / 7F ELF ✗ No ✓ Secciones Variable Programas del SO
// 08

Actividad de Repaso

Respondé las preguntas para comprobar lo que aprendiste. Cliqueá una opción para ver si es correcta.

P1 ¿Cómo se llaman los bytes especiales al inicio de un archivo binario que identifican su formato?
A Bytes de relleno
B Magic numbers (números mágicos)
C Checksum de integridad
D Header de compresión
✔ ¡Correcto! Los "magic numbers" son los primeros bytes de un archivo binario que identifican el formato (ej: FF D8 FF para JPEG).
✖ Incorrecto. La respuesta correcta es B: "Magic numbers". Son los primeros bytes que identifican unívocamente el formato del archivo.
P2 Si abrís un archivo .docx con un descompresor ZIP, ¿qué encontrás dentro?
A Un archivo binario ilegible
B Una base de datos SQLite
C Carpetas y archivos XML
D El texto plano del documento
✔ ¡Exacto! Un .docx es un contenedor ZIP con archivos XML dentro (word/document.xml, etc.).
✖ Incorrecto. Un .docx es un archivo ZIP que contiene carpetas y archivos XML con el contenido y formato del documento.
P3 ¿Qué formato es más apropiado para guardar el logo de una empresa con fondo transparente?
A JPEG (.jpg)
B PNG (.png)
C MP3 (.mp3)
D TXT (.txt)
✔ ¡Correcto! PNG soporta canal alfa (transparencia) y usa compresión sin pérdida, ideal para logos y gráficos.
✖ Incorrecto. JPEG no soporta transparencia. Para logos con fondo transparente se usa PNG (canal alfa, sin pérdida).
P4 ¿Por qué un archivo fragmentado en un HDD (disco magnético) se accede más lento que uno contiguo?
A Porque ocupa más espacio
B Porque está encriptado
C Porque la cabeza lectora debe moverse físicamente entre distintas zonas del disco
D Porque el sistema operativo no puede leer archivos fragmentados
✔ ¡Muy bien! En HDD, la cabeza lectora debe posicionarse físicamente (seek time) en cada fragmento, lo que suma latencia.
✖ Incorrecto. En un HDD, la cabeza lectora es mecánica: debe "buscar" cada fragmento físicamente (seek time), lo que añade latencia.
P5 ¿Qué ventaja tiene el Central Directory al final de un ZIP para el acceso a los archivos?
A Comprime los datos con mayor eficiencia
B Permite extraer un archivo individual sin descomprimir todo el ZIP
C Protege el archivo con contraseña automáticamente
D Guarda los metadatos EXIF de las imágenes
✔ ¡Correcto! El Central Directory actúa como índice: indica el offset de cada archivo comprimido, permitiendo acceso directo.
✖ Incorrecto. El Central Directory es un índice al final del ZIP que permite saltar directamente a cualquier archivo sin extraer todo.