4

Так...

Существуют виртуальные машины, которые в основном работают под управлением операционной системы в некоторой моделируемой среде (которая может соответствовать или не соответствовать реальному оборудованию, присутствующему в настоящее время). Есть несколько возможностей подключения реальных аппаратных устройств (например, USB-накопителей) к виртуальной машине.

Кроме того, существуют некоторые так называемые «виртуальные USB-устройства» (например, Arduino Leonardo), которые можно запрограммировать так, чтобы они реагировали так же, как реальное USB-устройство, но в основном они представляют собой просто микросхему на другом конце USB-кабеля, на котором выполняется какая-либо программа ( они могут или не могут быть связаны с другими компонентами, для этого вопроса, давайте предположим, что они не).

Конечно, можно подключить виртуальное USB-устройство к виртуальной машине (так как они являются частью реального оборудования).

Можно ли было бы пропустить аппаратную часть и запустить пользовательскую программу в операционной системе хоста, которая подключается к виртуальной машине, как если бы это было реальное аппаратное устройство (скажем, в качестве плагина для программного обеспечения для виртуализации, или с использованием автономной программы с использованием некоторых API)?

Если да, есть ли какие-либо решения для дальнейшего использования?

Если нет, то почему виртуальные машины не предоставляют такую возможность (например, существуют ли какие-либо аппаратные ограничения)?

1 ответ1

5

Краткий ответ: да.

Это всецело зависит от гипервизора.

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

ESXi VMware поддерживает это, по моему личному опыту. Вы можете загрузить и установить виртуальные сетевые устройства, такие как коммутаторы, от Cisco, и я помню, что видел и другое специализированное оборудование, доступное в этом продукте, хотя прошло уже несколько лет с тех пор, как я управлял виртуальным стеком VMware.

Я не знаю, поддерживают ли другие гипервизоры это, но я предполагаю, что HyperV от Microsoft, вероятно, делает то же самое, поскольку они стараются максимально поддерживать паритет функций с VMware.

Я предлагаю рассмотреть различные API-интерфейсы VMware как хорошее место для начала.

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

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