ARM AArch64的虚拟化(virtualization)详解(上)

本文深入探讨了ARM AArch64架构中的虚拟化,包括Stage2地址翻译、虚拟化的重要性、独立与托管型hypervisor的区别以及完全虚拟化和半虚拟化。讲解了虚拟机和虚拟CPU的概念,强调了虚拟化在服务器隔离、高可用性和工作负载平衡等方面的关键作用。此外,还详细阐述了第二阶段翻译(Stage 2 translation)的运作机制,如VMIDs、VMID与ASID的交互以及系统内存管理单元(SMMU)的角色。
摘要由CSDN通过智能技术生成

目录

一、概述

开始之前

二、虚拟化介绍

为什么虚拟化很重要

独立(Type 1)和hosted(Type 2) hypervisors

完全虚拟化和半虚拟化

虚拟机和虚拟CPU

三、AArch64中的虚拟化

四、Stage2地址翻译

第二阶段翻译是什么?

VMIDs

VMID 与 ASID 的交互

属性合并和覆盖

模拟内存映射输入/输出(MMIO)

系统内存管理单元(SMMU)

五、指令的捕获和模拟

显示寄存器的虚拟值

MIDR和MPIDR


一、概述

        本博客描述了Armv8-A AArch64架构中的虚拟化支持。涵盖的主题包括第二阶段翻译(stage 2 translation)、虚拟异常和trapping。

        该指南包括一些基本的虚拟化理论作为介绍,并提供了一些示例,说明hypervisor可能如何使用所描述的特性。它不涵盖特定hypervisor的操作,也不试图解释如何从头开始编写自己的hypervisor。这两个主题超出了本博客的范围。

        在本博客的末尾,您可以检查您的知识。您将了解到两种hypervisor类型以及它们如何映射到Arm异常级别。您将能够解释traps的操作以及它们如何用于模拟操作。并且您将能够列出hypervisor可以生成哪些虚拟异常,并描述执行此操作的机制。

开始之前

        假设您对虚拟化有基本的了解,包括什么是虚拟机(VM)以及hypervisor的角色。熟悉异常模型和内存管理中的地址转换。

二、虚拟化介绍

        在这里,我们将介绍一些入门级的hypervisor和虚拟化理论。如果您已经熟悉这些概念

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安全二次方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值