之前,为了学习 Docker,自己造轮子使用 Shell 脚本实现了一个最小的 Docker,该工程的名字为 docker.sh,我放在了 Github上。仓库地址如下:
https://github.com/pandengyang/docker.sh.git
同时,我把自己的创作过程发表为文章《使用 Shell 脚本实现 Docker》,该文章广受好评,我的大部分粉丝都由该文章引来。
随着安全容器的出现,在精简系统虚拟机中运行容器越来越受到关注,激发了我对硬件虚拟化技术的兴趣。
我阅读了《系统虚拟化:原理与实现》,该书系统介绍了虚拟化的历史、分类以及各种虚拟化的原理,但是,整本书几乎全是理论,读完之后,给人的感觉是,都学会了,但又什么都不会。我也曾尝试阅读 KVM 源码,但是代码过于庞大,涉及的技术众多,根本无法理出头绪。
于是,我萌生了一个想法,硬件虚拟化技术分为 CPU 虚拟化、内存虚拟化、中断虚拟化、设备虚拟化等。我何不像学习 Docker 那样,自己写一个最小的Demo,用最少的代码去实践这些技术,通过造轮子的方式来学习呢。说干就干,从2020年下半年开始一直到2022年初,我查阅教材、阅读Intel开发者手册,终于,实现了一个最小的 Demo,我将其命名为桃花源,英文名为peach。peach实现了如下功能:
- 使用 Intel VT-x 技术实现 CPU 虚拟化
- 使用 EPT 技术实现内存虚拟化
- 支持虚拟 x86 实模式运行环境
- 支持虚拟 CPUID 指令
- 支持虚拟 HLT 指令,Guest 利用 HLT 指令关机
我将其开源放在了 Github 上,仓库地址如下:
https://github.com/pandengyang/peach.git
后续还将实现中断虚拟化、设备虚拟化等。像 docker.sh 一样,我也将创作过程在网上发表为《自己动手写虚拟机》系列文章。


本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.dasum.com/179712.html
如若转载,请注明出处:https://www.dasum.com/179712.html