网站首页 > 技术文章 正文
微软本月早些时候发布了用 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专业工作站版
你 发表评论:
欢迎- 482℃几个Oracle空值处理函数 oracle处理null值的函数
- 477℃Oracle分析函数之Lag和Lead()使用
- 477℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 462℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 457℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 452℃【数据统计分析】详解Oracle分组函数之CUBE
- 434℃Oracle有哪些常见的函数? oracle中常用的函数
- 431℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 最近发表
-
- Spring Boot跨域难题终结者:3种方案,从此告别CORS噩梦!
- 京东大佬问我,SpringBoot为什么会出现跨域问题?如何解决?
- 在 Spring Boot3 中轻松解决接口跨域访问问题
- 最常见五种跨域解决方案(常见跨域及其解决方案)
- Java Web开发中优雅应对跨域问题(java跨域问题解决办法)
- Spring Boot解决跨域最全指南:从入门到放弃?不,到根治!
- Spring Boot跨域问题终极解决方案:3种方案彻底告别CORS错误
- Spring Cloud 轻松解决跨域,别再乱用了
- Github 太狠了,居然把 "master" 干掉了
- IntelliJ IDEA 调试 Java 8,实在太香了
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)