📜  虚拟化 |机器参考模型

📅  最后修改于: 2021-10-21 05:29:12             🧑  作者: Mango

先决条件:虚拟化简介

当执行环境在计算堆栈的不同级别进行虚拟化时,它需要一个参考模型来定义抽象级别内的接口,而这个抽象级别隐藏了实现的细节。
这提出了一个想法,即虚拟化技术可以替代任何一层,并且可以拦截指向它的调用。这就是为什么层内的明确分离可以简化它们的实现,只需要模拟接口和与底层的适当响应。

在基础层,硬件模型是根据体系结构,即指令集体系结构 (ISA) 来声明或体现的。

– 机器参考模型

指令集架构 (ISA)定义了处理器、寄存器、内存和中断管理的指令集。它是软件和硬件之间的接口,对于直接管理核心硬件(用户 ISA)的应用程序的操作系统(OS)开发人员(系统 ISA)开发人员来说是强制性的。操作系统层通过应用程序二进制接口 (ABI) 与由操作系统管理的应用程序和库分开。

应用程序二进制接口 (ABI)涵盖了诸如低级数据类型和调用约定等事实,它还定义了许多程序的格式。主要是在这一层定义了系统调用。此外,这种类型的接口支持跨操作系统的各种应用程序和库的可移植性,这些应用程序和库采用相同的 ABI。应用程序编程接口 (API) 由最高级别的抽象表示。此 API 将应用程序连接到库和/或核心操作系统。对于要在应用程序级 API 中执行的操作,ABI 和负责完成它的两个。主要是,CPU 在两个特权级别上运行:

  1. 用户模式:在此模式下,内存访问受到一定限制,而对外围设备的访问则被拒绝。
  2. 内核模式:在这种模式下,CPU 有管理内存和如何访问的指令,也有允许访问磁盘和网卡等外围设备的指令。从一个正在运行的程序到另一个正在运行的程序,CPU 会自动切换。这种分层的方法简化了计算系统的扩展和应用。这种分层方法简化了多任务处理和多执行共存的应用。

第一个可以在特权和非特权指令中进行。那些可用于中断另一个任务的指令称为非特权指令。之所以这样称呼它们,是因为不访问共享资源。 Ex- 包含所有的定点、浮点和算术指令。在特定限制下执行且经常用于敏感操作(暴露行为敏感或修改控制敏感)的指令称为特权指令

图-安全环和特权模式

期望在 hypervisor 管理的环境中,客户操作系统的代码在用户中运行,以防止其直接访问操作系统的状态。当实施非特权指令时,不再可能完全隔离来宾操作系统。参考:书籍-掌握云计算