【发布时间】:2020-10-20 02:55:42
【问题描述】:
是否有任何硬件模拟器可以在 Linux 上产生硬件中断。我正在寻找可以处理硬件中断、读取或写入硬件内存、延迟工作、上半部分和下半部分处理等的设备驱动程序。基本上,希望学习端到端的完整设备驱动程序。但是障碍是——如何模拟硬件。我真的需要一些可以产生中断的硬件吗?我浏览了 LDD3 书,但他们在那里使用skull - 一块模拟为硬件的内核空间内存,但这不能产生中断,或者它可以吗?请给点光。
【问题讨论】:
-
您可以编写自己的操作系统并使用 qemu 模拟器。
-
您可以通过连接来自 any 真实中断的回调来模拟中断。通常是定时器中断。事实上,有些设备没有中断,但驱动程序通过执行我刚才提到的操作来模拟它们。或者,您可以从头开始编写驱动程序并将其加载到您在虚拟机中启动的 [您的] 定制构建的 linux 内核 [代替现有/标准驱动程序](例如
virtualbox、vmware等) .这样,您就可以进行实验而不会真正伤害任何东西。 -
非常确定主机上的 VHOST 驱动程序会在客户机的 VIRTIO 驱动程序中生成模拟中断。
-
如果设备不生成任何异步事件,为什么还需要中断处理程序?