¿Qué es un sistema de archivos?
🗄️ Definición
Un sistema de archivos (filesystem) es la estructura lógica que define cómo se organizan, nombran y acceden los datos dentro de un medio de almacenamiento.
❓ ¿Por qué existe?
Sin un sistema de archivos, el disco sería solo una secuencia lineal de bits sin organización. El filesystem le da sentido a esa masa de datos.
📋 ¿Qué hace el SO?
El sistema operativo usa el filesystem para saber dónde empieza y termina cada archivo, qué nombre tiene, quién puede accederlo y cuándo fue modificado.
💡 Analogía
Pensalo como el índice de un libro enorme: sin índice, tendrías que leer todo el libro para encontrar una sola palabra. El filesystem es ese índice.
La jerarquía: árbol de directorios
La metáfora fundamental es el árbol invertido. Hay un único nodo raíz del que cuelgan todos los demás elementos: directorios y archivos.
🐧 Linux / macOS
La raíz es / (barra). Todo el sistema —discos, dispositivos, usuarios— cuelga de ese único punto.
🪟 Windows
Cada unidad tiene su propia raíz: C:\, D:\, etc. No existe una raíz única global.
// Ejemplo en Linux
├── home/
│ └── alumno/
│ ├── documentos/
│ │ └── tesis.docx
│ └── fotos/
│ └── vacaciones.jpg
├── etc/
│ └── hosts
└── var/
└── log/
// Ejemplo en Windows
├── Users\
│ └── Alumno\
│ ├── Documents\
│ └── Pictures\
├── Program Files\
└── Windows\
/dev/.
Conceptos clave
Ruta absoluta vs. ruta relativa
La ruta absoluta especifica la ubicación completa desde la raíz. Ejemplo: C:\Users\Alumno\Documents\tarea.docx.
La ruta relativa la especifica desde donde estás parado. Si ya estás en C:\Users\Alumno, la ruta relativa al mismo archivo es Documents\tarea.docx.
Metadatos de un archivo
Cada archivo tiene metadatos: información sobre el archivo que no es el contenido en sí. Incluyen nombre, extensión, tamaño, fechas de creación/modificación/acceso, y permisos (quién puede leer, escribir o ejecutar).
Inodos (sistemas Unix/Linux)
En Linux, cada archivo tiene asociado un inodo: una estructura que almacena los metadatos y los punteros a los bloques del disco donde están los datos reales. El nombre del archivo no está en el inodo sino en el directorio. Esto permite que un mismo archivo tenga múltiples nombres (hard links).
Fragmentación
Cuando se crean, modifican y eliminan archivos repetidamente, el sistema puede no encontrar espacio contiguo y divide el archivo en fragmentos dispersos por el disco. En HDD esto reduce el rendimiento porque la cabeza lectora debe moverse físicamente. En SSD, la fragmentación no impacta igual porque el acceso es aleatorio y uniforme.
Tipos de sistemas de archivos
Cada sistema de archivos tiene sus propias reglas. Cliqueá en cada uno para ver los detalles.
Se usa principalmente en memorias USB y tarjetas SD por su compatibilidad universal con cualquier dispositivo.
Ideal para memorias USB y tarjetas SD que necesitan manejar archivos grandes (videos 4K, backups). Es el formato recomendado para medios extraíbles modernos.
Soporta compresión y cifrado a nivel de sistema de archivos, nombres de archivo largos y unicode. Es el filesystem del disco interno en Windows.
Usa extent-based storage: reserva bloques contiguos de antemano para cada archivo, reduciendo la fragmentación. Es robusto, rápido y muy maduro. El filesystem más usado en servidores Linux.
Permite múltiples volúmenes dentro de un mismo contenedor compartiendo el espacio disponible, y soporta snapshots del sistema completo.
Por defecto en openSUSE y Fedora. Su característica más valiosa es la detección de corrupción silenciosa: verifica que los datos leídos son exactamente los que se escribieron.
Ofrece compresión, snapshots, clonado y una garantía de que los datos que guardaste son exactamente los que recuperás, gracias al checksum en cada bloque de datos.
¿Qué es el journaling?
📓 El diario de operaciones
Antes de realizar cualquier escritura en disco, el sistema registra en un "journal" (diario) exactamente qué va a hacer. Es un log previo a la acción.
🔌 ¿Qué pasa si se corta la luz?
Si el sistema falla en medio de una escritura, al reiniciar revisa el journal y puede completar o deshacer la operación incompleta, evitando corrupción de datos.
Comparación de filesystems
| Filesystem | Sistema Operativo | Journaling | Tamaño máx. archivo | Uso típico |
|---|---|---|---|---|
| FAT32 | Todos | ✗ No | 4 GB | USB, SD (compatibilidad) |
| exFAT | Todos | ✗ No | Sin límite práctico | USB, SD (archivos grandes) |
| NTFS | Windows | ✓ Sí | Sin límite práctico | Disco interno Windows |
| ext4 | Linux | ✓ Sí | 16 TB | Disco interno Linux |
| APFS | macOS / iOS | ✓ Sí (CoW) | Sin límite práctico | Mac, iPhone, iPad |
| Btrfs | Linux | ✓ Sí (CoW) | 16 EB | Workstations, desktops Linux |
| ZFS | Linux / BSD | ✓ Sí (CoW) | 16 EB | Servidores empresariales |
EB = exabyte (1.000.000 TB) · CoW = Copy-on-Write
Actividad de Repaso
Respondé las preguntas para comprobar lo que aprendiste. Cliqueá una opción para ver si es correcta.