Класс USB-устройств массового хранения данных (также известный как USB MSC или UMS ) — это набор протоколов вычислительной связи , в частности, класс USB-устройств , определенный Форумом разработчиков USB , который делает USB- устройство доступным для вычислительного устройства хоста и позволяет передавать файлы между хостом и USB-устройством. Для хоста USB-устройство действует как внешний жесткий диск; набор протоколов взаимодействует с рядом устройств хранения данных.
Устройства, подключаемые к компьютерам через этот стандарт, включают в себя:
Устройства, поддерживающие этот стандарт, известны как устройства MSC (Mass Storage Class). Хотя MSC — это изначальное сокращение, UMS (Universal Mass Storage) также вошло в обиход.
Большинство основных операционных систем поддерживают USB-накопители; поддержка в старых системах обычно доступна через исправления.
Microsoft Windows поддерживает MSC с Windows 2000. В Windows до Windows 95 и Windows NT 4.0 поддержка USB не предоставлялась Microsoft . Windows 95 OSR2.1, обновление операционной системы, имело ограниченную поддержку USB. В то время Microsoft не выпускала универсальных драйверов USB-накопителей (включая Windows 98 ), и для каждого типа USB-накопителя требовался драйвер, специфичный для конкретного устройства. Для Windows 98 и Windows 98SE стали доступны сторонние бесплатные драйверы, а для Windows NT 4.0 также доступны сторонние драйверы. Windows 2000 поддерживает (через универсальный драйвер) стандартные USB-накопители; Windows Me и все более поздние версии Windows также включают поддержку.
Windows Mobile поддерживает доступ к большинству USB-накопителей, отформатированных в FAT на устройствах с USB-хостом. Однако портативные устройства обычно не могут обеспечить достаточное питание для корпусов жестких дисков (для 2,5-дюймового (64 мм) жесткого диска обычно требуется максимум 2,5 Вт в спецификации USB) без автономного USB-концентратора . Устройство Windows Mobile не может отображать свою файловую систему как устройство массового хранения, если разработчик устройства не добавит эту функциональность. Однако сторонние приложения добавляют эмуляцию MSC к большинству устройств WM (коммерческий Softick CardExport и бесплатный WM5torage). Обычно можно экспортировать только карты памяти (не внутреннюю память) из-за проблем с файловыми системами; см. доступ к устройству ниже.
Функция AutoRun в Windows работала на всех съемных носителях, позволяя USB-накопителям стать порталом для компьютерных вирусов . Начиная с Windows 7 , Microsoft ограничила AutoRun CD- и DVD-приводами, обновив предыдущие версии Windows. [1]
Ни MS-DOS , ни большинство совместимых операционных систем не поддерживают USB. Для поддержки USB-накопителей доступны сторонние универсальные драйверы, такие как Duse, USBASPI и DOSUSB. FreeDOS поддерживает USB-накопители как интерфейс Advanced SCSI Programming Interface (ASPI).
Mac OS 9 и macOS от Apple Computer поддерживают USB-накопители; Mac OS 8.5.1 поддерживает USB-накопители через дополнительный драйвер.
Ядро Linux поддерживает USB-накопители начиная с версии 2.4 (2001), и был сделан обратный порт на ядро 2.2.18 [2] . В Linux существует больше функций в дополнение к общим драйверам для USB-накопителей, включая причуды, исправления ошибок и дополнительные функции для устройств и контроллеров (функции, поддерживаемые поставщиком, такие как передача команд ATA для мостов ATA-USB, что полезно для SMART или мониторинга температуры, управления раскруткой и остановкой жестких дисков и других опций). Это включает в себя определенную часть устройств на базе Android , через поддержку USB-OTG , поскольку Android использует ядро Linux. [ необходима цитата ]
Solaris поддерживает устройства с версии 2.8 (1998), NetBSD с версии 1.5 (2000), FreeBSD с версии 4.0 (2000) и OpenBSD с версии 2.7 (2000). Digital UNIX (позже известный как Tru64 UNIX ) поддерживает USB и USB-накопители с версии 4.0E (1998). AIX поддерживает USB-накопители с версий 5.3 T9 и 6.1 T3; однако, он не очень хорошо поддерживается и не имеет таких функций, как разбиение на разделы и общая блокировка. [3]
Xbox 360 и PlayStation 3 поддерживают большинство устройств массового хранения для передачи данных мультимедиа, таких как изображения и музыка. По состоянию на апрель 2010 года Xbox 360 (a) использовало устройство массового хранения для сохраненных игр [4] , а PS3 позволяла передачу между устройствами на устройстве массового хранения. Независимые разработчики выпустили драйверы для TI-84 Plus и TI-84 Plus Silver Edition для доступа к устройствам массового хранения USB. [5] В этих калькуляторах драйвер usb8x поддерживает приложение пользовательского интерфейса msd8x.
Спецификация USB mass-storage предоставляет интерфейс для ряда стандартных наборов команд, позволяя устройству раскрывать свой подкласс. На практике существует небольшая поддержка указания набора команд через его подкласс; большинство драйверов поддерживают только прозрачный набор команд SCSI , обозначая свое подмножество набора команд SCSI с помощью своего типа периферийного устройства SCSI (PDT). Коды подклассов определяют следующие наборы команд:
Спецификация не требует определенной файловой системы на соответствующих устройствах. На основе указанного набора команд и любого подмножества она предоставляет средства для чтения и записи секторов данных (аналогично низкоуровневому интерфейсу, используемому для доступа к жесткому диску ). Операционные системы могут рассматривать USB-устройство хранения данных как жесткий диск; пользователи могут разбить его на разделы в любом формате (например, MBR и GPT) и отформатировать его в любой файловой системе.
Из-за своей относительной простоты наиболее распространенной файловой системой на встраиваемых устройствах , таких как USB-флеш-накопители , камеры или цифровые аудиоплееры, является файловая система FAT или FAT32 от Microsoft (с дополнительной поддержкой длинных имен файлов ). Однако USB-накопители могут быть отформатированы с помощью любой другой файловой системы, такой как NTFS в Windows NT, HFS Plus в macOS , Ext2 в Linux или Unix File System в Solaris или BSD). Этот выбор может ограничить (или предотвратить) доступ к содержимому устройства со стороны оборудования, использующего другую операционную систему. Зависящие от ОС параметры хранения включают LVM , таблицы разделов и программное шифрование.
В камерах, MP3-плеерах и подобных устройствах, которые должны иметь доступ к файловой системе независимо от внешнего хоста, производители предпочитают файловую систему FAT32. Все такие устройства останавливают свою файловую систему ( размонтируют ) перед тем, как сделать ее доступной для операционной системы хоста, чтобы предотвратить повреждение файловой системы или другой ущерб (хотя теоретически возможно, чтобы оба устройства использовали режим только для чтения или кластерную файловую систему ). Некоторые устройства имеют переключатель защиты от записи (или опцию), позволяющий использовать их в режиме только для чтения.
Поставщики предварительно отформатированных устройств используют две основные схемы разбиения на разделы. Одна помещает файловую систему (обычно FAT32) непосредственно на устройство без разбиения на разделы, заставляя его начинаться с сектора 0 без дополнительных загрузочных секторов, заголовков или разделов. Другая использует таблицу разделов DOS (и код MBR), при этом один раздел охватывает все устройство. Этот раздел часто выравнивается по высокой степени двух секторов (например, 1 или 2 МБ), что распространено в твердотельных накопителях для производительности и долговечности. Некоторые устройства со встроенным хранилищем, напоминающим USB-накопитель (например, MP3-плееры с портом USB), сообщат о поврежденной (или отсутствующей) файловой системе, если они переформатированы с другой файловой системой. Однако большинство устройств с разделами по умолчанию могут быть переразбиты (путем уменьшения первого раздела и файловой системы) с дополнительными разделами. Такие устройства будут использовать первый раздел для своих собственных операций; после подключения к хост-системе все разделы будут доступны.
Устройства, подключенные к одному порту USB, могут функционировать как несколько USB-устройств, одно из которых является USB-накопителем. Это упрощает распространение и доступ к драйверам и документации, в первую очередь для операционных систем Microsoft Windows и Mac OS X. Такие драйверы требуются для полного использования устройства, обычно потому, что оно не соответствует стандартному классу USB или имеет дополнительную функциональность. Встроенное USB-накопитель позволяет устанавливать дополнительные драйверы без дисков CD-ROM, дискет или доступа в Интернет на веб-сайт поставщика; это важно, поскольку многие современные системы поставляются без оптических или дисководов. Доступ в Интернет может быть недоступен, поскольку устройство обеспечивает сетевой доступ (беспроводные, GSM или Ethernet-карты). Встроенный USB-накопитель обычно делается поставщиком постоянно доступным только для чтения, что предотвращает случайное повреждение и использование в других целях (хотя он может быть обновлен с помощью фирменных протоколов при выполнении обновления прошивки). Преимуществами этого метода распространения являются более низкая стоимость, упрощенная установка и обеспечение переносимости драйверов.
Некоторые расширенные команды жесткого диска , такие как Tagged Command Queuing и Native Command Queuing (которые могут повысить производительность), ATA Secure Erase (который позволяет безопасно стирать все данные на диске) и SMART (доступ к показателям надежности диска) существуют как расширения низкоуровневых наборов команд диска, таких как SCSI , ATA и ATAPI . Эти функции могут не работать, если диски помещены в корпус диска , поддерживающий интерфейс USB-накопителя. Некоторые интерфейсы USB-накопителей являются универсальными, предоставляя базовые команды чтения-записи; хотя это хорошо работает для базовой передачи данных с устройствами, содержащими жесткие диски, не существует простого способа отправки расширенных, специфичных для устройства команд на такие USB-накопители (хотя устройства могут создавать собственные протоколы связи через стандартный интерфейс управления USB). Протокол USB Attached SCSI (UAS), представленный в USB 3.0, устраняет несколько из этих проблем, включая очередь команд, командные каналы для оборудования, требующего их, и управление питанием.
Определенные чипсеты USB 2.0 имели собственные методы достижения сквозного доступа SCSI, которые можно было использовать для чтения данных SMART с дисков с помощью таких инструментов, как smartctl (используя опцию -d, за которой следует «chipset»). [6] Более поздние чипсеты USB-накопителей поддерживают SCSI / ATA Translation (SAT) как общий протокол для взаимодействия с устройствами ATA (и SATA). [7] Использование экзотических команд ATA или SCSI pass-through (таких как безопасное стирание или защита паролем), когда диск подключен через мост USB, может привести к сбою диска, особенно с утилитой hdparm . [8]
С сайта Форума разработчиков USB: