Computer Storage, Part 2 Codexery

USB mass storage device class

Protocol making USB devices accessible as external hard drives.

USB mass storage device class

The USB mass storage device class (also known as USB MSC or UMS) is a set of computing communications protocols, specifically a USB Device Class, defined by the USB Implementers Forum. It makes a USB device accessible to a host computing device and enables file transfers between the host and the USB device. To a host, the USB device acts as an external hard drive; the protocol sets interfaces with a number of storage devices.

Defined by
USB Implementers Forum
Also known as
USB MSC or UMS
First windows support
Windows 2000
First linux kernel support
Version 2.3.47 (2001, backported to kernel 2.2.18)
First solaris support
Version 2.8 (1998)
First freebsd support
Version 4.0 (2000)
First netbsd support
Version 1.5 (2000)

Lore & Background

The USB mass storage device class provides an interface to a number of industry-standard command sets, allowing a device to disclose its subclass. In practice, there is little support for specifying a command set via its subclass; most drivers only support the SCSI transparent command set, designating their subset of the SCSI command set with their SCSI Peripheral Device Type (PDT). Subclass codes specify command sets including Reduced Block Commands (RBC), SFF-8020i/MMC-2 (for ATAPI-style CD and DVD drives), QIC-157 (tape drives), Uniform Floppy Interface (UFI), SFF-8070i (for ARMD-style devices), and the SCSI transparent command set.

The specification does not require a particular file system on conforming devices. Based on the specified command set and any subset, it provides a means to read and write sectors of data. Operating systems may treat a USB mass-storage device like a hard drive; users may partition it in any format (such as MBR and GPT), and format it with any file system. Because of its relative simplicity, the most common file system on embedded devices such as USB flash drives, cameras, or digital audio players is Microsoft's FAT or FAT32 file system (with optional support for long filenames). However, USB mass storage devices may be formatted with any other file system, such as NTFS on Windows NT, HFS Plus on macOS, ext2 on Linux, or Unix File System on Solaris or BSD.

Reader's Guide

The USB mass storage device class is significant because it standardized how a wide range of devices—including external magnetic hard drives, optical drives, USB flash drives, solid-state drives, digital cameras, portable media players, card readers, PDAs, and mobile phones—connect to host computers for file transfer. Its adoption across most mainstream operating systems, from Windows 2000 onward, Linux since kernel 2.3.47, and various Unix systems, made it a universal interface for removable storage. The class's legacy includes enabling simple data exchange between devices that might otherwise be incompatible, though it also introduced security concerns: the AutoRun feature of Windows worked on all removable media, allowing USB storage devices to become a portal for computer viruses until Microsoft limited AutoRun to CD and DVD drives beginning with Windows 7. The protocol's flexibility in supporting multiple command sets and file systems, while not requiring a particular file system, allowed manufacturers to choose FAT32 for embedded devices while leaving advanced users free to use NTFS, HFS Plus, ext2, or other formats. Devices connected by a single USB port may function as multiple USB devices, one of which is a USB mass-storage device, simplifying distribution and access to drivers and documentation.

Did You Know?

More in Computer Storage, Part 2 1-24

Spotted an error? Know more?

Reader corrections go straight into our review queue. Suggest an edit · How this site is sourced

Comments

Loading…
Open in the interactive codex →