digraph techviz { graph [rankdir=LR, splines=ortho, nodesep=0.55, ranksep=0.85]; node [fontname=Helvetica, fontsize=11, margin="0.18,0.12", style="rounded,filled", fillcolor=white, color="#2d4357", penwidth=1.5]; edge [fontname=Helvetica, fontsize=10, color="#364b5f", penwidth=1.4, arrowsize=0.75]; n0 [label="QEMU", shape=box, style="rounded,filled"]; n1 [label="VFIO", shape=box, style="rounded,filled"]; n2 [label="물리 PCI 장치", shape=box, style="rounded,filled"]; n3 [label="IOMMU", shape=box, style="rounded,filled"]; n4 [label="KVM", shape=box, style="rounded,filled"]; n5 [label="물리 CPU", shape=box, style="rounded,filled"]; n6 [label="게스트 코드", shape=box, style="rounded,filled"]; n7 [label="게스트 virtio 드라이버", shape=box, style="rounded,filled"]; n8 [label="vhost", shape=box, style="rounded,filled"]; n0 -> n1 [label="장치 fd", style=solid]; n1 -> n2 [label="vfio-pci 결합", style=solid]; n2 -> n3 [label="DMA", style=solid]; n0 -> n4 [label="KVM_RUN", style=solid]; n4 -> n5 [label="VM entry", style=solid]; n5 -> n6 [label="VMX non-root", style=solid]; n0 -> n7 [label="virtqueue", style=solid]; n0 -> n8 [label="제어 ioctl", style=solid]; }