
虚拟化
文章平均质量分 95
介绍主流的虚拟化技术的原理
奔跑的架构师
车厂的基层软件架构师
展开
-
[V-13][A-36]ARMv8/v9-GIC-虚拟中断直接注入VM的路由机制(Doorbell)
本文详细介绍了虚拟中断直接注入VM的路由机制,以及Doorbell机制。原创 2025-03-31 07:30:00 · 678 阅读 · 0 评论 -
[V-12][A-35]ARMv8/v9-GIC-虚拟中断直接注入系统架构(Direct Injection of Virtual Interrupts)
本文介绍了基于GIC架构的虚拟中断直接注入VM的系统架构。原创 2025-03-28 08:00:00 · 663 阅读 · 0 评论 -
[V-11][A-33]ARMv8/v9-GIC-中断虚拟化架构与工作原理
本文介绍了GIC传统中断类型的虚拟化处理的系统架构和软件架构。原创 2025-03-14 08:00:00 · 835 阅读 · 0 评论 -
[V-10]ARMv8/v9-CPU Virtualization-CPU虚拟化架构简介(vCPU/vPE)
本文简要介绍了CPU虚拟化架构的基础知识。原创 2025-03-07 07:30:00 · 909 阅读 · 0 评论 -
[A-24][V-09]ARMv8/v9-SMMU工作场景与SMMU的虚拟化架构
本文基于SMMUv3介绍了其在两级地址翻译中的使用场景,最后介绍了SMMUv3的虚拟化框架。原创 2024-12-28 22:00:00 · 1374 阅读 · 0 评论 -
[V-08][Device Virtualization]-软件虚拟化技术vs硬件虚拟化技术
本文介绍了硬件虚拟化技术概论。原创 2024-12-19 07:00:00 · 1095 阅读 · 0 评论 -
[A-20][V-07]ARMv8/v9-内存虚拟化(Stage-2 Translation)
本文介绍了ARM的内存虚拟化技术的Stage-2阶段的相关课题。原创 2024-12-01 09:30:00 · 1170 阅读 · 0 评论 -
[A-19][V06]ARMv8/v9-内存虚拟化原理
前一篇文章,我们介绍了ARM内存的属性,算是一个小小的里程碑点,接下来我们会把注意力重新拉回虚拟化的赛道。我们从[V-05] 虚拟化基础-异常模型(Exception model)之后,花了很多笔墨介绍了ARM体系的Cache和内存相关的机制作为我们进一步研究虚拟化的基础知识,今天终于回归到我们的虚拟化主线继续小马奔腾。内存空间的管理也是虚拟化技术体系中的核心课题之一,下面我们就进入内存虚拟化的世界。原创 2024-11-24 10:28:41 · 1006 阅读 · 0 评论 -
[V-05] 虚拟化基础-异常模型(Exception model)(基于AArch64)
前文的叙述中反复提到了ARM的异常模型,很多地方也留下了伏笔。异常模型对于ARM的架构来说是非常重要的,可以说是AArch64的很多设计思想的基础,对于虚拟化来说那就更加的意义非凡,因此我们需要篇文章专门的阐述清楚AArch64的异常模型的概念、分类、以及处理机制。一位伟大的人说过:这个世界唯一不变的真理就是这个世界永远处在不断的变化当中。原创 2024-06-13 20:16:28 · 743 阅读 · 0 评论 -
[V-04] 虚拟化基础-寄存器集(Register set)(基于AArch64)
本文只聚焦AArch64的状态,实际上在介绍指令集架构ISA的时候提到过ARMv8实际上是有AArch64和AArch32两种状态,而且两种状态还可以按照一定的规则做交替执行。那么对于寄存器这块是如何做映射转换的自然也有一套规则,例如图4-1所示。图4-1 AArch64 to AArch32 register mapping本文我们从寄存器的硬件电路开始讲起只到介绍了AArch64的寄存器体系,为进一步研究虚拟化技术打下了基础。原创 2024-05-23 20:22:45 · 1090 阅读 · 0 评论 -
[V-03] 虚拟化基础-指令集架构(ISA)(基于AArch64)
前面文章已经介绍了CPU的基础概念,为我们进一步研究虚拟化技术的一个最终的分支vCPU奠定了基础。回顾前文,我们知道一个CPU-Core的最根本任务就是执行指令,包括取指-执行-访存-回写,如图1-1所示。图1-1 Cortex pipeline为什么要了解和学习指令集(ISA),先看一段ARM官方的说法对于一个辛勤的搞虚拟化开发的码农来说,虚拟化相关的代码主要由3部分组成:Hypervisor、VM、GuestOS。要写出高效的,性能良好的虚拟化代码,也一定要了解到底什么是ISA。原创 2024-05-18 19:56:16 · 1267 阅读 · 0 评论 -
[V-02] 虚拟化基础-CPU架构(基于AArch64)
虚拟化的最重要课题就是虚拟CPU,VM如果没有vCPU的加持是不能正常工作的。俗话说百闻不如一见,本文我们从一个PCB板子开始一步一步的分解放大局部,最后到了CPU的一个core上,了解了CPU的内部的物理结构和逻辑结构。这些知识点都是我们继续前进的基础,虽然限于篇幅,书不尽言,但是核心的知识点基本都呈现了出来。后面如果有必要,会专门开一个系列写一写ARM体系的文章。限于个人水平,难免有纰漏之处,还希望大家多多指教,共同提高。后面还有几篇文章继续阐述硬件的架构,on the way。原创 2024-05-11 19:12:17 · 1672 阅读 · 1 评论 -
[V-01]虚拟化概论-Hypervisor(VMM)(基于AArch64)
由于Emulation可以归类为一种特殊的全虚拟化模式,也不是我们要讨论的重点,这里我们就不花笔墨做详细的阐述了,我们的精力主要还是放在Virtualization这个领域。本文着重阐述了Hypervisor(VMM),在虚拟化这个技术领域,Hypervisor就是灵魂。在GuestOS、VMs、VMM组成的虚拟化体系下,VMM就是核心和纽带,所有的虚拟化软件方案和技术都要围绕着Hypervisor这个点展开,以Hypervisor的类型和基础服务为基础做二次设计。原创 2024-05-08 16:38:54 · 2005 阅读 · 0 评论 -
[V-00] 虚拟化概论-思想
上面介绍的几点都是虚拟化技术,大家的区别主要是,进程、高级语言是指令的执行环境的虚拟化,大家的硬件视角一致(都是物理硬件视角),但是VMM的虚拟化技术约束的是GuestOS,进而影响GuestOS上的进程的硬件视角(实际上是虚拟的硬件视角,可以不一致,有的时候甚至是互斥的)。从操作系统的视角看去,GuestOS在一般的虚拟化技术的实现下其实就是HostOS的一个进程,但是他看到的硬件视角被VMM给限制了,和HotstOS中其他进程是不一样。原创 2024-04-28 19:20:04 · 1118 阅读 · 0 评论