【发布时间】:2021-11-29 14:47:48
【问题描述】:
假设我有一台 x86 机器。通过 Linux KVM API 创建 x86 VM 很容易。
见:vm_init() in kvm-host:
if ((v->kvm_fd = open("/dev/kvm", O_RDWR)) < 0)
return throw_err("Failed to open /dev/kvm");
if ((v->vm_fd = ioctl(v->kvm_fd, KVM_CREATE_VM, 0)) < 0)
return throw_err("Failed to create vm");
if (ioctl(v->vm_fd, KVM_SET_TSS_ADDR, 0xffffd000) < 0)
return throw_err("Failed to set TSS addr");
...
if ((v->vcpu_fd = ioctl(v->vm_fd, KVM_CREATE_VCPU, 0)) < 0)
return throw_err("Failed to create vcpu");
在这个项目中,很容易在 x86 机器上创建 x86 VM。
但是,我的问题是,如果我希望该 VM 成为 ARM 架构怎么办?
我相信这是适用的,因为我们有 qemu-system-arm,而我试图实现的正是它所做的。
【问题讨论】:
标签: linux-kernel virtualization qemu kvm hypervisor