引言
对于Linux Kernel 或者OS相关的自动化测试,如何自动更新被测的Kernel以及OS image有时候是比较困难的事情。
Linux社区的”老神仙”Fengguang同学牵头开发了0-day自动化测试系统,系统期初的核心功能是利用kexec加载待测的kernel image二次启动。大概流程是:
(编者按:写完才发现,这篇分析写的又臭又长…… 原谅语言凝练不足和code阅读还没有炉火纯青,我会慢慢提炼,有兴趣的同学可以评论区吐槽:)
在看code之前,先把KVM-QEMU的source code的大框架拎出来,给读者直观一点的感受,本文最后还有一个稍微详细的call graph。中间这些文字是帮助读者以及我自己阅读和理解code的,大多数是kernel source code,因为Qemu相关的在之前的日志中已经涉及到了。
1 | 第一步,获取到kvm句柄 |