Используя безголовый сервер Ubuntu 14.04, я использую гостевую систему Windows 7 в Qemu, на которую я прохожу через графический процессор (для производительности). Я пишу приложение, часть которого будет работать в Linux, а часть будет работать в гостевой системе Windows, и мне нужна связь между ними. Исследование этого привело меня к убеждению, что лучшим вариантом будет использование драйверов Virtio-serial, чтобы я мог просто общаться между ними, как если бы они имели последовательное соединение; это звучит невероятно, но я не могу понять, как заставить это работать. Я нашел несколько ресурсов, в которых подробно описаны необходимые параметры командной строки Qemu, например, здесь, но мне не удалось найти какие-либо ресурсы о том, как инициировать связь со стороны гостя . Кажется, что большинство людей, занимающихся подобными вещами, делают это с гостевыми ОС Linux, что, я уверен, значительно упрощает ситуацию.

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

Я также рассмотрел создание общего ресурса SMB и хранение там базы данных, к которой можно подключиться с нескольких хостов, а затем запуск mysql на хосте и госте. Но это также кажется далеко не идеальным ... У кого-нибудь есть опыт с этим, или, может быть, очевидное предложение, которое я пропускаю?

Редактировать:

Я хотел включить мой скрипт оболочки qemu:

sudo qemu-system-x86_64 -enable-kvm -M q35 -m 3072 -cpu host -smp 4 
-bios /usr/share/qemu/bios.bin -vga none -nographic -serial mon:stdio 
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 
-device vfio-pci,host=00:01.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on 
-device vfio-pci,host=00:01.1,bus=root.1,addr=00.1 
-device virtio-scsi-pci,id=scsi 
-drive file=/utils/WES7.img,id=disk,format=raw,if=none -device ide-hd,drive=disk 
-drive file=/home/mvsuser/virtio-win-0.1-100.iso,id=virtiocd,if=none -device ide-cd,bus=ide.1,drive=virtiocd 
-usb -usbdevice host:046d:C52B 
-net bridge -net nic,model=virtio 
-chardev socket,path=/tmp/port0,server,nowait,id=port0-char 
-device virtio-serial 
-device virtserialport,id=port1,name=vioserial,chardev=port0-char 

1 ответ1

0

Страница, на которую вы ссылаетесь, содержит ссылку на API для использования гостями Windows (а также гостями Linux). Я считаю, что это то, что вы ищете.

Кроме того, исходный код гостевого агента QEMU содержит рабочий пример того, как гостевой агент qemu использует virtio-serial в Windows.

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