网站首页 > 技术文章 正文
微软本月早些时候发布了用 Rust 编写的新管理程序/虚拟机监控程序(VMM)的代码。
OpenVMM是第二类管理程序,运行在操作系统之上,这与第一类管理程序不同,后者运行在裸机之上并直接与硬件交互。因此,它更类似于Oracle VM VirtualBox、VMware Workstation 或 Microsoft Virtual PC,而不是VMware ESXi、KVM 或 Microsoft Hyper-V。
事实证明,Rust在虚拟化领域相当受欢迎。云管理程序Cloud Hypervisor是用Rust编写的第二类VMM,可追溯到2019年。亚马逊和谷歌也开发了基于Rust的VMM,分别是Firecracker(类型1)和 crosvm(类型2)。
不过,OpenVMM还在不断完善中,微软警告说,它还没有准备好用于生产,并指出它在传统主机环境中的运行体验并不那么令人愉快。
该项目网站称:“目前,主机上的OpenVMM还不能用于运行最终用户工作负载,应将其视为实现OpenVMM新功能的开发平台,而不是可随时部署的应用程序。”
此外,该软件的管理界面还没有完善的文档记录,设备性能仍未优化,某些功能缺失,API也没有稳定性保证。
但除此以外,该项目至少表明微软和其他同行一样,正在扩大Rust的覆盖范围,以提供更强的内存安全保证——这已成为一项国际任务,因为安全问题已变得相当重要。微软的开发人员还表达了他们对Rust的现代语言特性、crates生态系统、分析工具以及仍然使用 C API 直接与硬件对话的能力的赞赏。
OpenVMM可在Linux(x64,通过 KVM 或 MSHV API)、macOS(Aarch64,通过 Hypervisor.framework API)和Windows(x64 和Aarch64,通过Windows Hypervisor Platform API)上运行。
OpenVMM的开发主要是为了与 OpenHCL 配合使用,OpenHCL是基于Linux的辅助虚拟化层,用于保密虚拟机,也是用Rust构建的。正如上个月在奥地利维也纳举行的Linux Plumbers大会上所讨论的,OpenHCL是一种将 OpenVMM 作为paravisor(准管理程序)运行的执行环境。
和运行在独立主机或者根分区中的管理程序不同,paravisor以更高的权限级别在客户机中运行。
正如会议演讲所解释的,“客户机操作系统通常需要修改,即所谓的enlightments,才能在不同的机密计算架构(如 AMD SEV-SNP 或 Intel TDX)下运行。要支持未开放的客户机,需要一个名为paravisor的软件组件。”
“paravisor在客户机中以更高的权限级别运行,以提供适当的抽象和安全保证,而未开放客户机无法实现这些功能。paravisor还可以提供额外的服务,如仿真设备(如TPM,可信平台模块)或主机与未开放的客户机之间的设备转换。”
为什么要这么做?对微软来说,这种方法允许现有工作负载使用其Azure Boost硬件加速器,而无需修改客户虚拟机映像——客户可以通过新的虚拟化层直接访问更快的IO和安全功能,而不是通过主机。它还允许现有操作系统在硬件支持的Confidential VMs中运行,并支持Trusted Launch VMs。
在未来的某个时候,OpenVMM 可能会得到足够的完善,使用起来就不会那么痛苦了。
猜你喜欢
- 2024-11-09 vmware虚拟机共享文件夹显示不出来的解决办法
- 2024-11-09 开源到底:开源免费虚拟机软件 开源 虚拟化
- 2024-11-09 Docker vs. VM 死神vs火影玩入口
- 2024-11-09 想要一款小巧精美的虚拟机软件?VirtualBox可能是你的菜
- 2024-11-09 开源虚机!VirtualBox 5.0官方发布(下载)
- 2024-11-09 再见虚拟机!聊聊PC端运行Docker的正确姿势
- 2024-11-09 虚拟机怎么安装与配置:新手指南 虚拟机安装设置教程
- 2024-11-09 超详细的centos8安装部署虚拟化工具--VirtualBox 6.0教程分享
- 2024-11-09 基于CentOS 8 /RHEL 8上安装虚拟化工具--VirtualBox 6.0
- 2024-11-09 如何用虚拟机VirtualBox安装win11 23H2专业工作站版
你 发表评论:
欢迎- 616℃几个Oracle空值处理函数 oracle处理null值的函数
- 609℃Oracle分析函数之Lag和Lead()使用
- 598℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 594℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 590℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 581℃【数据统计分析】详解Oracle分组函数之CUBE
- 571℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 560℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)