gpt4 book ai didi

linux-kernel - 在单个管理程序虚拟机上运行在两个不同操作系统上的两个进程之间的 IPC

转载 作者:行者123 更新时间:2023-12-04 17:54:09 25 4
gpt4 key购买 nike

是否有任何已知的方法可以在同一硬件上运行并由 XEN 虚拟化的两个操作系统之间进行进程间通信。

我知道我可以通过远程方法调用 (RMI/RPC) 在网络上进行进程通信,而且我在这里也绝对可以做到。

IPC可以通过以下方式实现

  1. Signals
  2. Anonymous Pipes
  3. Named Pipes or FIFOs
  4. SysV Message Queues
  5. POSIX Message Queues
  6. SysV Shared memory
  7. POSIX Shared memory
  8. SysV semaphores
  9. POSIX semaphores
  10. FUTEX locks
  11. File-backed and anonymous shared memory using mmap
  12. UNIX Domain Sockets
  13. Netlink Sockets
  14. Network Sockets
  15. Inotify
  16. FUSE subsystem
  17. D-Bus subsystem

我认为可以使用其中的 12 到 16 个,因为它允许基于网络和文件的通知和通信协议(protocol)。

有没有一种方法我可以使用 1 到 10(含)之间的任何方法,用于在具有虚拟化的同一硬件上运行的两个操作系统之间的 IPC

最佳答案

前 1-10 看起来像是紧紧地粘在一个操作系统内的 ipc 上,而不是为机器对机器的 ipc 而设计的。也许他们中的一些人可以使用网络作为传输,但在这种情况下最好使用网络本身。如果你试图找到几乎零配置的东西,你可以使用诸如 kvm 上的 vsock 或 hyper-v 上的 hyper-v 套接字之类的东西。这是无需其他网络堆栈并使用其自己的基于 guid 的地址空间的套接字 api。但它们并不常用,在某些情况下使用起来可能会出现问题。例如,hyper-v 套接字仅在 centos-rhel 上运行良好,而 vsock 在机器对机器通信方面可能会遇到一些问题。还有一个好消息,xen貌似支持vsock https://xenbits.xen.org/people/dvrabel/inter-domain-comms-C.pdf .

关于linux-kernel - 在单个管理程序虚拟机上运行在两个不同操作系统上的两个进程之间的 IPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41844236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com