# Clase de dispositivo de almacenamiento masivo USB

La clase de dispositivo de almacenamiento masivo USB (en inglés: USB mass storage device class cuyo acrónimo es USB MSC) es un conjunto de protocolos de comunicaciones que funciona sobre USB, definido por el USB Implementers Forum; es un estándar que proporciona una interfaz de comunicación para una variedad de dispositivos de almacenamiento.
Los dispositivos (tales como reproductores de audio digital) que soportan este estándar lo referencian oficialmente por el acrónimo “USB MSC”, aunque popularmente se lo refiere como "USB Mass Storage" o UMS, que significa “Almacenamiento Masivo USB”.
No todos los reproductores de audio digital soportan este estándar y usan Media Transfer Protocol (MTP). Otro estándar que saldrá al mercado es el USB-IF. Ambos protocolos son similares a MSC (información no siempre revelada en las especificaciones publicadas del dispositivo).

## Dispositivos que conecta

Algunos de los dispositivos que conectan a la computadora a través de este estándar son:
* Discos duros portátiles o externos.
* Dispositivos ópticos externos, incluyendo lectores y grabadoras de CD, DVD y BD.
* Memorias flash portátiles, particularmente memorias USB.
* Adaptadores puente entre tarjetas de memoria flash estándar y una conexión USB.
* Cámaras digitales.
* Reproductores de audio digital (iPod, iAudio, Creative MuVo, Samsung Yepp, SanDisk Sansa y otros).
* Reproductores multimedia.
* Lectores de tarjetas.
* Sistemas portátiles de juego (Nokia N-GAGE, Sony PSP).
* Asistentes de datos personales (PDA).
* Algunos teléfonos celulares, como Sony Ericsson K800 y Sony Ericsson K510, Nokia N73, Nokia N95, Nokia E61, Nokia N8.

## Soporte del sistema operativo

La mayoría de los sistemas operativos modernos incluyen soporte para dispositivos de almacenamiento masivo USB.
En los sistemas antiguos varía la solución disponible: agregados de terceros, "parches" o "service pack".

### Microsoft Windows

El sistema reproductivo Microsoft Windows 95 OSR 2.1 tenía, en general, un soporte USB muy limitado y Microsoft ni siquiera proporcionó un controlador de almacenamiento masivo USB para Windows 98. Esto significaba que se requería un controlador específico para cada tipo de dispositivo de almacenamiento masivo utilizado. Esta situación se solucionó (en parte) en Windows Me y Windows 2000 (donde controladores específicos eran requeridos solo para dispositivos de almacenamiento masivo más inusuales) y solo totalmente corregido en los sistemas Windows XP y Windows 2003 Server. Nótese que, en Windows 2003 Server, se necesita asignar una letra al dispositivo para poder acceder a él.
No hay soporte nativo (proporcionado por Microsoft) para USB en Windows NT, las versiones previas de Windows, o MS-DOS, aunque existen soluciones de terceros para cada sistema operativo. También hay disponible un controlador de almacenamiento masivo para Windows 98 Segunda Edición, proporcionado por terceros.
Windows Mobile soporta el acceso de la mayoría de dispositivos de almacenamiento masivo USB formateados con FAT en dispositivos con USB Host, aunque los dispositivos portátiles normalmente no proporcionan suficiente energía para discos duros portátiles (un disco duro de 2.5 pulgadas normalmente requiere 2.5 W el máximo proporcionado por la especificación USB). Por otro lado, los dispositivos Windows Mobile no pueden mostrar sus sistemas de archivo como dispositivos de almacenamiento masivo a menos que el fabricante decida añadir tal funcionalidad. Sin embargo, existen aplicaciones de terceros para añadir emulación MSC a la mayoría de los dispositivos WM (producto comercial "Softick CardExport" y libre "WM5torage"). Generalmente solo se pueden exportar las tarjetas de memoria, y no la memoria interna, debido a complicaciones que se detallan más abajo.

### Mac OS

Apple Inc. Mac OS soporta almacenamiento masivo USB como dispositivos opcionales desde la versión OS 8.5.1, y OS 9 y Mac OS X soporta almacenamiento masivo USB de forma nativa.

### Unix-like

El núcleo Linux soporta dispositivos de almacenamiento masivo USB a través de un controlador (módulo usb-storage) desde la versión 2.4; la versión del núcleo 2.2 también ha sido parcheada para soportarlo.
Solaris soporta dispositivos de almacenamiento UMASS desde la versión 2.8.
NetBSD soporta dispositivos de almacenamiento UMASS desde la versión 1.5.
FreeBSD soporta dispositivos de almacenamiento UMASS desde la versión 4.0.

