本文内容参考:
《趣谈Linux操作系统》 —— 刘超,极客时间
《QEMU/KVM》源码解析与应用 —— 李强,机械工业出版社
特此致谢!
一、QEMU参数解析
要分析QEMU源码,首先得从QEMU的命令行讲起。笔者前系列QEMU相关的文章中给出过一些QEMU命令,比如:
$ qemu-system-x86_64 -enable-kvm -m 8G -smp 4 -boot once=d -drive file=./Ubuntu22.img -cdrom ../iso_images/ubuntu-22.10-desktop-amd64.iso
本节对QEMU命令行参数解析进行简要介绍,帮助读者将QEMU命令行参数与其代码中的实现联系起来。QEMU的命令解析,就是下边这样一长串内容,在softmmu/vl.c中的void qemu_init(int argc, char **argv)中:
qemu_add_opts(&qemu_drive_opts);
qemu_add_drive_opts(&qemu_legacy_drive_opts);
qemu_add_drive_opts(&qemu_common_drive_opts);
qemu_add_drive_opts(&qemu_drive_opts);
qemu_add_drive_opts(&bdrv_runtime_opts);
qem