La clase de dispositivo de almacenamiento masivo USB (también conocida como USB MSC o UMS ) es un conjunto de protocolos de comunicación informática , específicamente una clase de dispositivo USB , definida por el USB Implementers Forum que hace que un dispositivo USB sea accesible a un dispositivo informático anfitrión y permite transferencias de archivos entre el anfitrión y el dispositivo USB. Para un anfitrión, el dispositivo USB actúa como un disco duro externo; el conjunto de protocolos interactúa con varios dispositivos de almacenamiento.
Los dispositivos conectados a las computadoras a través de este estándar incluyen:
Los dispositivos que admiten este estándar se conocen como dispositivos MSC (Mass Storage Class). Si bien MSC es la abreviatura original, también se ha generalizado el uso de UMS (Universal Mass Storage).
La mayoría de los sistemas operativos convencionales incluyen soporte para dispositivos de almacenamiento masivo USB; el soporte en sistemas más antiguos suele estar disponible a través de parches.
Microsoft Windows ha soportado MSC desde Windows 2000. No hay soporte para USB proporcionado por Microsoft en Windows antes de Windows 95 y Windows NT 4.0 . Windows 95 OSR2.1, una actualización del sistema operativo, incluyó soporte limitado para USB. Durante ese tiempo, Microsoft no produjo ningún controlador genérico de almacenamiento masivo USB (incluido para Windows 98 ), y se necesitaba un controlador específico para cada tipo de dispositivo de almacenamiento USB. Los controladores de terceros, freeware, estuvieron disponibles para Windows 98 y Windows 98SE, y también hay controladores de terceros disponibles para Windows NT 4.0. Windows 2000 tiene soporte (a través de un controlador genérico) para dispositivos de almacenamiento masivo USB estándar; Windows Me y todas las versiones posteriores de Windows también incluyen soporte.
Windows Mobile admite el acceso a la mayoría de los dispositivos de almacenamiento masivo USB formateados con FAT en dispositivos con USB Host. Sin embargo, los dispositivos portátiles normalmente no pueden proporcionar suficiente energía para las carcasas de discos duros (un disco duro de 2,5 pulgadas (64 mm) normalmente requiere el máximo de 2,5 W en la especificación USB) sin un concentrador USB autoalimentado . Un dispositivo Windows Mobile no puede mostrar su sistema de archivos como un dispositivo de almacenamiento masivo a menos que el implementador del dispositivo agregue esa funcionalidad. Sin embargo, las aplicaciones de terceros agregan emulación MSC a la mayoría de los dispositivos WM (Softick CardExport comercial y WM5torage gratuito). Por lo general, solo se pueden exportar tarjetas de memoria (no memoria de almacenamiento interno), debido a problemas con los sistemas de archivos; consulte el acceso al dispositivo, a continuación.
La función de ejecución automática de Windows funcionaba en todos los medios extraíbles, lo que permitía que los dispositivos de almacenamiento USB se convirtieran en un portal para los virus informáticos . A partir de Windows 7 , Microsoft limitó la ejecución automática a las unidades de CD y DVD, actualizando las versiones anteriores de Windows. [1]
Ni MS-DOS ni la mayoría de los sistemas operativos compatibles incluían compatibilidad con USB. Existen controladores genéricos de terceros, como Duse, USBASPI y DOSUSB, que admiten dispositivos de almacenamiento masivo USB. FreeDOS admite el almacenamiento masivo USB como una interfaz ASPI ( Advanced SCSI Programming Interface ).
Mac OS 9 y macOS de Apple Computer admiten almacenamiento masivo USB; Mac OS 8.5.1 admitía almacenamiento masivo USB a través de un controlador opcional.
El núcleo Linux ha soportado dispositivos de almacenamiento masivo USB desde su serie 2.4 (2001), y se ha realizado una adaptación al núcleo 2.2.18 [2] . En Linux, existen más características además de los controladores genéricos para dispositivos de clase de dispositivo de almacenamiento masivo USB, incluyendo peculiaridades, correcciones de errores y funcionalidad adicional para dispositivos y controladores (funciones habilitadas por el proveedor como el paso de comandos ATA para puentes ATA-USB, que es útil para SMART o monitoreo de temperatura, control de la activación y desactivación de unidades de disco duro y otras opciones). Esto incluye una cierta porción de dispositivos basados en Android , a través del soporte de USB-OTG , ya que Android usa el núcleo Linux. [ cita requerida ]
Solaris ha soportado dispositivos desde su versión 2.8 (1998), NetBSD desde su versión 1.5 (2000), FreeBSD desde su versión 4.0 (2000) y OpenBSD desde su versión 2.7 (2000). Digital UNIX (más tarde conocido como Tru64 UNIX ), ha soportado dispositivos USB y de almacenamiento masivo USB desde su versión 4.0E (1998). AIX ha soportado dispositivos de almacenamiento masivo USB desde sus versiones 5.3 T9 y 6.1 T3; sin embargo, no está bien soportado y carece de características como particionamiento y bloqueo general. [3]
La Xbox 360 y la PlayStation 3 admiten la mayoría de los dispositivos de almacenamiento masivo para la transferencia de datos de medios como imágenes y música. A partir de abril de 2010, la Xbox 360 (a) utilizaba un dispositivo de almacenamiento masivo para juegos guardados [4] y la PS3 permitía transferencias entre dispositivos en un dispositivo de almacenamiento masivo. Los desarrolladores independientes han publicado controladores para la TI-84 Plus y la TI-84 Plus Silver Edition para acceder a dispositivos de almacenamiento masivo USB. [5] En estas calculadoras, el controlador usb8x admite la aplicación de interfaz de usuario msd8x.
La especificación de almacenamiento masivo USB proporciona una interfaz para una serie de conjuntos de comandos estándar de la industria, lo que permite que un dispositivo revele su subclase. En la práctica, hay poco soporte para especificar un conjunto de comandos a través de su subclase; la mayoría de los controladores solo admiten el conjunto de comandos transparentes SCSI , designando su subconjunto del conjunto de comandos SCSI con su tipo de dispositivo periférico SCSI (PDT). Los códigos de subclase especifican los siguientes conjuntos de comandos:
La especificación no requiere un sistema de archivos en particular en los dispositivos que la cumplen. Según el conjunto de comandos especificado y cualquier subconjunto, proporciona un medio para leer y escribir sectores de datos (similar a la interfaz de bajo nivel utilizada para acceder a un disco duro ). Los sistemas operativos pueden tratar un dispositivo de almacenamiento masivo USB como un disco duro; los usuarios pueden particionarlo en cualquier formato (como MBR y GPT) y formatearlo con cualquier sistema de archivos.
Debido a su relativa simplicidad, el sistema de archivos más común en dispositivos integrados como unidades flash USB , cámaras o reproductores de audio digital es el sistema de archivos FAT o FAT32 de Microsoft (con soporte opcional para nombres de archivo largos ). Sin embargo, los dispositivos de almacenamiento masivo USB pueden formatearse con cualquier otro sistema de archivos, como NTFS en Windows NT, HFS Plus en macOS , Ext2 en Linux o Unix File System en Solaris o BSD). Esta elección puede limitar (o impedir) el acceso al contenido de un dispositivo por parte de equipos que utilicen un sistema operativo diferente. Las opciones de almacenamiento que dependen del sistema operativo incluyen LVM , tablas de particiones y cifrado de software.
En cámaras, reproductores MP3 y dispositivos similares que deben acceder a un sistema de archivos independiente de un host externo, los fabricantes prefieren el sistema de archivos FAT32. Todos estos dispositivos detienen su sistema de archivos ( desmontan ) antes de ponerlo a disposición de un sistema operativo host para evitar la corrupción del sistema de archivos u otros daños (aunque en teoría es posible que ambos dispositivos utilicen el modo de solo lectura o un sistema de archivos en clúster ). Algunos dispositivos tienen un interruptor de protección contra escritura (u opción) que les permite usarse en modo de solo lectura.
Los proveedores de dispositivos preformateados utilizan dos esquemas de particionamiento principales. Uno coloca el sistema de archivos (normalmente FAT32) directamente en el dispositivo sin particionarlo, lo que hace que comience desde el sector 0 sin sectores de arranque, encabezados o particiones adicionales. El otro utiliza una tabla de particiones DOS (y código MBR), con una partición que abarca todo el dispositivo. Esta partición suele estar alineada con una potencia alta de dos de los sectores (como 1 o 2 MB), algo habitual en las unidades de estado sólido por motivos de rendimiento y durabilidad. Algunos dispositivos con almacenamiento integrado que se asemejan a un dispositivo de almacenamiento masivo USB (como reproductores de MP3 con un puerto USB) informarán de que el sistema de archivos está dañado (o falta) si se reformatean con un sistema de archivos diferente. Sin embargo, la mayoría de los dispositivos con particiones predeterminadas se pueden volver a particionar (reduciendo la primera partición y el sistema de archivos) con particiones adicionales. Dichos dispositivos utilizarán la primera partición para sus propias operaciones; después de conectarse al sistema host, todas las particiones estarán disponibles.
Los dispositivos conectados mediante un único puerto USB pueden funcionar como varios dispositivos USB, uno de los cuales es un dispositivo de almacenamiento masivo USB. Esto simplifica la distribución y el acceso a los controladores y la documentación, principalmente para los sistemas operativos Microsoft Windows y Mac OS X. Estos controladores son necesarios para hacer un uso completo del dispositivo, normalmente porque no se ajusta a una clase USB estándar o tiene una funcionalidad adicional. Un dispositivo de almacenamiento masivo USB integrado permite instalar controladores adicionales sin discos CD-ROM, disquetes o acceso a Internet al sitio web de un proveedor; esto es importante, ya que muchos sistemas modernos se suministran sin unidades ópticas o de disquetes. El acceso a Internet puede no estar disponible porque el dispositivo proporciona acceso a la red (tarjetas inalámbricas, GSM o Ethernet). El proveedor suele configurar el almacenamiento masivo USB integrado como de solo lectura de forma permanente, lo que evita la corrupción accidental y el uso para otros fines (aunque puede actualizarse con protocolos propietarios al realizar una actualización de firmware). Las ventajas de este método de distribución son un menor coste, una instalación simplificada y la portabilidad de los controladores.
Algunos comandos avanzados de la unidad de disco duro , como Tagged Command Queuing y Native Command Queuing (que pueden aumentar el rendimiento), ATA Secure Erase (que permite borrar de forma segura todos los datos de la unidad) y SMART (que permite acceder a los indicadores de fiabilidad de la unidad) existen como extensiones de conjuntos de comandos de unidad de bajo nivel como SCSI , ATA y ATAPI . Estas funciones pueden no funcionar cuando las unidades se colocan en un compartimento de disco que admita una interfaz de almacenamiento masivo USB. Algunas interfaces de almacenamiento masivo USB son genéricas y proporcionan comandos básicos de lectura y escritura; aunque eso funciona bien para transferencias de datos básicas con dispositivos que contienen discos duros, no hay una forma sencilla de enviar comandos avanzados específicos del dispositivo a dichos dispositivos de almacenamiento masivo USB (aunque los dispositivos pueden crear sus propios protocolos de comunicación a través de una interfaz de control USB estándar). El protocolo USB Attached SCSI (UAS), introducido en USB 3.0, soluciona varios de estos problemas, incluidos la cola de comandos, las tuberías de comandos para el hardware que los requiere y la gestión de energía.
Los chipsets USB 2.0 específicos tenían métodos propietarios para lograr el paso a través de SCSI, que se podían usar para leer datos SMART de unidades usando herramientas como smartctl (usando la opción -d seguida de "chipset"). [6] Los chipsets de almacenamiento USB más recientes admiten la traducción SCSI / ATA (SAT) como un protocolo genérico para interactuar con dispositivos ATA (y SATA). [7] El uso de comandos esotéricos de paso a través de ATA o SCSI (como borrado seguro o protección con contraseña) cuando una unidad está conectada a través de un puente USB puede causar fallas en la unidad, especialmente con la utilidad hdparm . [8]
Desde el sitio web del Foro de Implementadores USB: