Uso de la compresión nativa de archivos

En esta práctica del módulo de Sistemas Operativos Monopuesto, profundizaremos en la optimización del almacenamiento mediante el uso de la compresión nativa de archivos a nivel de sistema de archivos. Aprenderemos a comparar el espacio ocupado frente al tamaño real de los archivos utilizando tanto NTFS en Windows como compresión nativa en sistemas modernos de Linux (Btrfs).

Objetivo:

Comprimir directorios de gran tamaño utilizando las características nativas de compresión del sistema de archivos, comprobando la relación de compresión y el ahorro real de espacio en el disco duro.

Escenario:

  • Un equipo con sistema operativo Windows (NTFS) o GNU/Linux (Btrfs).
  • Acceso a la consola de comandos con privilegios de administrador o superusuario (sudo).
  • Una carpeta de pruebas que contenga archivos variados (documentos de texto, PDFs, registros, etc.).

Instrucciones:

Opción A: Entorno Windows (Compresión nativa NTFS)

  1. Preparación y consulta del tamaño inicial:
    • Crea una carpeta de pruebas (ej. C:\CarpetaPruebas) y añade diversos archivos en su interior.
    • Haz clic derecho sobre la carpeta, selecciona Propiedades y anota los valores de "Tamaño" y "Tamaño en disco".
  2. Aplicación de la compresión NTFS:
    • En la pestaña General de Propiedades, haz clic en Avanzadas...
    • Marca la casilla "Comprimir contenido para ahorrar espacio en disco" y pulsa Aceptar.
    • Aplica los cambios a esta carpeta, subcarpetas y archivos. También puedes hacerlo rápidamente por comandos con: compact /c /s:"C:\CarpetaPruebas"

Opción B: Entorno GNU/Linux (Compresión transparente con Btrfs)

  1. Creación y montaje de un directorio con compresión Btrfs:
    • Abre una terminal con privilegios de superusuario.
    • Si dispones de una partición o subvolumen formateado en Btrfs (ej. montado en /mnt/btrfs), puedes habilitar la compresión transparente en tiempo real utilizando el algoritmo zstd ejecutando:
      sudo mount -o remount,compress=zstd /mnt/btrfs
  2. Verificación del espacio ocupado y estadísticas:
    • Crea una carpeta de pruebas en ese directorio (mkdir /mnt/btrfs/CarpetaPruebas) y copia archivos pesados de texto o logs en su interior.
    • Para comprobar el factor de compresión real y el espacio ahorrado de forma transparente por el sistema de archivos, utiliza la herramienta nativa de análisis de Btrfs:
      sudo btrfs filesystem du -s /mnt/btrfs/CarpetaPruebas

Verificación

  1. Comprueba que has aplicado la compresión nativa en el sistema operativo elegido (NTFS o Btrfs).
  2. Verifica los valores de espacio real frente al tamaño lógico en disco.
  3. Confirma que el acceso a los ficheros comprimidos sigue siendo totalmente transparente para el usuario y las aplicaciones.

Preguntas de reflexión:

  1. ¿Por qué se observa una diferencia tan significativa en el porcentaje de compresión según el tipo de archivo (por ejemplo, texto plano frente a imágenes JPG o archivos comprimidos previos)?
  2. ¿Qué implicaciones de rendimiento a nivel de CPU y velocidad de E/S conlleva el uso de la compresión nativa en discos mecánicos (HDD) frente a unidades de estado sólido (SSD) modernas?
  3. ¿Cómo gestionan sistemas de archivos como NTFS o Btrfs la lectura y escritura de un archivo comprimido de forma transparente sin necesidad de descomprimirlo manualmente por completo?
Haz clic aquí para ver la solución orientativa

1. ¿Por qué se observa una diferencia significativa en el porcentaje de compresión según el tipo de archivo?

La compresión busca patrones repetitivos. Los archivos de texto plano o bases de datos poseen una alta redundancia de caracteres, permitiendo altas tasas de compresión. En cambio, ficheros como imágenes JPG o archivos ya comprimidos (ZIP) contienen datos aleatorios o ya optimizados, obteniendo un ahorro de espacio mínimo.


2. ¿Qué implicaciones de rendimiento a nivel de CPU y velocidad de E/S conlleva el uso de la compresión nativa?

El uso de compresión traslada parte del trabajo físico del disco al procesador (CPU), que debe comprimir o descomprimir bloques al vuelo. En HDD lentos mejora el rendimiento al mover menos datos físicos, mientras que en SSD muy rápidas puede suponer un pequeño coste de CPU innecesario para archivos de uso cotidiano.


3. ¿Cómo gestionan NTFS o Btrfs la lectura y escritura de archivos comprimidos de forma transparente?

Ambos sistemas agrupan los datos en bloques o unidades de compresión. Al solicitar un fichero, el controlador lee los bloques comprimidos del disco, los descomprime al vuelo en la memoria caché RAM y entrega los datos limpios a la aplicación, invirtiendo el proceso al guardarlos.