背景
- Read the fucking source code! --By 鲁迅
- A picture is worth a thousand words. --By 高尔基
说明:
- KVM版本:5.9.1
- QEMU版本:5.0.0
- 工具:Source Insight 3.5, Visio
1. 概述
- 本文围绕ARMv8 CPU的虚拟化展开;
- 本文会结合Qemu + KVM的代码分析,捋清楚上层到底层的脉络;
- 本文会提供一个Sample Code,用于类比Qemu和KVM的关系,总而言之,大同小异,大题小做,大道至简,大功告成,大恩不言谢;
先来两段前戏。
1.1 CPU工作原理
AI的世界,程序的执行不再冰冷,CPU对a.out说,hello啊,world已经ok啦,下来return吧!
既然要说CPU的虚拟化,那就先简要介绍一下CPU的工作原理:
- CPU的根本任务是执行指令,我们常说的取指-译码-执行-访存-写回,就是典型的指令Pipeline操作;
- 从CPU的功能出发,可以简要分成三个逻辑模块:
- Contr