### Videoconsolas

Las videoconsolas Xbox 360, PlayStation 3, 4 y 5 son compatibles con dispositivos de almacenamiento masivo, pero a la fecha enero de 2021 se espera que Nintendo libere el software que permita a Wii usar memorias flash USB en un futuro cercano.

### Dispositivos basados en flash

Los sistemas de archivo de disco no fueron ideados para memorias flash. Temas específicos de flash como el número limitado de escrituras por célula pueden suceder en sistemas de archivos con escritura frecuente, haciendo que los fabricantes reserven el 5 por ciento de la capacidad del medio para wear leveling. Por otro lado, temas como la fragmentación que afecta al rendimiento de los discos magnéticos son irrelevantes en flash, porque no tienen tiempos de espera apreciables de Entrada/Salida. Sin embargo, la fragmentación puede reducir el rendimiento en sistemas de archivos que utilizan Extent.

### Dispositivos basados en disco duro

Los discos duros modernos disponen de prestaciones avanzadas adicionales, tales como Native Command Queueing, que incrementa el rendimiento, y S.M.A.R.T., que permite al ordenador monitorizar varios indicadores de funcionamiento del disco. Estas existen como extensiones al conjunto de comandos básicos de bajo nivel usado por discos duros, tales como SCSI, SATA, o PATA.
Estas características no funcionan cuando los discos duros se encapsulan como Disco duro portátil soportando la interfaz de almacenamiento masivo USB. El almacenamiento masivo USB proporciona una interfaz genérica que sólo proporciona comandos básicos de lectura/escritura. Esto funciona perfectamente para transferencias de datos básicas, sin embargo significa que no hay forma de enviar comandos avanzados específicos del dispositivo a dispositivos de almacenamiento masivo.
El nuevo estándar eSATA para unidades externas promete solucionar este tema ya que amplía el uso del bus SATA interno a discos externos sin ninguna capa de traducción intermedia.

## Acceso al dispositivo

La especificación de almacenamiento masivo USB no exige un sistema de archivos particular. En cambio, proporciona una interfaz simple para leer y escribir sectores de datos—como una interfaz de bajo nivel utilizada para acceder a cualquier disco duro—usando el "conjunto de comandos transparentes SCSI". Los sistemas operativos pueden tratar el dispositivo USB como un disco duro, y pueden formatearlo con el sistema de archivos que se desee.
Debido a su relativa simplicidad, la mayoría de los sistemas de archivo en sistemas embebidos tales como memorias USB, cámaras, o reproductores de audio digital son FAT o FAT32 de Microsoft con soporte opcional para nombres largos de archivo. Los discos duros de gran tamaño basados en USB pueden venir formateados con NTFS, el cual está menos soportado fuera de Microsoft Windows. Sin embargo, una memoria USB o cualquier otro dispositivo puede ser formateado usando cualquier otro sistema de archivos (por ejemplo HFS+ en un Apple Macintosh, o ext2 bajo Linux, o UFS bajo Solaris o BSD). Por supuesto, esta elección puede limitar el acceso a los contenidos del dispositivo por parte de otros sistemas operativos.
En cámaras, reproductores de MP3 y dispositivos similares que deben acceder al sistema de archivos internamente, el sistema de archivos FAT es el preferido por los fabricantes. Alterar el sistema de archivos en esos dispositivos puede no ser una buena idea: el dispositivo dejará de funcionar, probablemente.

## Complicaciones

La interfaz de almacenamiento masivo es una opción atractiva para muchos dispositivos, como cámaras y reproductores multimedia que no tienen mucha más funcionalidad que la de ser repositorios de datos. Presentándose a sí mismos como simples almacenadores de datos, estos dispositivos pueden influenciar el alto nivel de soporte de la clase de dispositivos de almacenamiento masivo USB en los controladores USB de los sistemas operativos actuales para permitir leer y escribir de forma sencilla sus memorias internas. La desventaja de hacer esto es que evita que los dispositivos muestren un comportamiento funcional real a través de la interfaz USB. Por ejemplo, a los fabricantes de cámaras digitales les gustaría también implementar PTP, para que puedan ser controladas a través de una aplicación de captura de imágenes.
Algunas cámaras digitales USB incorporan un botón u opción para que alternativamente aparezcan como dispositivo de almacenamiento masivo o como dispositivos de imagen (PictBridge o PTP), pero no pueden ser las dos cosas al mismo tiempo. Se espera que, a medida que el desarrollo de los chips controladores de USB avancen, esta limitación desaparezca; por ejemplo, una cámara podría aparecer como un hub USB con un dispositivo de almacenamiento masivo y un dispositivo de imágenes conectados a él.