CN101373441B - 一种基于固件的虚拟化平台系统 - Google Patents

一种基于固件的虚拟化平台系统 Download PDF

Info

Publication number
CN101373441B
CN101373441B CN 200810200121 CN200810200121A CN101373441B CN 101373441 B CN101373441 B CN 101373441B CN 200810200121 CN200810200121 CN 200810200121 CN 200810200121 A CN200810200121 A CN 200810200121A CN 101373441 B CN101373441 B CN 101373441B
Authority
CN
Grant status
Grant
Patent type
Prior art keywords
operating system
vmm
firmware
module
virtual machine
Prior art date
Application number
CN 200810200121
Other languages
English (en)
Other versions
CN101373441A (zh )
Inventor
保罗·威尔曼
林贻基
胡英
舒曼·拉菲扎德
Original Assignee
苏州壹世通科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Grant date

Links

Abstract

本发明公开了一种基于固件的虚拟化平台系统,保护平台的程序数据和持久性元数据,防止本地操作系统的破坏。其技术方案为:系统包括:操作系统管理程序模块;闪存虚拟操作系统驱动程序模块,该模块包括:扩展固件接口EFI单元,与VMM通讯和请求VMM服务;扩展固件接口模块,安装于固件EFI中,负责运行期操作系统实例发出的验证请求及系统管理的控制协议的实现,包括:扩展磁盘服务单元,动态分区及创建删除虚拟机,内含用于隔离各个操作系统实例的VMM;被保护变量存储区域,用于存储VMM中的可读写持久性数据,以使其只能被该扩展固件接口模块访问;永久性存储器,存储只读的VMM程序数据,以避免对其恶意更改。本发明应用于计算机领域。

Description

一种基于固件的虚拟化平台系统

技术领域

[0001] 本发明涉及一种计算机平台,尤其涉及一种与虚拟机监视器VMM相关的基于固件的虚拟化平台系统。

背景技术

[0002] 操作系统的虚拟化是一项为了在一台物理计算机上安装多个操作系统的已有的技术。近年来,数据中心的建造者已经开始使用虚拟化作为改善服务器性能和其可利用性的一种手段。这就在工业领域和学术研究领域引起了对虚拟化新的兴趣。不仅如此,虚拟化技术在消费市场也同样有机会产生更大的影响。软件开发商往往依赖多个操作系统实例来测试新的软件。PC厂商使用虚拟化的一些技术提供一个可靠的还原点,以便用于操作系统出故障时或感染病毒时。新兴市场的客户使用虚拟化来维护本土语言版本和英语版本的不同操作系统。

[0003] 现有虚拟化架构在RAM中存储临时元数据,并在二级存储器(通常是一个磁盘) 上存储持久性元数据。临时元数据通过操作系统使用传统的虚拟内存技术来防止篡改。对于具有虚拟化能力的现代处理器,CPU的硬件存储器管理单元甚至可以防止有特权的操作系统代码对虚拟内存的未经授权的访问。

[0004] 然而,在用户的虚拟化架构中,持久性程序数据和元数据经常得不到保障,这是因为这些架构通常通过配置并行的操作系统来获得磁盘的直接访问。直接访问磁盘为并行的虚拟操作系统提供了最佳的性能,但它无法防止未经授权的或伪造的磁盘访问。从客户的角度来看,为了得到最佳的性能,可以牺牲一定的安全性,即容忍未经授权的磁盘访问破坏系统中的另一个操作系统的风险。但是,不能容忍整个系统不可启动或者VMM完全无法使用。

[0005] 通常情况下,当操作系统拥有直接磁盘权限时,无法防止操作系统存取磁盘的任何部分,因此有可能损害VMM的持久性数据。这包括描述硬件资源的静态分区配置的元数据和每个虚拟操作系统环境的定义。持久性数据还包括VMM的可执行程序。因此,一个未经授权的磁盘区域的写入操作会带来灾难性的后果,包括配置数据的销毁,或者一个系统分区规则的破坏,两者都会使整个系统陷入无法恢复、无法启动的状态。

[0006] 在服务器和用户部署中,系统的虚拟机监视器VMM软件保持其不可侵犯性是至关重要的。但是如上所述,目前的虚拟化架构将重要的VMM数据存储在磁盘上,它可以被计算机中任一操作系统访问。由于用户的虚拟环境不稳定、经常感染病毒、实验性代码故障和传统操作系统的破坏性行为,一般的操作系统中的整个虚拟化架构很容易受到侵害,并且难以挽救。

发明内容

