Sistemas de Archivos

Un sistema de archivos es el encargado de definir las operaciones para leer y escribir datos en una unidad de almacenamiento, además de contar con capacidades de seguridad integrada. Si no existiera este sistema de archivos, el usuario manualmente tendría que gestionar los bloques dentro del almacenamiento y cómo organizar los archivos.

¿Que son los Archivos y Directorios?

Un archivo es un contenedor de datos, ya sea en un sistema informático o en un lugar físico, que organiza y almacena información para su posterior uso. En informática, un archivo es una unidad de información nombrada, que puede contener desde documentos de texto y hojas de cálculo hasta imágenes, videos o programas de software. En un sentido más amplio, un archivo también puede referirse a un lugar donde se guardan documentos físicos, como expedientes u otros registros.

Un directorio es una lista o guía que organiza información, ya sea un conjunto de archivos en una computadora (carpeta) o datos de personas y empresas. En informática, sirve para estructurar y agrupar archivos y subdirectorios de forma jerárquica en un árbol para facilitar la localización de datos.

Sistemas de Archivos Disponibles Actualmente

Entre los distintos formatos que puede tener un sistema de archivo, cada sistema operativo puede usar uno o más dependiendo del dispositivo de almacenamiento a usar y las características del sistema operativo. El sistema de archivos permite definir reglas sobre cómo se organizan los archivos, cómo se nombran, qué permisos hay, entre otras reglas. Existen diversos sistemas de archivos disponibles en el mercado, cada uno con características definidas para una necesidad específica. Algunos priorizan la velocidad de lectura, otros la velocidad de escritura u otras consideraciones que cada organización defina para sus necesidades.

Formato Descripción Sistemas Operativos

FAT, FAT16

Sistema de archivos estrenado con MS-DOS. Permite archivos de máximo 2 GB.

MS-DOS, FreeDOS

FAT32

Evolución de FAT16. Estrenado en Windows 95. Permite archivos de máximo 4 GB. No tiene gestión de permisos. Usado en la actualidad para formatear algunos discos externos USB.

Windows 9x

NTFS

Un nuevo sistema de archivos estrenado por la familia de Windows NT (Windows 2000, Windows XP). Usado en la actualidad.

Windows NT

exFAT

Evolución de FAT32. Estrenado en Windows CE en el 2006. Permite archivos mayores a 4GB y gestión de permisos. Alternativa recomendada a FAT32 para dispositivos de almacenamiento externos.

Windows CE

EXT, EXT2, EXT3

Sistema de archivos de Linux (Pre 2006).

Linux, FreeBSD

EXT4

Evolución Retrocompatible de EXT3. Usado en la actualidad como opción recomendada para Linux.

Linux, FreeBSD

ZSF

Sistema de archivos principal de FreeBSD, compatible con EXT4

Linux, FreeBSD

BTRFS

Alternativa a EXT4 y ZSF

Linux, FreeBSD

HFS, HFS+

Sistema de archivos para sistemas Apple anteriores al 2017

OSX

APFS

Sistema de archivos principal de macOS desde el 2017

macOS

Recomendaciones

Entre todas estas opciones las siguientes son recomendadas:

  • FAT32: Recomendado para el uso en dispositivos de almacenamiento externo (USB, Memorias Flash) anteriores al 2007 o si es recomendado por el fabricante. Límite máximo 32 GB.

  • exFAT: Recomendado para el uso en dispositivos de almacenamiento externo (USB, Memorias Flash) modernos. Ya que es compatible con todos los sistemas operativos modernos.

  • NTFS: Recomendado para uso exclusivo de sistemas Windows. No es recomendado para almacenamiento externo debido a que no es compatible con otros sistemas operativos.

  • EXT4: Recomendado para uso de sistemas Linux.

  • APFS: Recomendado para uso de Sistemas Apple (2017+).

Gparted

GParted es un programa disponible para Linux y como disco booteable. Permite dar formato en los principales sistemas de archivo de Linux.

Dispositivos de Almacenamiento

A lo largo de los años se han utilizado múltiples dispositivos de almacenamiento que han evolucionado en capacidad, confiabilidad y rapidez en coordinación con los nuevos descubrimientos tecnológicos.

Cassettes

Una de las primeras formas de almacenar información digital era a través de cintas de cassette magnéticas. Los primeros computadores los utilizaban para almacenamiento de software como videojuegos. Un cassette de 90 minutos podría almacenar alrededor de 660 kilobytes por cara.

