Sistema de archivos del dispositivo móvil: qué es, estructura de directorios y cómo funciona

Autor: IT Sectr Publicado: 2026-03-13 Tiempo de lectura: 11 min

El sistema de archivos del dispositivo móvil es la forma de organizar, almacenar y nombrar los datos en la memoria flash. Según Android Developers, 2026, los sistemas operativos móviles utilizan una estructura jerárquica de directorios donde cada aplicación funciona en un sandbox aislado. Esta arquitectura evita el acceso no autorizado a los datos y garantiza un funcionamiento estable del sistema cuando se ejecutan múltiples aplicaciones simultáneamente.

Puntos clave

  • El sistema de archivos define cómo se organizan, indexan y protegen los datos en el dispositivo
  • Android utiliza las particiones /data, /system y /sdcard con diferentes permisos de acceso y sistemas de archivos
  • iOS funciona con APFS y contenedores Sandbox, donde cada aplicación está aislada a nivel de kernel
  • EXT4 y F2FS son los principales sistemas de archivos en Android, APFS en iOS, exFAT en tarjetas SD
  • Los permisos de acceso Linux (rwx) en Android y los perfiles Sandbox en iOS controlan qué archivos puede leer y modificar una aplicación

¿Qué es el sistema de archivos de un dispositivo móvil?

El sistema de archivos es un componente software del sistema operativo que gestiona cómo se escriben, leen y organizan los datos en el soporte físico. En los dispositivos móviles, el sistema de archivos realiza funciones críticas: gestión del espacio de memoria flash, control de acceso a archivos basado en permisos, registro de cambios para recuperación tras fallos y optimización de escritura teniendo en cuenta las particularidades de la memoria flash NAND.

A diferencia de los sistemas operativos de escritorio, los sistemas de archivos móviles se diseñan teniendo en cuenta el número limitado de ciclos de reescritura de la memoria flash. Las celdas NAND soportan un número limitado de operaciones de borrado: de 3.000 a 10.000 ciclos para memorias TLC y MLC, respectivamente. Para prolongar la vida del almacenamiento, los sistemas de archivos emplean mecanismos de wear leveling (nivelación de desgaste) y comandos TRIM. F2FS, desarrollada por Samsung específicamente para memoria flash, tiene en cuenta la geometría de la matriz NAND y coloca los datos de forma que se minimice la fragmentación y el número de operaciones de borrado de bloques.

Los dispositivos móviles modernos utilizan una combinación de varios sistemas de archivos. La memoria interna (partición /data) se formatea como EXT4 o F2FS en Android y como APFS en iOS. Las tarjetas SD tradicionalmente usan exFAT para archivos de más de 4 GB o FAT32 para máxima compatibilidad. La partición /system en Android suele montarse solo lectura y utiliza EXT4 o EROFS (Enhanced Read-Only File System), un sistema de archivos comprimido desarrollado por Huawei para reducir el tamaño de la partición del sistema.

Estructura de directorios en Android

La jerarquía de directorios de Android se basa en la estructura Linux con raíz en /. Cada partición tiene su propio sistema de archivos, permisos de acceso y propósito. Una aplicación solo puede acceder a un conjunto limitado de directorios; el resto está protegido por permisos root.

RutaParticiónSistema de archivosAcceso para la app
/dataUserdataF2FS / EXT4Solo su sandbox
/systemSystemEROFS / EXT4Solo lectura (root)
/sdcardExternalexFAT / FAT32Con permiso
/cacheCacheEXT4Solo root
/vendorVendorEROFS / EXT4Solo lectura (root)

Partición /data y sandbox de aplicaciones

La partición /data es la partición principal para almacenar datos de usuario, aplicaciones instaladas y sus configuraciones. Cada aplicación recibe su propio directorio en /data/data/<package_name>/. Dentro de este directorio, el sistema crea automáticamente subdirectorios: files/ para archivos de la aplicación, cache/ para archivos temporales, databases/ para bases de datos SQLite, shared_prefs/ para SharedPreferences. Los permisos de acceso a este directorio se establecen al instalar la aplicación y no pueden modificarse sin acceso root. La partición /data se formatea como F2FS en la mayoría de dispositivos modernos, lo que proporciona hasta un 40% más de velocidad de escritura aleatoria en comparación con EXT4.

Partición /system y componentes del sistema