[0007] 本发明的目的在于解决上述问题,提供了一种基于固件的虚拟化平台系统,保护平台的程序数据和持久性元数据,防止本地操作系统的破坏。[0008] 本发明的技术方案为:本发明揭示了一种基于固件的虚拟化平台系统,将虚拟机监视器VMM中的持久性数据放置在一个永久性存储器中,并利用该永久性存储器的固件从操作系统启动时就隐藏该永久性存储器,该虚拟化平台系统包括:

[0009] 操作系统管理程序模块,安装于每个操作系统实例的用户空间内,为在操作系统环境下执行虚拟化任务和资源管理提供方便,允许用户通过虚拟机监视器VMM给予的认证设置任务的优先级,在多个运行期操作系统之间管理和分配物理资源,创造或销毁操作系统实例;

[0010] 闪存虚拟操作系统驱动程序模块,安装于每个操作系统实例的内核中,由操作系统管理程序模块调用,与操作系统实例进行交互,该模块包括:

[0011] 磁盘服务单元,在虚拟机监视器VMM许可下格式化和分配磁盘资源;

[0012] 扩展固件接口 EFI单元,与该虚拟机监视器VMM进行通讯和请求VMM服务,VMM服务包括分配物理资源、构建或销毁操作系统实例和修改已有操作系统实例的状态;

[0013] 扩展固件接口模块,安装于固件EFI中,负责运行期的操作系统实例发出的验证请求以及系统管理的控制协议的实现,该模块进一步包括:

[0014] 扩展磁盘服务单元,用于进行动态分区以及创建删除虚拟机,内含用于隔离各个操作系统实例的虚拟机监视器VMM,用于进行系统的虚拟化以及分区指引;

[0015] 被保护变量存储区域,存储VMM中的可读写持久性数据,用于确定当前运行的操作系统实例所分配的资源,运行期操作系统没有直接访问被保护变量存储区域的权限,其中持久性数据只能通过该扩展固件接口模块访问;

[0016] 永久性存储器,存储只读的虚拟机监视器VMM程序数据,以避免对VMM程序数据的恶意更改。

[0017] 上述的基于固件的虚拟化平台系统,其中,该永久性存储器是外部即插即用存储

ο

[0018] 上述的基于固件的虚拟化平台系统,其中,该永久性存储器是闪存阵列存储器。

[0019] 本发明对比现有技术有如下的有益效果:在现有的虚拟化解决方案中,运行期操作系统有权直接访问磁盘资源,现有的虚拟化结构无法防止操作系统的故障和恶意篡改对数据的破坏,因而无法提供对虚拟化平台的程序数据和持久性元数据(比如配置信息)的保护。本发明利用EFI建立一个可扩展的模块,该模块可分配系统资源给普通的单个或多个操作系统。该模块还可以支持将只读的VMM程序数据存储在一个已配置好的外部的只读的即插即用存储设备中,少量的可读写持久性虚拟元数据(通常是64KB或更少)能够存储到EFI平台上的只能够被EFI模块访问的被保护变量区域中。这样,本发明就能模块化地将持久性元数据和平台程序数据放到操作系统无法写入的地方,既允许一个认证用户在运行期或启动时控制和分配资源,同时又能防止未授权用户或操作系统的故障损坏虚拟机平台的重要数据。

附图说明

[0020] 图1是本发明的基于固件的虚拟化平台系统的较佳实施例的原理图。 具体实施方式[0021] 下面结合附图和实施例对本发明作进一步的描述。

[0022] 图1示出了本发明的基于固件的虚拟化平台系统的较佳实施例的原理。请参见图 1,基于固件的虚拟化平台系统的实施例包括操作系统管理程序模块10、闪存虚拟操作系统驱动程序模块20、扩展固件接口模块30以及永久性存储器40。

[0023] 操作系统管理程序模块(OS Manager) 10安装在每个操作系统实例的用户空间内, 为在普通操作系统环境下执行虚拟化任务和资源管理提供了方便。操作系统管理程序模块 10允许用户通过底层虚拟机监视器(VMM) 3000给予的适当认证,设置任务的优先级,在多个运行期操作系统实例之间管理和分配物理资源(如I/O和内存),创造或销毁操作系统的实例。对于新建一个操作系统实例,操作系统管理程序中的一个关键功能是磁盘资源管理。 磁盘资源管理包括:用户空间的操作系统管理程序使用户能够创建新的虚拟磁盘分区来放置新的操作系统实例;格式化现有分区的文件系统;将虚拟分区分配给一个或多个操作系统实例。以这种方式,操作系统管理程序使用户能够灵活地控制其存储资源,这是建立操作系统虚拟机和多个操作系统实例之间的数据共享的基础(就像用户在多个操作系统实例之间共享应用程序或数据时情况一样)。