No tenía formato ya que los datos se almacenaban como audios digitales. Era de una lectura lenta debido a que se tenía que escuchar toda la cinta para leer los datos.

Diskettes

Utilizaban almacenamiento magnético en discos blandos (flexibles). En los 80’s eran populares los discos de 5 1/4 (capacidad de 1.2 mb) y en los 90s eran populares los diskettes de 3 1/2 (capacidad de 1.44mb), aunque dependiendo del modelo y marca se podía llegar a mayor capacidad.

El formato común era con FAT, FAT16 o FAT32. Tenían una capacidad y velocidad mayor al cassette ya que el rotor permitía girar a mayores revoluciones que las permitidas en una radio cassetera.

En la antigüedad los computadores rara vez venían con discos duros, debido a su alto costo, solo tenían disketeras. Normalmente tenían 2 disketeras, una para el sistema operativo y otra para leer y grabar datos.

Es por esto que los sistemas Windows nombran a sus ubicaciones A:, B: y C:. Las letras A: y B: estaban reservadas para las disketeras principales y C: para el disco duro.

CDS, DVD, Blueray

Utilizan almacenamiento óptico. Usaba el sistema de archivos ISO 9660 para los CDS y el Universal Disk Format (UDF) para DVD y Blueray. Populares en consolas de videojuegos de la década del 2000. Utilizan un sistema de archivo estandarizado ISO que permite una multitud de dispositivos ser compatibles para leer y escribir el artefacto.

  • CD: Compact Disk. Capacidad promedio de 700 mb. Usados en Playstation 1.

  • DVD: Capacidad promedio de 4 GB. Usados en Playstation 2.

  • Blueray: Capacidad promedio de 40 GB. Usados en Playstation 3.

Memoria Flash

Entran dispositivos como pendrives USB, memorias SD y algunos cartuchos de videojuegos para consolas modernas como la Nintendo Switch. Tienen una capacidad limitada de operaciones de lectura y escritura, por lo que su velocidad irá degradando con el mayor uso.

Las memorias flash son no volátiles (conservan datos sin energía), rápidas para leer y escribir, duraderas y resistentes a golpes. También son portátiles, de bajo consumo energético y silenciosas, y se pueden reescribir múltiples veces.

Discos Duro (HDD)

Utilizaban discos no flexibles (o duros) para el almacenamiento de información. Pueden ser dañados si tienen movimientos bruscos al momento de girar por la aguja utilizada para leer y escribir el disco. Su capacidad ha ido en aumento con los años, desde algunos megabytes a terabytes. Son más baratos que un SSD por que su velocidad de lectura depende de los RPM que proporcione el disco, aunque su capacidad de almacenamiento por largos periodos de tiempo es más confiable que un SSD. Además cuenta con mayor capacidad por un menor costo.

Disco Estado Sólido (SSD)

Están compuestos por memorias flash internas interconectadas, por lo que se puede considerar como una versión evolucionada de un pendrive USB. Tienen memoria flash basadas en NAND, que permite almacenar información una vez desconectado. Tampoco tienen cabezales o motores para guardar o leer los datos. Incluye un procesador integrado para leer y escribir los datos.

Esta falta de componentes mecánicos los hace muy silenciosos y requieren menor consumo energético.

Están diseñados para utilizar las mismas conexiones que un disco HDD, por lo que reemplazar componentes es relativamente sencillo y retrocompatibles.

Son más caros que un HDD y sus capacidades no son tan elevadas (Máximo 4 TB). Pero tienen una mayor velocidad de transferencia de datos.

Discos NVMe

Utilizan el protocolo NVMe (Non-Volatile Memory Express), optimizado para unidades de estado sólido (SSD) y diseñado para maximizar el rendimiento de los dispositivos flash. Mucho más rápidos que los SSD SATA por que se conectan directamente a la CPU a través de los carriles del bus PCIe, eliminando el cuello de botella de las interfaces SATA.

Los discos NVMe son ideales para tareas exigentes como gaming y edición de video, ofreciendo tiempos de carga y arranque más rápidos y menor latencia. Existen en factores de forma como M.2 y U.2. El M.2 el más común para equipos de consumo y el U.2 más frecuente en servidores y estaciones de trabajo de alto rendimiento.

Formateos

Entre las operaciones de formateo existen dos, el de bajo nivel o profundo y el de alto nivel o rápido.

Formateo de Bajo Nivel (Profundo)