La partición /system contiene el sistema operativo, las aplicaciones del sistema y las bibliotecas. Esta partición se monta solo lectura para evitar la modificación accidental o malintencionada de los archivos del sistema. En dispositivos con Android 10+ y Project Treble, la partición /system es dinámica y puede actualizarse mediante paquetes OTA sin necesidad de un flasheo completo. Para las aplicaciones, la partición /system es inaccesible; cualquier intento de escritura lanza una excepción SecurityException. Sin embargo, las aplicaciones pueden leer algunos archivos de /system, como fuentes del sistema y archivos de configuración, si tienen los permisos adecuados.

Punto de montaje /sdcard

El punto de montaje /sdcard es un enlace simbólico a la partición de almacenamiento externo emulado o físico. En dispositivos sin tarjeta SD, /sdcard apunta a una subpartición dentro de /data designada para acceso compartido. Esta partición es visible para el usuario cuando el dispositivo se conecta a un ordenador mediante el protocolo MTP. Las aplicaciones acceden a /sdcard mediante los permisos READ_EXTERNAL_STORAGE y WRITE_EXTERNAL_STORAGE, y a partir de Android 10, a través de Scoped Storage con la API MediaStore. El tamaño de /sdcard suele ser del 60–80% de la memoria flash total, y el resto se reserva para la partición /data.

Estructura de directorios en iOS

En iOS, el sistema de archivos se organiza mediante contenedores Sandbox de aplicaciones. Cada aplicación recibe un directorio aislado cuyo acceso está restringido a nivel del kernel XNU. La partición de usuario utiliza APFS (Apple File System), introducida en iOS 10.3. APFS admite instantáneas, clonación de archivos y cifrado a nivel de archivo, lo que la hace óptima para dispositivos móviles.

Directorios estándar del contenedor Sandbox

Un contenedor Sandbox de iOS incluye cuatro directorios principales: Documents, Library, tmp y SystemData. Cada directorio tiene su propia política de copia de seguridad, período de retención de datos y nivel de acceso. Documents se incluye automáticamente en las copias de seguridad de iCloud e iTunes. Library contiene los subdirectorios Caches (sin respaldo), Preferences (con respaldo) y Application Support (con respaldo). El directorio tmp es para archivos temporales que iOS puede eliminar cuando el almacenamiento escasea; no se incluye en las copias de seguridad. SystemData es usado por el propio sistema y es inaccesible para las aplicaciones a través de las API estándar.

swift
let fm = FileManager.default

let documents = fm.urls(
    for: .documentDirectory,
    in: .userDomainMask
).first!

let caches = fm.urls(
    for: .cachesDirectory,
    in: .userDomainMask
).first!

let appSupport = fm.urls(
    for: .applicationSupportDirectory,
    in: .userDomainMask
).first!

Cada directorio del contenedor Sandbox tiene su propia clase de protección. iOS admite cuatro clases: Complete Protection (archivo inaccesible cuando el dispositivo está bloqueado), Protected Unless Open (archivos ya abiertos accesibles al bloquear), Protected Until First User Authentication (archivos accesibles tras el primer desbloqueo) y No Protection (archivos siempre accesibles tras el arranque). Por defecto, todos los archivos en Documents y Library reciben la clase Complete Protection, lo que garantiza la máxima protección de los datos del usuario. Al crear un archivo, se puede especificar explícitamente otra clase de protección si una aplicación en segundo plano necesita acceder a los datos mientras el dispositivo está bloqueado.

Permisos de acceso y seguridad del sistema de archivos

El control de acceso a los archivos en dispositivos móviles es una diferencia clave entre Android e iOS. Android utiliza el modelo clásico de permisos Linux (lectura, escritura, ejecución) con extensiones para el aislamiento de aplicaciones. iOS utiliza un modelo Sandbox más estricto, donde cada aplicación se ejecuta en un contenedor aislado y no tiene acceso a los archivos de otras aplicaciones sin mecanismos especiales.

Permisos en Android

En Android, cada aplicación se ejecuta con un UID (User ID) independiente. Todos los archivos creados por una aplicación en su sandbox pertenecen a este UID y son invisibles para otras aplicaciones. Para acceder a directorios compartidos (almacenamiento externo), la aplicación debe solicitar los permisos READ_EXTERNAL_STORAGE y WRITE_EXTERNAL_STORAGE. A partir de Android 11, los permisos deben solicitarse en tiempo de ejecución, y una aplicación con targetSdkVersion 30+ debe usar SAF para acceder a archivos de otras aplicaciones. La violación del modelo de permisos provoca una SecurityException, que se maneja con un bloque try-catch estándar. Google Play verifica automáticamente el cumplimiento de la política de permisos antes de la publicación.