[0024] 闪存虚拟操作系统驱动程序(Flash VOS Driver)模块20安装于每个操作系统实例的内核(Kernel)中,由操作系统管理程序模块10调用,与操作系统实例进行交互。闪存虚拟操作系统驱动程序模块20包括磁盘服务单元200和扩展固件接口 EFI单元202,其中磁盘服务单元200在虚拟机监视器VMM 3000许可下格式化和分配磁盘资源,而扩展固件接口 EFI单元202与虚拟机监视器VMM 3000进行通讯和请求VMM服务,VMM服务包括分配物理资源、构建或销毁操作系统实例和修改已有操作系统实例的状态(比如挂起或者恢复)。

[0025] 扩展固件接口模块(Flash VOS EFI) 30安装于固件EFI中,是在传统的EFI组件, 例如传统的启动服务(Boot Services)单元301、文件系统驱动(File-system Drivers) 单元302、控制台服务(Console Services)单元303、设备配置服务(Device Configure Services)单元 304、遗留 BIOS 接口(Legacy BIOS Interface)单元 305,旁边的另一个模块,负责运行期的操作系统所发出的验证请求以及系统管理的控制协议的实现。扩展固件接口模块30包括扩展磁盘服务单元300和被保护变量存储区域(未图示),扩展磁盘服务单元300用于进行动态分区以及创建、删除虚拟机,可进行系统的虚拟化以及分区指引,内含用于隔离各个操作系统实例的虚拟机监视器VMM 3000。被保护变量存储区域用于存储 VMM中的可读写持久性数据,用于确定给当前运行的哪些操作系统实例分配什么资源,持久性数据存储在被保护变量存储区域中可使其只能被扩展固件接口模块30访问,避免元数据被恶意更改。这个扩展接口固件模块30也包含一个启动时的操作系统管理器,允许用户执行和用户空间操作系统管理程序模块10相同的功能,只是这个操作系统管理器在EFI启动控制台而已。启动时的操作系统管理器在系统没有任何操作系统时通过配置一个新的系统来设立操作系统环境。一旦建立了至少一个操作系统,用户既可以使用运行期用户空间操作系统管理程序模块10,也可以使用启动时基于EFI的操作系统管理器。

[0026] 永久性存储器40存储只读的虚拟机监视器VMM程序数据,以避免对VMM程序数据的恶意更改。这个永久性存储器40可以是外部即插即用存储器,也可以是闪存阵列存储器。VMM程序数据存储在这个永久性存储器40中并使其只读。

[0027] 上述实施例是提供给本领域普通技术人员来实现或使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。

Claims (3)

1. 一种基于固件的虚拟化平台系统,将虚拟机监视器VMM中的持久性数据放置在一个永久性存储器中,并利用该永久性存储器的固件从操作系统启动时就隐藏该永久性存储器,该虚拟化平台系统包括:操作系统管理程序模块,安装于每个操作系统实例的用户空间内,为在操作系统环境下执行虚拟化任务和资源管理提供方便,允许用户通过虚拟机监视器VMM给予的认证设置任务的优先级,在多个运行期操作系统之间管理和分配物理资源,创造或销毁操作系统实例;闪存虚拟操作系统驱动程序模块,安装于每个操作系统实例的内核中,由操作系统管理程序模块调用,与操作系统实例进行交互,该模块包括:磁盘服务单元,在虚拟机监视器VMM许可下格式化和分配磁盘资源; 扩展固件接口 EFI单元,与该虚拟机监视器VMM进行通讯和请求VMM服务,VMM服务包括分配物理资源、构建或销毁操作系统实例和修改已有操作系统实例的状态;扩展固件接口模块,安装于固件EFI中,负责运行期的操作系统实例发出的验证请求以及系统管理的控制协议的实现,该模块进一步包括:扩展磁盘服务单元,用于进行动态分区以及创建删除虚拟机,内含用于隔离各个操作系统实例的虚拟机监视器VMM,用于进行系统的虚拟化以及分区指引;被保护变量存储区域,存储VMM中的可读写持久性数据,用于确定当前运行的操作系统实例所分配的资源,运行期操作系统没有直接访问被保护变量存储区域的权限,其中的持久性数据只能通过该扩展固件接口模块访问;永久性存储器,存储只读的虚拟机监视器VMM程序数据,以避免对VMM程序数据的恶意更改。
2.根据权利要求1所述的基于固件的虚拟化平台系统,其特征在于,该永久性存储器是外部即插即用存储器。
3.根据权利要求1所述的基于固件的虚拟化平台系统,其特征在于,该永久性存储器是闪存阵列存储器。
CN 200810200121 2008-09-19 2008-09-19 一种基于固件的虚拟化平台系统 CN101373441B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200810200121 CN101373441B (zh) 2008-09-19 2008-09-19 一种基于固件的虚拟化平台系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200810200121 CN101373441B (zh) 2008-09-19 2008-09-19 一种基于固件的虚拟化平台系统