Un formateo de bajo nivel es un proceso que restablece la unidad de almacenamiento a su estado de fábrica, borrando por completo todos los datos y recreando su estructura física de sectores y pistas. Se utiliza principalmente para borrar datos de forma segura, solucionar problemas graves o para preparar una unidad usada, y es más común en discos duros mecánicos antiguos que en los modernos, que ya vienen preformateados.

Este formateo requiere de mayor tiempo ya que vuelve a 0 todos los bits almacenados en memoria. Efectivamente borrará todos los datos, por lo que recuperar los datos no será posible. No es recomendable hacerlo si no se tiene la necesidad de un aseo profundo de la memoria.

Formateo de Alto Nivel (Rápido)

Un formateo de alto nivel es el proceso de crear una estructura lógica en una unidad de almacenamiento para poder guardar y organizar datos, como un disco duro. Este proceso borra la tabla de direcciones, haciendo que los archivos ya no sean accesibles, pero sin borrar físicamente los datos, por lo que a menudo se le llama "formateo rápido". Es el tipo de formateo que realizan los usuarios de forma habitual, por ejemplo, al usar la opción de formatear en su sistema operativo.

En pocas palabras, este formateo elimina el sistema de archivos y lo reemplaza por otro, más no los archivos en sí. En este formateo se pueden recuperar los archivos, aunque no estarán con los nombres adecuados o serán fáciles de encontrar utilizando programas especializados como PhotoRec.

Una vez realizado el formateo rápido y se comienza a escribir en el dispositivo, se pueden perder los archivos ya que pueden ser reemplazados sus bits. Si se quiere recuperar archivos luego de un formateo, lo ideal es utilizar la unidad lo menos posible.

Particiones

Una unidad de almacenamiento puede ser dividida en particiones físicas y lógicas. Estas particiones son independientemente del sistema de archivos (FAT, NTFS, ext3, ext4, etc.).

https://www.carm.es/edu/pub/04_2015/2_5_2_contenido.html
Figure 1. Esquema de Particiones, Carm.es

Partición Física

Una partición física es una división real y tangible de un disco duro o SSD, un componente de hardware físico que se puede asignar a una unidad de almacenamiento separada.

El volumen físico (unidad de almacenamiento) se particiona en unidades de espacio contiguas, de igual tamaño, denominadas particiones físicas. Una partición física es la unidad más pequeña de asignación de espacio de almacenamiento y es un espacio contiguo en un volumen físico.

Una partición física puede ser dividida entre Primaria y Extendida. En un disco con el gestor de arranque Master Boot Record (MBR), puede almacenar de 1 a 4 particiones físicas. Los discos GPT (Tabla de Particiones GUID), que son el estándar para sistemas UEFI (Secure Boot), pueden tener hasta 128 particiones.

Partición Primaria

La partición primaria son las divisiones primarias del disco. En un disco duro, pueden existir de una a cuatro particiones primarias o hasta tres primarias y una extendida (MBR). Depende de una tabla de particiones. Un disco duro físico completamente formateado (por ejemplo, una unidad de disco duro externa USB nueva) consiste, en realidad, en una partición primaria que ocupa todo el espacio del disco y posee un sistema de archivos. Prácticamente, cualquier sistema operativo puede detectar este tipo de particiones primarias, y asignarles una unidad, siempre y cuando el sistema operativo reconozca su formato (sistema de archivos).

La partición primaria puede ser reconocida como una partición de arranque y puede contener un sistema operativo que realice el arranque del equipo. Una de las particiones primarias se llama la partición activa y es la de arranque. El computador busca en esa partición activa el arranque del sistema. Cuando hay varios sistemas operativos instalados la partición activa tiene un pequeño programa llamado gestor de arranque que presenta un pequeño menú que permite elegir qué sistema operativo se arranca.

Partición Extendida (Secundaria)

También conocida como partición secundaria, es otro tipo de partición que actúa como una partición primaria; sirve para contener múltiples unidades lógicas en su interior. Fue ideada para romper la limitación de 4 particiones primarias en un solo disco físico. Solo puede existir una partición de este tipo por disco, y solo sirve para contener particiones lógicas. Por lo tanto, es el único tipo de partición que no soporta un sistema de archivos directamente.

Partición Lógica

Ocupa una porción de la partición extendida o la totalidad de la misma, y se ha formateado con un tipo específico de sistema de archivos (FAT32, NTFS, ext3, ext4, etc.) y se le ha asignado una unidad, así el sistema operativo reconoce las particiones lógicas o su sistema de archivos. Se pueden tener un máximo de 23 particiones lógicas en una partición extendida. Aunque algunos sistemas operativos pueden ser más restrictivos.

