有没有任何已知的方法在同一硬件上运行并由XEN虚拟化的两个操作系统之间进行进程间通信。
我知道我可以做远程方法调用(RMI / RPC)来在网络上进行进程通信,我也可以在这里做。
IPC可以通过以下方式实现
- 信号
- Anonymous Pipes
- 命名管道或FIFO
- SysV消息队列
- POSIX消息队列
- SysV共享内存
- POSIX共享内存
- SysV信号量
- POSIX信号量
- FUTEX锁定
- 使用mmap的文件支持和匿名共享内存
- UNIX域套接字
- Netlink Sockets
- 网络套接字
- inotify的
- FUSE子系统
- D-Bus子系统
醇>
其中我认为可以使用12到16,因为它允许基于网络和文件的通知和通信协议。
有没有一种方法可以使用1到10之间的任何方法(包括1和10),可以用于在具有虚拟化的相同硬件上运行的两个OS之间的IPC
答案 0 :(得分:1)
首先1-10看起来像是在一个操作系统内紧紧贴在ipc上,而不是设计用于机器到机器的ipc。也许他们中的一些人可以使用netowrking作为传输,但在这种情况下,最好使用网络本身。 如果你试图找到几乎为零-conf的东西,你可以在hyper-v上使用vsock on kvm或hyper-v socket这样的东西。这是socket api,无需其他网络堆栈,并使用自己的基于guid的地址空间。但它们并不常用,在某些情况下可能会出现问题。例如,hyper-v套接字仅在centos-rhel上工作正常,而vsock在机器到机器通信方面可能会遇到一些麻烦。一个好消息,xen看起来像支持vsock https://xenbits.xen.org/people/dvrabel/inter-domain-comms-C.pdf。