Publications (2)

Publication Number Publication Date
CN101373441A true CN101373441A (zh) 2009-02-25
CN101373441B true CN101373441B (zh) 2012-04-18

Family

ID=40447616

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200810200121 CN101373441B (zh) 2008-09-19 2008-09-19 一种基于固件的虚拟化平台系统

Country Status (1)

Country Link
CN (1) CN101373441B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101539868B (zh) 2009-04-10 2010-12-08 北京大学 一种虚拟机管理器的客户操作系统内核代码动态替换方法
CN102110007B (zh) 2009-12-29 2014-01-29 中国长城计算机深圳股份有限公司 一种bios/uefi与虚拟机监控器交互方法及系统
CN102024114B (zh) * 2011-01-14 2012-11-28 上海交通大学 基于统一可扩展固定接口的恶意代码防范方法
CN102521016A (zh) * 2011-12-08 2012-06-27 中兴通讯股份有限公司 一种运行多个虚拟机的方法及系统
US8583920B1 (en) * 2012-04-25 2013-11-12 Citrix Systems, Inc. Secure administration of virtual machines
CN102708330B (zh) * 2012-05-10 2015-07-08 深信服网络科技(深圳)有限公司 一种防止系统被入侵的方法、入侵防御系统及计算机
CN103034526B (zh) * 2012-12-06 2016-04-13 中国电信股份有限公司 一种虚拟化服务的实现方法和装置
CN104714821B (zh) * 2013-12-17 2018-07-31 华为技术有限公司 操作系统实例创建方法及装置
CN104102709A (zh) * 2014-07-14 2014-10-15 浪潮(北京)电子信息产业有限公司 一种磁盘管理方法及数据库管理系统
CN104598309B (zh) * 2014-12-31 2017-12-22 中科创达软件股份有限公司 基于os虚拟化的多模式os的系统和其创建、切换方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1585927A (zh) 2001-09-27 2005-02-23 英特尔公司 用于提供系统完整性和遗留环境模拟的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1585927A (zh) 2001-09-27 2005-02-23 英特尔公司 用于提供系统完整性和遗留环境模拟的方法

Also Published As

Publication number Publication date Type
CN101373441A (zh) 2009-02-25 application

Similar Documents

Publication Publication Date Title
US7356677B1 (en) Computer system capable of fast switching between multiple operating systems and applications
US6862681B2 (en) Method and system for master boot record recovery
US6993649B2 (en) Method of altering a computer operating system to boot and run from protected media
US7526774B1 (en) Two-level service model in operating system partitions
Peinado et al. NGSCB: A trusted open system
US20050210467A1 (en) Sharing trusted hardware across multiple operational environments
US20070067366A1 (en) Scalable partition memory mapping system
US20030188173A1 (en) Hardened extended firmware interface framework
US20090119087A1 (en) Pass-through and emulation in a virtual machine environment
US20090172661A1 (en) Method and system for establishing a robust virtualized environment
US7434224B2 (en) Plural operating systems having interrupts for all operating systems processed by the highest priority operating system
US20080120499A1 (en) Methods and apparatus for defeating malware
US20090319806A1 (en) Extensible pre-boot authentication
US20090260007A1 (en) Provisioning Storage-Optimized Virtual Machines Within a Virtual Desktop Environment
US20050091365A1 (en) Interposing a virtual machine monitor and devirtualizing computer hardware
US20090328195A1 (en) Authentication and Access Protection of Computer Boot Modules in Run-Time Environments
US20100318997A1 (en) Annotating virtual application processes
US20110131447A1 (en) Automated modular and secure boot firmware update
Bolte et al. Non-intrusive virtualization management using libvirt
US20090169020A1 (en) Migration of full-disk encrypted virtualized storage between blade servers
US20070106993A1 (en) Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
US20100031325A1 (en) System for enabling multiple execution environments to share a device
US20050125537A1 (en) Method, apparatus and system for resource sharing in grid computing networks
US7865663B1 (en) SCSI protocol emulation for virtual storage device stored on NAS device
US7380049B2 (en) Memory protection within a virtual partition

Legal Events

Date Code Title Description
C06 Publication
C10 Request of examination as to substance
C14 Granted