Permisos de Archivos

Los permisos nos indican quien tiene autorización de ejecución, lectura y escritura de archivos y carpetas. Es un tema extenso pero en general se recomienda tener los siguientes permisos:

  • 777: Peligro, este permiso da acceso total de ejecución, modificación y lectura de forma global.

  • 755: Recomendado para directorios.

  • 644: Recomendado para archivos.

Cada permiso tiene un valor numérico: lectura (4), escritura (2) y ejecución (1). Los permisos para cada grupo (propietario, grupo, otros) se suman. Por ejemplo, permisos de lectura y escritura son (4 + 2 = 6).

Ejemplo: Un permiso 755 significa:

  • Propietario: 7 (4 + 2 + 1) - lectura, escritura y ejecución.

  • Grupo: 5 (4 + 0 + 1) - lectura y ejecución.

  • Otros: 5 (4 + 0 + 1) - lectura y ejecución.

  • 7: Lectura (Read), Escritura (Write) y Ejecución (Run).

  • 6: Lectura (Read) y Escritura (Write).

  • 5: Lectura (Read) y Ejecución (Run).

  • 4: Lectura (Read).

En Linux se utiliza el comando chmod para cambiar los permisos.

Enlaces

Se recomienda estudiar para la certificación LPIC-01.

Unidades de Medida

Existen dos unidades de medida principales para obtener información del espacio disponible en una unidad de almacenamiento. Depende del sistema operativo definir cuál usar para mostrar la información al usuario.

El Prefijo del Sistema Internacional (SI) basado en valores decimales (Usando ) y el Prefijo Binario (IEC) del Estándar internacional ISO/IEC 80000-13 (Usando ).

Ejemplo: Un kilobyte (KB) y un kibibyte (KiB) no son lo mismo. Mientras que un kilobyte representa 1.000 bytes, un kibibyte (KiB) representa 1.024 bytes. El término "kibibyte" se utiliza en el contexto de los sistemas binarios, donde se utilizan múltiplos de 2 en lugar de múltiplos de 10.

Utilizar el sistema de prefijos binarios es mucho más exacto y recomendado. Sin embargo muchos fabricantes todavía usan el sistema internacional decimal para mostrar la capacidad de sus productos. Esto puede llegar a confusión ya que algunos sistemas operativos como Windows muestran una capacidad menor debido a que se utilizan mediciones distintas.

Windows muestra menos capacidad en los discos USB principalmente porque los fabricantes anuncian la capacidad en sistema decimal (1 GB = 1000 MB) mientras que Windows calcula el espacio en sistema binario (1 GB = 1024 MiB). Adicionalmente, parte del espacio se reserva para el sistema de archivos, el firmware y otras funciones del propio dispositivo.

Table 1. Prefijo Binario
Prefijo Símbolo Factor (base 2) Equivalencia en bytes

kibi

Ki

2^10

1 KiB = 1,024 bytes

mebi

Mi

2^20

1 MiB = 1,048,576 bytes

gibi

Gi

2^30

1 GiB = 1,073,741,824 bytes

tebi

Ti

2^40

1 TiB = 1,099,511,627,776 bytes

pebi

Pi

2^50

1 PiB = 1,125,899,906,842,624 bytes

exbi

Ei

2^60

1 EiB = 1,152,921,504,606,846,976 bytes

zebi

Zi

2^70

1 ZiB = 1,180,591,620,717,411,303,424 bytes

yobi

Yi

2^80

1 YiB = 1,208,925,819,614,629,174,706,176 bytes

Table 2. Prefijo SI
Prefijo Símbolo Factor (base 10) Equivalencia en bytes

kilo

k

10^3

1 kB = 1,000 bytes

mega

M

10^6

1 MB = 1,000,000 bytes

giga

G

10^9

1 GB = 1,000,000,000 bytes

tera

T

10^12

1 TB = 1,000,000,000,000 bytes

peta

P

10^15

1 PB = 1,000,000,000,000,000 bytes

exa

E

10^18

1 EB = 1,000,000,000,000,000,000 bytes

zetta

Z

10^21

1 ZB = 1,000,000,000,000,000,000,000 bytes

yotta

Y

10^24

1 YB = 1,000,000,000,000,000,000,000,000 bytes