2017-01-25 18 views
1

동일한 하드웨어에서 실행되고 XEN에 의해 ​​가상화 된 두 운영 체제간에 프로세스 간 통신을 수행하는 알려진 방법이 있습니다.단일 하이퍼 바이저 가상화 머신에서 두 개의 서로 다른 OS에서 실행되는 두 프로세스 사이의 IPC

나는 RMI/RPC (Remote Method Invocation)를 사용하여 네트워크에서 프로세스 통신을 수행 할 수 있으며 여기에서도 확실히 수행 할 수 있음을 알고 있습니다.

IPC는 다음과 같은 방법에 의해 달성 될 수있다

  1. 신호
  2. 익명 파이프
  3. 명명 된 파이프 또는 FIFO를
  4. 시스템 V 메시지 큐
  5. POSIX 메시지 큐
  6. 시스템 V 공유 메모리
  7. POSIX 공유 메모리
  8. 시스템 V 세마포어
  9. POSIX 세마포어
  10. 퓨 텍스 잠금
  11. 파일 백업 및 익명 공유 메모리를 사용하여 mmap에
  12. UNIX 도메인 소켓
  13. NETLINK 소켓
  14. 네트워크 소켓
  15. 이노 티ify
  16. 퓨즈 서브 시스템

  • D-버스 서브 시스템은 그 중 내가 네트워크 및 파일 기반 알림 및 통신 프로토콜을 허용하는 이후 (12) (16)에 사용될 수 있다고 생각합니다.

    단단히 잘 접착 같다 난 (포함) (10) (1)의 방법 중 하나를 사용할 수있는 방법은 두 OS 가상화

  • 답변

    0

    우선 1-10와 동일한 하드웨어에서 실행 사이의 IPC를 위해 이용 될 수 있는가 한 os 내부의 ipc에 machine-to-machine ipc를하도록 설계되지 않았습니다. 아마도 그들 중 일부는 전송으로 netowrking을 사용할 수 있지만이 경우 네트워크 자체를 사용하는 것이 좋습니다. 거의 zero-conf 인 것을 찾으려고하면 kvm의 vsock이나 하이퍼 -v의 하이퍼 -V 소켓과 같은 것을 사용할 수 있습니다. 이것은 다른 네트워크 스택없이 작동하고 자체 guid 기반 주소 공간을 사용하는 소켓 API입니다. 그러나 이들은 일반적으로 사용되지 않으며 경우에 따라 사용상 문제가 될 수 있습니다. 예를 들어 하이퍼 -v 소켓은 centos-rhel에서만 잘 작동하며 vsock은 컴퓨터 간 통신에 몇 가지 문제가있을 수 있습니다. xen이 좋아 보이는 뉴스는 vsock https://xenbits.xen.org/people/dvrabel/inter-domain-comms-C.pdf을 지원합니다.