USB mass storage device class

From Wikipedia, the free encyclopedia

Jump to: navigation, search

The USB mass storage device class or USB MSC or UMS is a set of computing communications protocols defined by the USB Implementers Forum that run on the Universal Serial Bus. The standard provides an interface to a variety of storage devices.

A USB flash drive like this one will typically implement the USB mass storage device class.

Some of the devices which are connected to computers via this standard are:

Devices which support this standard are referred to as MSC (Mass Storage Class) devices. While MSC is the official abbreviation, UMS (Universal Mass Storage) has become common in on-line jargon.

Contents

[edit] Operating system support

Most current mainstream operating systems include support for USB mass storage devices, although support on older systems is available through patches.

[edit] Microsoft Windows

Windows 95 OSR2.1, an update to the operating system, featured very limited support for USB. During that time, no generic USB mass storage driver was produced by Microsoft, even for Windows 98. This meant that a device-specific driver was needed for each type of USB storage device. Today, generic drivers which support USB flash drives even in Windows 98 are available as free downloads. By 2000, the problem was almost solved. Products designed for Windows Me and Windows 2000 (where a specific driver was required only for rare devices) are only fully corrected in subsequent OSes. On Windows Server 2003, however, a drive letter has to be assigned to it in order to access it. This can be done in Disk Management (under Computer Management (local) | Storage | Disk Management).

There is no native (supplied by Microsoft) support for USB in Windows NT, earlier versions of Windows, or MS-DOS, although some third-party solutions exist for each OS. A third party driver for Windows 98 and Windows 98SE is also now available. There is also a USB UMS driver for Windows NT 4.FreeDOS supports USB mass storage as ASPI devices.

Windows Mobile supports accessing most USB mass storage devices formatted with FAT on devices with USB Host, although portable devices typically cannot provide enough power for disk enclosures containing hard drives (a 2.5" hard drive typically requires the maximum 2.5 W provided by the USB specification). On the other way around, Windows Mobile devices can not show their file systems as a mass storage device unless the device implementer explicitly decides to add such functionality. However, third party applications exist to add MSC emulation to most WM devices (commercial "Softick CardExport" and free "WM5torage"). Generally only memory cards can be exported, and not internal storage memory, due to the complications outlined below.

[edit] Mac OS

Apple Computer's Mac OS 8.5.1 supports USB mass storage through an optional driver. Mac OS 9 and Mac OS X support USB mass storage natively.

[edit] Unix-like

The Linux kernel has supported USB mass storage devices via a generic driver since kernel version 2.4 (year 2001), and a backport to kernel 2.2 has also been made. Solaris also supports devices since the 2.8 release and up (year 1998), NetBSD since the 1.5 release and up (year 2000), FreeBSD since the 4.0 release and up (year 2000), and OpenBSD since the 2.7 release and up (year 2000).

[edit] AmigaOS

AmigaOS supports UMASS storage devices through Poseidon, a third-party USB stack which has become a de facto standard. It supports various USB device types through a modular system of Hardware Independent Device Driver (HIDD) classes. Poseidon as used in AmigaOS Classic up to version 4.0, and in the MorphOS operating system. The supposedly final AmigaOS version of the Poseidon stack is released OEM licensed with the Deneb USB card in May 2008. AmigaOS 4.0 has its own USB stack called Sirion, though it can still use Poseidon. A new USB stack called ANAIIS (Another Native Amiga IO Interface Stack) is available for all Amiga platforms with Highway or Subway hardware, but does not yet support UMASS.

FAT16 and FAT32 filesystems are supported by the FAT95 filesystem.

AROS, an Open Source AmigaOS clone for Intel based PCs, does support UHCI and OHCI USB root hubs (since May 2007) but does not yet support USB mass storage class.

[edit] Game consoles

The Xbox 360 and PlayStation 3 support most mass storage devices.

[edit] Graphing Calculators

Independent developers have released drivers for the TI-84 Plus and TI-84 Plus Silver Edition in order to access USB mass storage devices. usb8x contains the driver for this access, while msd8x handles the user interface.

[edit] Device access

A USB Card reader like this one, will typically implement the USB mass storage device class.

The USB mass storage specification does not require any particular file system to be used on conforming devices. Instead, it provides a simple interface to read and write sectors of data—much like the low-level interface used to access any hard drive—using the "SCSI transparent command set." Operating systems may treat the USB drive like a hard drive, and can format it with any file system they like.

Because of its ubiquity and 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 names. Large USB-based hard disks may come formatted with NTFS, which is much less supported outside Microsoft Windows. However, a keydrive or any other device may be formatted using another filesystem (for example HFS Plus on an Apple Macintosh, or Ext2 under Linux, or Unix File System under Solaris or BSD). Of course, this choice may limit other operating systems' ability to access the contents of the device.

In cameras, MP3 players, and similar gadgets which must access the file system independently from an external host, the FAT filesystem is typically preferred by device manufacturers.

[edit] Complications of the mass-storage device class

[edit] Hard drive-based devices

Many modern hard drives support additional advanced commands, such as Native Command Queuing, which may increase performance, and S.M.A.R.T., which allows a computer to measure various indicators of drive reliability. These exist as extensions to the basic low-level command sets used by hard drives, such as SCSI, SATA, or PATA.

These features do not work when hard drives are encapsulated in a disk enclosure supporting the USB mass storage interface. USB mass storage provides a generic interface which only provides basic read/write commands, as outlined above. This works perfectly well for basic data transfer using hard drive-based devices, however it means that there is no simple way to send advanced, device-specific commands to USB mass storage devices (although devices may create their own communication protocols over the USB-standard "control interface").

The new eSATA standard for external drives promises to address this issue, since it extends the internal SATA bus to external disks without any intermediate translation layer.

[edit] See also

[edit] External links

Personal tools