本书的特色在于:
借鉴学习操作系统(Linux内核源代码已超过2700万行)的方法,借助实验把重要概念涉及的主干技术路径叙述清楚( Linux内核版本为4.19.0,QEMU版本为4.1.1),解读现代主流开源虚拟化KVM/QEMU的源码,读者也可以通过调试和打印直观理解虚拟化场景的“现场”,使静态的代码变得鲜活生动,通过实验来理解重要概念。
针对新型“多虚一”,本书讲述了开源项目GiantVM的CPU、内存和I/O“多虚一”的基本实现方法,这也是国际上第一个Type II开源多虚一的实现方案,有助于了解多虚一方面的进展。
基于ARMv8的华为鲲鹏虚拟化架构,并概述其CPU、中断、内存、I/O和时钟虚拟化的基本原理,也对ARM虚拟化进行了比较系统的介绍,便于和x86的实现进行对比。
类似于代码量约1万行的Linux 0.11,“麻雀虽小、五脏俱全”,本书基于内存安全的Rust语言从零开始打造一个具备基本功能的轻量级虚拟化平台StratoVirt,逐步提供CPU、内存和I/O的虚拟化能力。从开始运行一段汇编代码到最终能够运行Linux客户机操作系统,读者可以完整经历虚拟化从设计到实现的全部流程。
遗憾的是,由于时间和篇幅,以及RISC-V虚拟化刚刚推进到1.0版本,RISC-V虚拟化也有很多特色,本书没有专门重点介绍,只好留待今后了。
本书的源代码及安装运行说明均保存于 GiantVM 和 StratoVirt开源社区。后续将通过开源社区进行代码更新和线上交流。