Могут ли устройства USB иметь прямой доступ к оборудованию?
Вот почему мне интересно. Я недавно купил внешний ТВ-тюнер для своего ноутбука, который имеет функцию, которая, когда он толкается, жесткий диск перестает вращаться. Однако, даже когда я перемещаю свой ноутбук, видео с ТВ-тюнера (который обрабатывает всю обработку видео, согласно книге на нем) не заикается. Мне интересно, имеет ли этот ТВ-тюнер прямой доступ к видеокарте и системам отображения вместо записи на жесткий диск, а затем отображает это.
Это подводит меня к моему вопросу. Что может / не может сделать внешнее устройство?
5 ответов
Это не прямой доступ к оборудованию, но и запись на диск тоже. Программа, которую вы используете, читает с тюнера и передает ее в оконную систему, которая затем проходит через слои ОС, чтобы попасть на видеокарту.
В более общем смысле, USB-устройство никогда не сможет получить доступ к оборудованию напрямую. Хост-устройство должно получить доступ к USB-устройству, после чего они могут отправлять туда и обратно данные, которые обрабатываются драйвером (является ли это настоящим "драйвером" в ОС или программном обеспечении, полностью зависит от варианта использования). Однако имейте в виду, что FireWire действительно поддерживает DMA (прямой доступ к памяти) и, следовательно, может обращаться к системной памяти, что / может / означать прямой аппаратный доступ, хотя это не общее использование, но для ускорения таких вещей, как копирование данных.
Устройство без посторонней помощи USB не может напрямую получить доступ к любому другому оборудованию на хост-компьютере. Тем не менее, любые драйверы программного обеспечения, которые вы могли установить на хост-компьютере, безусловно, могут.
Вполне вероятно, что ТВ-тюнер USB обменивается данными непосредственно с драйверами видеодисплея, а не помещает телевизионный контент на жесткий диск, а затем снова читает его, чтобы отправить на дисплей.
Даже при настройке типа DVR вы, вероятно, буферизуете на жесткий диск одновременно для отправки на дисплей, а не последовательно (TV->HDD, затем HDD->display).
Ах. Таким образом, приложение, которое я установил с тюнером, в моем примере позволяет тюнеру получать доступ к элементам управления видеокартой / дисплеем, как это работает. Благодарю.
Одним из способов, которым USB-устройство могло бы повлиять на систему самостоятельно, было бы, если бы она была плохо спроектирована / неконтролируема / сломана и неправильно перетаскивала различные сигналы интерфейса. Например, устройство может время от времени вытягивать землю или линию +5 В из уровня и удерживать их там, в зависимости от конструкции всей системы, это может вызвать более широкие проблемы.