kotlin
if (ContextCompat.checkSelfPermission(
    context,
    Manifest.permission.READ_EXTERNAL_STORAGE
) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(
        activity,
        arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),
        REQUEST_CODE
    )
}

Sandbox en iOS y Keychain

El Sandbox de iOS está implementado a nivel del kernel XNU y no permite que la aplicación salga de su contenedor. Incluso si la aplicación obtiene acceso a un URI de archivo externo a través de Document Picker, el sistema operativo crea una copia temporal en el contenedor de la aplicación en lugar de proporcionar acceso directo al original. Para compartir archivos entre aplicaciones, iOS utiliza los mecanismos Share Sheet y UIActivityViewController, que copian un archivo del contenedor de una aplicación al de otra. Para el almacenamiento seguro de credenciales (tokens, contraseñas, claves), iOS proporciona Keychain, un almacén cifrado accesible al sistema a nivel de kernel. Keychain no forma parte del contenedor Sandbox y es administrado por un demonio independiente securityd, lo que proporciona una capa adicional de protección incluso en caso de compromiso de la aplicación.

Características de los sistemas de archivos: EXT4, APFS, F2FS

La elección del sistema de archivos afecta directamente al rendimiento y la fiabilidad del almacenamiento. Cada sistema de archivos tiene su propia arquitectura, optimizaciones y limitaciones. Es útil que un desarrollador comprenda estas diferencias para predecir el comportamiento de la aplicación en diferentes dispositivos.

  • EXT4 — un sistema de archivos Linux estándar con registro por diario, que admite archivos de hasta 16 TB y volúmenes de hasta 1 EB. Se utiliza en Android como sistema principal antes de la adopción de F2FS. Proporciona fiabilidad gracias al registro, pero es inferior a F2FS en velocidad de escritura aleatoria debido a la necesidad de actualizar inodos y mapas de bits de bloques en cada operación
  • F2FS — un sistema de archivos desarrollado por Samsung en 2012 específicamente para memoria flash NAND. Tiene en cuenta la geometría de la matriz flash, utiliza una arquitectura de registro estructurado y proporciona entre un 25 y un 40% más de rendimiento de escritura aleatoria en comparación con EXT4. A partir de Android 11, Google recomienda F2FS como sistema de archivos principal para la partición /data
  • APFS — el sistema de archivos de Apple introducido en 2017. Admite instantáneas, clonación de archivos (copy-on-write), cifrado a nivel de archivo y un estricto control de integridad de datos mediante sumas de verificación. APFS está optimizado para SSD y utiliza comandos TRIM para mantener el rendimiento durante toda la vida útil del almacenamiento
  • exFAT — el sistema de archivos de Microsoft utilizado en tarjetas SD y unidades USB. Admite archivos de más de 4 GB y volúmenes de hasta 128 PB. No tiene registro por diario, por lo que un corte de energía repentino puede causar corrupción de datos. Se recomienda para medios extraíbles, pero no para particiones del sistema

Al desarrollar aplicaciones, tenga en cuenta que los diferentes sistemas de archivos tienen distintos límites de longitud de nombre de archivo (255 bytes para EXT4 y F2FS, 255 caracteres Unicode para APFS), tamaño máximo de archivo y soporte de caracteres especiales. Por ejemplo, APFS permite caracteres Unicode en los nombres de archivo, incluidos emojis, mientras que EXT4 se limita a ASCII. Si su aplicación crea archivos con nombres en diferentes idiomas, pruebe en todos los dispositivos objetivo: un nombre de archivo creado correctamente en APFS puede truncarse en EXT4.

Recomendaciones para trabajar con el sistema de archivos

