48

В Windows вы обычно можете "извлечь" USB-накопитель, прежде чем физически отключить его, чтобы избежать повреждения данных.

Однако для некоторых устройств Windows не предоставляет опцию "извлечь". Я видел это чаще всего на некоторых смартфонах.

Почему это?

3 ответа3

69

Вероятно, потому что метод, который используется для передачи файлов на телефоны (MTP, а не USB Mass Storage), возлагает ответственность за целостность данных и файловой системы на устройство, принимающее данные, которое в случае с мобильными телефонами также считается интеллектуальным и самостоятельным. -поддерживать или иметь резервную батарею.

Запоминающие устройства USB, как правило, представляют собой тупые карты памяти или жесткие диски, а устройства MTP, такие как телефоны, камеры и аналогичные устройства, обычно представляют собой достаточно интеллектуальные устройства, которые сами управляют своим хранилищем. Таким образом, передача файлов может происходить в идеологии peer-to-peer, а не в стиле smart-host-dumb-client. После того, как данные "отправлены" на телефон, это зависит от операционной системы телефона и методов файловой системы, чтобы обеспечить правильное хранение файла.

Если передача файла прервана и, следовательно, частично передана, телефон может решить, освободить ли выделенное место или показать, что было передано в каждом конкретном случае. Я подозреваю, что большинство прерванных передач просто отбросит неполные данные и освободит все выделенные блоки. Целостность файловой системы активно управляется телефоном.

Поскольку такая передача либо происходит, либо не происходит, и удаление программного обеспечения не является необходимым, единственная причина, по которой он выполняется, заключается в том, чтобы человек, использующий компьютер, мог получить ощущение теплого сияния «Я сделал». USB, безусловно, не нужен с аппаратной точки зрения и вполне устраивает устройства с возможностью горячего подключения.

Со страницы Википедии MTP:

Основная причина использования MTP, а не, например, класса запоминающих устройств USB (MSC), заключается в том, что последний работает на гранулярности блока запоминающих устройств (обычно на практике это блок FAT), а не на логический уровень файла. Другими словами, класс запоминающего устройства USB предназначен для предоставления хост-компьютеру недифференцированного доступа к массовому запоминающему устройству, такому как компактная флэш-память, а не к файловой системе, которая может безопасно использоваться совместно с целевым устройством (за исключением определенных файлов, которые хост может быть изменен / доступ). Поэтому на практике, когда хост-компьютер USB смонтировал раздел MSC, он принимает на себя абсолютный контроль над хранилищем, которое затем может быть безопасно не изменено устройством без риска повреждения данных до тех пор, пока хост-компьютер не разорвет соединение. Кроме того, поскольку хост-компьютер имеет полный контроль над подключенным устройством хранения, существует риск того, что хост-компьютер может повредить файловую систему, переформатировать ее в файловую систему, не поддерживаемую устройством USB, или иным образом изменить ее таким образом. что устройство USB не может полностью понять это.

18

Резюме

В конечном счете, это вопрос того, использует ли устройство MSC или MTP/PTP. Как правило, выделенные устройства хранения, такие как флэш-диски и внешние жесткие диски, используют MSC, а смартфоны и другие устройства, которым необходимо поддерживать доступ к данным при подключении к компьютеру или требовать контроля над передаваемыми данными, будут использовать MTP. Многие камеры используют PTP, подмножество MTP.

Если устройство использует MSC, вам нужно извлечь его из компьютера, прежде чем вы сможете удалить его. Если он использует MTP или PTP, выброс не требуется.


Технические детали

Класс Mass Storage Class (MSC) позволяет компьютеру обмениваться данными с диском почти так же, как с внутренним жестким диском или твердотельным накопителем, что делает его более быстрым, чем другие протоколы для передачи данных. Это то, что используют специальные устройства хранения, такие как USB-накопители и внешние жесткие диски Однако для этого требуется доступ на уровне блоков к базовому носителю, а это означает эксклюзивный доступ к устройству. В результате MSC не подходит для интеллектуальных устройств, поскольку они должны иметь возможность доступа к содержимому файловой системы, пока компьютер ее использует. Смартфон фактически должен был бы закрыть свою ОС, прежде чем он сможет предоставить доступ к компьютеру на уровне блоков - громоздкая процедура, которая не позволит вам запускать приложения или иным образом использовать устройство, пока оно подключено. Компьютер несет ответственность за то, чтобы данные были полностью переданы, поэтому вам нужно сообщить компьютеру, что вы сделали, удалив его.

