Могут ли USB-устройства напрямую обращаться к оборудованию?[закрыто]

StackOverflow https://stackoverflow.com/questions/55129

Вопрос

Вот почему мне интересно.Недавно купил для своего ноутбука внешний ТВ-тюнер, у которого есть особенность: при толчке жесткий диск перестает крутиться.Однако даже когда я перемещаю свой ноутбук, видео с ТВ-тюнера (который, согласно книге, выполняет всю обработку видео) не заикается.Мне интересно, имеет ли этот ТВ-тюнер доступ к видеокарте и системам отображения напрямую, вместо того, чтобы записывать на жесткий диск и затем отображать это.

Это подводит меня к моему вопросу.Что может/не может делать внешнее устройство?

Это было полезно?

Решение

Он не имеет прямого доступа к оборудованию, но и не записывает данные на диск.Программа, которую вы используете, считывает данные с тюнера и передает их в оконную систему, которая затем проходит через уровни ОС и попадает на видеокарту.

В более общем смысле, USB-устройство никогда не может получить прямой доступ к оборудованию.Хост должен иметь доступ к USB-устройству, а затем он может отправлять данные туда и обратно, которые обрабатываются драйвером (настоящий ли это «драйвер» в ОС или программном обеспечении, полностью зависит от варианта использования).Однако имейте в виду, что Firewire поддерживает DMA (прямой доступ к памяти) и, следовательно, может обращаться к системной памяти, что /может/ означать прямой доступ к оборудованию, хотя это и не обычное использование, а для ускорения таких операций, как копирование данных.

Другие советы

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

Вполне вероятно, что ТВ-тюнер USB напрямую взаимодействует с драйверами вашего видеодисплея, а не записывает телевизионный контент на жесткий диск, а затем снова считывает его для отправки на дисплей.

Даже при настройке типа DVR вы, вероятно, будете одновременно пересылать данные на жесткий диск для отправки на дисплей, а не последовательно (ТВ->HDD, затем HDD->дисплей).

Ах.Таким образом, в моем примере приложение, которое я установил вместе с тюнером, позволяет тюнеру получить доступ к элементам управления видеокартой/дисплеем, и именно так оно и работает.Спасибо.

Одним из способов, которым USB-устройство могло повлиять на систему само по себе, было бы то, что оно было плохо спроектировано/неправильно/сломано и неправильно получало различные сигналы интерфейса.Например, устройство может время от времени выводить землю или линию +5 ​​В из строя и удерживать их в этом положении, в зависимости от конструкции всей системы это может вызвать более серьезные проблемы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top