我正在尝试使用 kvm 作为虚拟机管理程序在主机与其客户虚拟机之一之间建立通信通道。为此,我使用virtio-serial。
为了创建虚拟机,我发出了以下命令:
qemu-system-x86_64 \
-m 2048 -name ubuntu \
-hda ubuntu_image \
-device virtio-serial \
-chardev socket,path=/tmp/foo,server,nowait,id=foo \
-device virtconsole,name=jobsfoo,chardev=foo,name=org.ubuntu.foo \
Run Code Online (Sandbox Code Playgroud)
然后为了在客人上进行交流,我使用:
socat /dev/hvc0 -
Run Code Online (Sandbox Code Playgroud)
在主机上:
socat /tmp/foo -
Run Code Online (Sandbox Code Playgroud)
我开始明白这/tmp/foo
是一个套接字和/dev/hvc0
一个字符设备。
为什么有一个对称的通信接口:主机上的套接字和客户机上的字符设备?