El trabajo fiable con el sistema de archivos del dispositivo móvil requiere seguir varias reglas clave. Se basan en el análisis de errores típicos de desarrolladores y las recomendaciones de la documentación oficial.

  • No utilice rutas codificadas a los directorios. Obtenga siempre las rutas a través de las API del sistema: context.filesDir en Android, NSSearchPathForDirectoriesInDomains en iOS. Las rutas codificadas cambian entre versiones del SO y dispositivos
  • Maneje las excepciones de las operaciones de archivos: IOException, FileNotFoundException, SecurityException. En iOS, todas las operaciones de FileManager pueden lanzar errores; envuélvalas en do-catch. En Android, las operaciones con almacenamiento externo pueden fallar por falta de soporte
  • Verifique el espacio disponible antes de escribir. Use File.getUsableSpace() en Android y URLResourceValues.volumeAvailableCapacityKey en iOS. Advierta al usuario si el espacio libre es insuficiente
  • Evite almacenar archivos grandes en directorios que se incluyen en las copias de seguridad. En iOS, excluya la caché de la copia de seguridad mediante isExcludedFromBackup. En Android, prefiera cacheDir para archivos temporales
  • Pruebe el comportamiento ante desbordamiento de almacenamiento y corte repentino de energía. Use escritura transaccional: escriba en un archivo temporal y luego renombre atómicamente

Preste especial atención a las diferencias multiplataforma. Las rutas de archivos en Android usan barras inclinadas (/data/data/.../files/), en iOS — esquema URL (file:///var/mobile/.../Documents/). Si su aplicación utiliza un framework multiplataforma (Flutter, React Native, Kotlin Multiplatform), unifique las operaciones de archivos mediante adaptadores de plataforma. Por ejemplo, Flutter proporciona el paquete path_provider, que devuelve la ruta correcta a Documents o filesDir en ambas plataformas sin escribir código dependiente de la plataforma. Nunca concatene rutas con operaciones de cadenas; use File.join() o URL.appendingPathComponent(), que manejan correctamente los separadores en diferentes plataformas.

Preguntas frecuentes

¿Qué sistema de archivos se usa en Android por defecto?

En dispositivos Android modernos (11+) para la partición /data se utiliza F2FS. En dispositivos antiguos — EXT4. La partición /system usa EROFS o EXT4. Las tarjetas SD se formatean como exFAT o FAT32 según la capacidad.

¿En qué se diferencia APFS de EXT4?

APFS admite instantáneas, clonación de archivos, cifrado a nivel de archivo y sumas de verificación. EXT4 tiene registro por diario y una compatibilidad más amplia. APFS está optimizado para SSD, mientras que EXT4 es un sistema de archivos universal.

¿Cómo obtener la ruta al directorio documents en iOS?

Use FileManager.default.urls(for: .documentDirectory, in: .userDomainMask). El método devuelve un array de URLs, siendo el primer elemento el directorio Documents principal del contenedor Sandbox de la aplicación.

¿Qué es Scoped Storage en Android?

Scoped Storage es un modelo de acceso introducido en Android 10 que restringe el acceso directo al sistema de archivos. Las aplicaciones solo pueden leer sus propios archivos sin permiso. La API MediaStore se utiliza para acceder a archivos multimedia compartidos.

¿Qué sistema de archivos es mejor para una tarjeta SD: FAT32 o exFAT?

exFAT es preferible para tarjetas SD de más de 32 GB, ya que admite archivos de más de 4 GB. FAT32 ofrece la máxima compatibilidad con dispositivos antiguos, pero limita el tamaño del archivo a 4 GB.

Resumen

  • El sistema de archivos de un dispositivo móvil gestiona el almacenamiento, la indexación y la protección de datos en la memoria flash, teniendo en cuenta el recurso limitado de las celdas NAND
  • Android utiliza las particiones /data (F2FS/EXT4), /system (EROFS/EXT4) y /sdcard (exFAT/FAT32) con diferentes modelos de acceso
  • iOS funciona con APFS y contenedores Sandbox, donde cada aplicación está aislada a nivel del kernel XNU
  • F2FS proporciona entre un 25 y un 40% más de rendimiento de escritura aleatoria en comparación con EXT4 gracias a su arquitectura de registro estructurado
  • Los permisos en Android se basan en el modelo Linux UID, en iOS — en perfiles Sandbox con cuatro clases de protección de archivos
  • Los diferentes sistemas de archivos tienen limitaciones en la longitud de nombres, tamaño de archivos y soporte de caracteres: pruebe en todos los dispositivos objetivo
  • La escritura transaccional y la verificación del espacio disponible antes de guardar evitan la corrupción de datos durante fallos

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también