Протокол передачи мультимедиа (MTP), который используется большинством интеллектуальных устройств, предусматривает доступ на уровне файлов , и за управление данными отвечает устройство, а не хост-компьютер. Смартфоны используют MTP, потому что они должны иметь возможность доступа к данным, когда устройство подключено к компьютеру. MTP также позволяет устройству контролировать или ограничивать передачу данных; некоторые (в основном старые) цифровые медиаплееры /MP3-плееры используют MTP для обеспечения защиты от копирования (DRM) переданных файлов или для обеспечения совместимости передаваемых медиафайлов с устройством. Поскольку MTP просто представляет иерархическую структуру файлов / папок, компьютеру не нужно беспокоиться о файловой системе или о том, как устройство хранит данные. В любом случае с MTP нет необходимости в явной команде eject; как только устройство сообщит системе, что передача завершена (диалоговое окно выполнения закрыто), вы можете удалить устройство, не извлекая его явно.

MTP - это расширенный набор протоколов передачи изображений (PTP), который изначально был разработан для камер, взаимодействующих с компьютерами. Многие камеры по-прежнему используют PTP, но некоторые поддерживают MSC, а некоторые позволяют выбирать между MSC и PTP. Кроме того, некоторые камеры поддерживают прямую печать через протокол, известный как PictBridge, для которого требуется PTP. Как и в случае с MTP, PTP не требует команды eject. Возможность использования камерой MSC, PTP или того и другого зависит от того, как камера обрабатывает свое хранилище при подключении к компьютеру.

Обратите внимание, что если вы извлечете карту памяти из камеры и вставите ее в слот для карт памяти SD или в другое устройство чтения мультимедиа на своем компьютере, это будет устройство MSC, и вам придется извлечь ее, когда вы закончите передачу изображений.

6

Дизайн также связан с тем, как устройства питаются.

Там, где оба устройства имеют собственный источник энергии, например компьютер и смартфон, имеется достаточно места для правильной обработки прерываний передачи или любого другого сбоя. Конструкция опирается на постоянно доступную мощность, и это стабильный фактор, который позволяет сделать другой фактор (коммуникационный) отказоустойчивым. Без этого, в исключительном случае, например, если аккумулятор внезапно извлекается из смартфона или ПК принудительно отключается, эти устройства и их системы на самом деле не более устойчивы к ошибкам, чем неработающие USB-накопители. (chkdsk кто-нибудь?) Эти отказоустойчивые устройства просто полагаются на достаточно времени, чтобы изящно решить ожидаемые проблемы.

Но устройства, работающие от их хоста, практически не имеют времени на любую реакцию на отключение от их питания. А размещение файловой системы в таком устройстве означает не только обслуживание пользовательских запросов, но также доступность для фоновых операций чтения и записи, выполняемых фоновыми процессами хоста, неизвестными пользователю. Пользователь никогда не знает, происходит ли общение в данный момент. Таким образом, должен быть предусмотрен явный способ сигнализации о намерении выключения (и это та команда Eject), при которой хост должен прекратить выполнение каких-либо операций. Внезапное отключение питания ожидается без риска. Таким образом, событие "Извлечение" - это простой способ начать правильное завершение, в то время как мы все еще можем рассчитывать на непрерывную работу. И вещество теперь ничем не отличается от приведенного выше случая: власть предоставляется на все необходимые действия. Когда закончите, хост посылает сигнал назад (потому что это пользователь, который физически контролирует прерывание питания), что теперь безопасно внезапно отключить питание устройства без риска.

Итак, мы видим, что одним из наиболее важных факторов, влияющих на дизайн, является то, способно ли устройство работать автономно, чтобы иметь время для обработки сбоев, или нет. Если нет, то предварительная явная финализация должна быть запрошена командой Eject.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .