【问题标题】:how to transfer signal between the guest os run on the host os with QEMU and its host os如何在使用 QEMU 的主机操作系统上运行的客户操作系统与其主机操作系统之间传输信号
【发布时间】:2011-12-28 12:00:03
【问题描述】:

我的问题是如何在使用 QEMU 的主机操作系统上运行的客户操作系统与其主机操作系统之间传输信号,我将一些数据写入由客户操作系统的线程在主机操作系统上创建的共享内存,并且想要主机操作系统上的另一个线程知道它并读取数据,但在主机操作系统的线程中没有使用轮询,我想知道有没有办法实现这一点? 感谢您的任何建议!

【问题讨论】:

  • 我相信 QEMU 只能模拟中断(因为它模拟的是机器,而不是操作系统)。为什么不能在 QEMU 的 Linux 下的应用程序中使用 SIGIO?我不明白你的所有问题。

标签: linux multithreading shared-memory signals qemu


【解决方案1】:

Qemu 为来宾提供了完整系统的抽象。而且您不能跨机器使用共享内存 IPC。我建议使用可以使用 qemu 反汇编功能的特殊指令来知道需要 IPC。

步骤:

  1. 在访客应用程序中使用特殊标记指令。让我们说“int $100”。
  2. 在 qemu 中创建一个辅助函数,该函数将在该指令发生时被调用。
  3. 现在,当您在 qemu 中收到回调函数时,请检查一个已知的虚拟地址,该地址存储指向您的数据的指针和数据的长度。

完成..

【讨论】:

    猜你喜欢
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    相关资源
    最近更新 更多