Więc...
Istnieją maszyny wirtualne, które w zasadzie uruchamiają system operacyjny w symulowanym środowisku (co może, ale nie musi odpowiadać rzeczywistemu sprzętowi obecnie obecnemu). Istnieją pewne możliwości podłączenia rzeczywistych urządzeń sprzętowych (np. Napędów USB) do maszyny wirtualnej.
Są też tak zwane „wirtualne urządzenia USB” (np. Arduino Leonardo), które można zaprogramować tak, aby odpowiadały jak rzeczywiste urządzenia USB, ale w zasadzie są to mikroukłady na drugim końcu kabla USB, który uruchamia jakiś program ( mogą lub nie mogą być połączone z innymi komponentami, dla tego pytania załóżmy, że nie są).
Oczywiście można podłączyć wirtualne urządzenie USB do maszyny wirtualnej (ponieważ są one częścią prawdziwego sprzętu).
Czy byłoby możliwe pominięcie części sprzętowej i uruchomienie niestandardowego programu w systemie operacyjnym hosta, który łączy się z maszyną wirtualną tak, jakby to było prawdziwe urządzenie sprzętowe (powiedzmy, jako wtyczka do oprogramowania do wirtualizacji lub korzystanie z programu wolnostojącego przy użyciu niektórych API)?
Jeśli tak, czy istnieją jakieś istniejące rozwiązania dla dalszych odniesień?
Jeśli nie, dlaczego maszyny wirtualne nie zapewniają takiej możliwości (np. Czy są jakieś ograniczenia sprzętowe)?