Articulo de referencia

Clase de dispositivo de almacenamiento masivo USB

Las unidades flash USB suelen implementar la clase de dispositivo de almacenamiento masivo USB. La clase de dispositivo de almacenamiento masivo USB (también conocida como USB M...

Una memoria USB y su tapa, junto a una regla de 100 milímetros para comparar el tamaño.
Las unidades flash USB suelen implementar la clase de dispositivo de almacenamiento masivo USB.

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 permite que un dispositivo USB sea accesible a un dispositivo informático anfitrión y posibilita la transferencia 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 protocolo establece interfaces con varios dispositivos de almacenamiento.

Usos

Una cámara de acción a la que se accede a través de un dispositivo de almacenamiento masivo de clase

Los dispositivos conectados a ordenadores mediante 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, UMS (Universal Mass Storage) también se ha vuelto de uso común.

Soporte del sistema operativo

La mayoría de los sistemas operativos más populares incluyen compatibilidad con dispositivos de almacenamiento masivo USB; en sistemas más antiguos, la compatibilidad suele estar disponible mediante parches.

Microsoft Windows

Microsoft Windows ha sido compatible con MSC desde Windows 2000. No existe compatibilidad con USB proporcionada por Microsoft en Windows anterior a Windows 95 y Windows NT 4.0 . Windows 95 OSR2.1, una actualización del sistema operativo, presentaba compatibilidad limitada con USB. Durante ese tiempo, Microsoft no produjo ningún controlador genérico para almacenamiento masivo USB (ni siquiera para Windows 98 ), y se necesitaba un controlador específico para cada tipo de dispositivo de almacenamiento USB. Posteriormente, se pusieron a disposición controladores gratuitos de terceros para Windows 98 y Windows 98SE, y también existen controladores de terceros para Windows NT 4.0. Windows 2000 es compatible (mediante un controlador genérico) con dispositivos de almacenamiento masivo USB estándar; Windows Me y todas las versiones posteriores de Windows también incluyen compatibilidad.

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 especificado por 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 fabricante del dispositivo añada esa funcionalidad. Sin embargo, existen aplicaciones de terceros que añaden emulación MSC a la mayoría de los dispositivos WM (Softick CardExport comercial y WM5torage gratuito). Generalmente, solo se pueden exportar las tarjetas de memoria (no la memoria de almacenamiento interno) debido a problemas con el sistema de archivos; consulte Acceso al dispositivo , más abajo.  

La función AutoRun 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 virus informáticos . A partir de Windows 7 , Microsoft limitó AutoRun a las unidades de CD y DVD, actualizando versiones anteriores de Windows. [ 1 ]

MS-DOS

Ni MS-DOS ni la mayoría de los sistemas operativos compatibles incluían soporte para USB. Existen controladores genéricos de terceros, como Duse, USBASPI y DOSUSB, que permiten el uso de dispositivos de almacenamiento masivo USB. FreeDOS admite el almacenamiento masivo USB mediante una interfaz de programación SCSI avanzada (ASPI).

Mac OS clásico y macOS

Mac OS 9 y macOS de Apple admiten almacenamiento masivo USB; Mac OS 8.6 admitía almacenamiento masivo USB a través de un controlador opcional. [ 2 ]

Linux

El kernel de Linux ha sido compatible con dispositivos de almacenamiento masivo USB desde la versión 2.3.47 [ 3 ] (2001, retroportado al kernel 2.2.18 [ 4 ] ). Esta compatibilidad incluye peculiaridades y soluciones alternativas para errores de silicio/firmware, así como funcionalidad adicional para dispositivos y controladores (funciones habilitadas por el fabricante, como el paso de comandos ATA para puentes ATA-USB, utilizado para SMART o monitorización de temperatura, control del arranque y apagado de discos duros y otras opciones). Los dispositivos móviles que ejecutan Android 6 o superior [ 5 ] también son compatibles con el almacenamiento masivo USB a través de USB de doble función en puertos USB-C y USB-OTG en puertos más antiguos.

Solaris ha sido compatible con 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 sido compatible con dispositivos USB y de almacenamiento masivo USB desde su versión 4.0E (1998). AIX ha sido compatible con dispositivos de almacenamiento masivo USB desde sus versiones 5.3 T9 y 6.1 T3; sin embargo, no cuenta con un buen soporte y carece de características como el particionamiento y el bloqueo general. [ 6 ]

Consolas de videojuegos y dispositivos integrados

La Xbox 360 y la PlayStation 3 admiten la mayoría de los dispositivos de almacenamiento masivo para la transferencia de datos multimedia como imágenes y música. En abril de 2010, la Xbox 360 (a) utilizaba un dispositivo de almacenamiento masivo para guardar partidas [ 7 ] y la PS3 permitía transferencias entre dispositivos en un dispositivo de almacenamiento masivo. 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. [ 8 ] En estas calculadoras, el controlador usb8x admite la aplicación de interfaz de usuario msd8x .

Acceso al dispositivo

Una caja pequeña, delgada y gris, con una tarjeta de datos insertada en una ranura inferior.
Los lectores de tarjetas USB suelen implementar la clase de dispositivo de almacenamiento masivo USB.

La especificación de almacenamiento masivo USB proporciona una interfaz para varios conjuntos de comandos estándar de la industria, lo que permite que un dispositivo revele su subclase. En la práctica, existe 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 transparente 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:

  1. Comandos de Bloque Reducido (RBC)
  2. SFF -8020i, MMC -2 (utilizado por unidades de CD y DVD de estilo ATAPI)
  3. QIC -157 (unidades de cinta)
  4. Interfaz uniforme de disquetes (UFI)
  5. SFF-8070i (utilizado por dispositivos de estilo ARMD)
  6. Conjunto de comandos transparentes SCSI (use "inquiry" para obtener el PDT)

La especificación no exige un sistema de archivos específico en los dispositivos compatibles. Basándose en el conjunto de comandos especificado y cualquier subconjunto, proporciona un método 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 del dispositivo por parte de equipos que utilicen un sistema operativo diferente. Las opciones de almacenamiento que dependen del sistema operativo incluyen LVM , tablas de partición y cifrado de software.

En cámaras, reproductores de 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 del sistema operativo host para evitar la corrupción del sistema de archivos u otros daños (aunque teóricamente es posible que ambos dispositivos utilicen el modo de solo lectura o un sistema de archivos en clúster ). Algunos dispositivos cuentan con un interruptor (u opción) de protección contra escritura que permite su uso en modo de solo lectura.

Los fabricantes de dispositivos preformateados utilizan dos esquemas de particionamiento principales. Uno coloca el sistema de archivos (generalmente FAT32) directamente en el dispositivo sin particionamiento, lo que hace que comience desde el sector 0 sin sectores de arranque, encabezados ni 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 a una potencia alta de dos de los sectores (como 1 o 2  MB), común en unidades de estado sólido para mejorar el rendimiento y la durabilidad. Algunos dispositivos con almacenamiento integrado similar a un dispositivo de almacenamiento masivo USB (como reproductores de MP3 con puerto USB) informarán de un sistema de archivos dañado (o faltante) si se reformatean con un sistema de archivos diferente. Sin embargo, la mayoría de los dispositivos con particionamiento predeterminado se pueden reparticionar (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 múltiples dispositivos USB, uno de los cuales es un dispositivo de almacenamiento masivo USB. Esto simplifica la distribución y el acceso a controladores y documentación, principalmente para los sistemas operativos Microsoft Windows y Mac OS X. Dichos controladores son necesarios para aprovechar al máximo el dispositivo, generalmente porque no se ajusta a una clase USB estándar o tiene funcionalidades adicionales. Un dispositivo de almacenamiento masivo USB integrado permite instalar controladores adicionales sin discos CD-ROM, disquetes ni acceso a Internet a la página web del fabricante; esto es importante, ya que muchos sistemas modernos se suministran sin unidades ópticas ni de disquete. El acceso a Internet puede no estar disponible porque el dispositivo proporciona acceso a la red (inalámbrico, GSM o tarjetas Ethernet). El fabricante suele configurar el almacenamiento masivo USB integrado como de solo lectura permanentemente, lo que evita la corrupción accidental y su 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 garantía de la portabilidad de los controladores.

Diseño

Algunos comandos avanzados para discos duros , 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 del disco) y SMART (que permite acceder a indicadores de fiabilidad del disco), existen como extensiones de conjuntos de comandos de bajo nivel como SCSI , ATA y ATAPI . Es posible que estas funciones no funcionen cuando los discos se colocan en una carcasa que admite una interfaz de almacenamiento masivo USB. Algunas interfaces de almacenamiento masivo USB son genéricas y proporcionan comandos básicos de lectura y escritura; si bien esto funciona bien para transferencias de datos básicas con dispositivos que contienen discos duros, no existe una forma sencilla de enviar comandos avanzados y 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, incluyendo la cola de comandos, las tuberías de comandos para el hardware que las requiere y la administración de energía.

Ciertos conjuntos de chips USB  2.0 tenían métodos propietarios para lograr el paso directo de SCSI, que podían usarse para leer datos SMART de unidades usando herramientas como smartctl (usando la opción -d seguida de "chipset"). [ 9 ] Los conjuntos de chips 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). [ 10 ] El uso de comandos esotéricos de paso directo de ATA o SCSI (como el borrado seguro o la 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 . [ 11 ]

Véase también

Referencias

  1. "Cambios en Windows para adaptarse a los cambios en el panorama de amenazas" . Blogs de TechNet. 28 de abril de 2009. Consultado el 7 de noviembre de 2012 .
  2. "Almacenamiento masivo USB 1.3.5 - Repositorio Macintosh" . www.macintoshrepository.org . Consultado el 27 de noviembre de 2024 .
  3. "usb-storage.c - drivers/usb/usb-storage.c - Código fuente de Linux 2.3.47pre8 - Bootlin Elixir Cross Referencer" . elixir.bootlin.com . Consultado el 27 de noviembre de 2024 .
  4. "usb-storage.c - drivers/usb/usb-storage.c - Código fuente de Linux 2.2.18pre2 - Bootlin Elixir Cross Referencer" . elixir.bootlin.com . Consultado el 27 de noviembre de 2024 .
  5. "Almacenamiento tradicional | Proyecto de código abierto de Android" . source.android.com . sec. Compatibilidad con medios USB . Consultado el 27/11/2024 .
  6. "eserver: CÓMO: JFS2 en dispositivo USB en AIX 5.3.11.1" . Eserver.livejournal.com . 21/01/2010. Archivado del original el 31/03/2012 . Consultado el 07/11/2012 .
  7. "Major Nelson de Xbox Live » Compatibilidad con memoria USB para Xbox 360 disponible el 6 de abril" . Majornelson.com . 26 de marzo de 2010. Consultado el 7 de noviembre de 2012 . 
  8. "83Plus:Software:usb8x/Asm Interface/MSD" . WikiTI. 18 de febrero de 2009. Consultado el 7 de noviembre de 2012 .
  9. "#25 (¿Paso directo de SCSI para SMART a través de USB en MacOSX smartmontools? ¡Código de terceros disponible!) – smartmontools" . Sourceforge.net . Consultado el 21/01/2014 .
  10. "USB smartmontools" . Sourceforge.net . Archivado del original el 7 de febrero de 2012. Consultado el 21 de enero de 2014 .
  11. "ATA Secure Erase - ata Wiki" . Ata.wiki.kernel.org . 22-07-2013 . Consultado el 21-01-2014 .

Lecturas adicionales

Del sitio web del USB Implementers Forum:

  • Descripción general de las especificaciones de la clase de almacenamiento masivo 1.4
  • Especificación de arranque de almacenamiento masivo 1.0
  • "Almacenamiento masivo a granel únicamente 1.0"
  • Código fuente del dispositivo de almacenamiento masivo USB en FreeBSD
  • ¿Qué sucede realmente cuando conectas un dispositivo USB? Componentes internos del kernel de Linux