IP Library Granted Patent US 8,127,292
Granted Patent B1
US 8,127,292 · App. 12/143,893 · Granted Feb 28, 2012

Virtualization system with hypervisor embedded in bios or using extensible firmware interface

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,127,292
App. No.
12/143,893
Granted
Feb 28, 2012
Kind
B1
Abstract

A computer system includes a first portion of a Hypervisor is loaded into the memory as a part of an Extensible Firmware Interface upon start up and prior to loading of an operating system. The first portion is responsible for context switching, at least some interrupt handling, and memory protection fault handling. The first portion runs on a root level. An operating system is loaded into a highest privilege level. A second portion of the Hypervisor is loaded into operating system space together with the operating system, and runs on the highest privilege level, and is responsible for (a) servicing the VMM, (b) servicing the VMs, (c) enabling communication between code launched on non-root level with the second portion of the Hypervisor to perform security checks of trusted code portions and to enable root mode for the code portions if allowable. The VMM runs on the highest privilege level. A Virtual Machine is running under control of the VMM. Trusted code runs on non-root level. The first portion of the Hypervisor verifies trusted code portions during their loading or launch time, and the trusted code is executed on root level.

Claims (47)

1. A computer system comprising:

a processor;

a random-access memory (RAM) operatively coupled to the processor;

a first portion of a Hypervisor loaded into the memory as a part of an Extensible Firmware Interface upon start up and prior to loading of an operating system, wherein the first portion is responsible for context switching, at least a part of interrupt handling, and memory protection fault handling,

wherein the first portion of the Hypervisor runs on a root level;

an operating system loaded into a highest non-root privilege level;

a second portion of the Hypervisor loaded into operating system space together with the operating system, and running on the highest non-root privilege level;

a Virtual Machine Monitor (VMM) running on the highest privilege level,

wherein the second portion of the Hypervisor is responsible for any of (a) servicing the VMM, (b) enabling communication between code launched on non-root level with the first portion of the Hypervisor to perform security checks of trusted code portions of the VMM and to enable root mode for the code portions if allowable; and

at least one Virtual Machine (VM) running on a user level under control of the VMM.

2. The system of claim 1 , wherein the data needed for execution of the two Hypervisor portions is obtained from EFI.

3. The system of claim 1 , wherein Trusted Execution technology (TXT) is used for protection of the first Hypervisor portion.

4. The system of claim 1 , wherein:

trusted code runs on non-root level;

the first portion of the Hypervisor verifies trusted code portions during their loading or launch time; and

the trusted code is executed on root level.

5. The system of claim 4 , wherein Intel Trusted Execution technology (TXT) is used for protection of trusted code portions.

6. The system of claim 1 , wherein the VMM is de-privileged to non-root level 0 and the VM is launched on non-root level 3.

7. The system of claim 4 , wherein the VMM is launched on root level as trusted code portions.

8. The system of claim 7 , wherein the primary OS is de-privileged to non-root level.

9. A computer system comprising:

a processor;

a memory operatively coupled to the processor;

an Extensible Firmware Interface (EFI) as a layer between the computing system's firmware, hardware, and the operating system;

a first portion of a Hypervisor loaded into the memory as a part of the Extensible Firmware Interface upon start up and prior to loading of an operating system, wherein the first portion is responsible for organizing root and non-root contexts and switching between the root and non-root contexts, unprivileged event (interrupt) handling, and memory protection fault handling,

wherein the first portion of the Hypervisor runs on a root level;

an operating system loaded into a highest non-root level;

a second portion of the Hypervisor loaded into operating system space together with the operating system (OS), and running on the same privilege level as the OS,

wherein the second portion of the Hypervisor is responsible for enabling communication between code launched on non-root level with the first portion to perform security checks of trusted code portions of a Virtual Machine Monitor and to enable root mode for the code portions if allowable; and

a Virtual Machine running on a user level under control of the Virtual Machine Monitor.

10. The system of claim 8 , wherein the two Hypervisor portions are combined in a single EFI.

11. The system of claim 8 , wherein Trusted Execution technology (TXT) is used for protection of the first Hypervisor portion.

12. The system of claim 8 , wherein:

trusted code runs on non-root level;

the first portion of the Hypervisor verifies trusted code portions during their loading or launch time; and

the trusted code can be executed on root level.

13. The system of claim 11 , wherein Intel Trusted Execution technology (TXT) is used for protection of trusted code portions.

14. The system of claim 8 , wherein Virtual Machine Monitor (VMM) is launched through the Hypervisor.

15. The system of claim 13 , wherein the VMM is launched on non-root level 0.

16. A method for virtualizing a computer system, the method comprising:

loading a first portion of a Hypervisor into a memory of the computer system as a part of an Extensible Firmware Interface upon start up and prior to loading of an operating system, wherein the first portion is responsible for context switching, at least a part of interrupt handling, and memory protection fault handling,

wherein the first portion of the Hypervisor runs on a root level;

loading an operating system into a highest non-root privilege level;

loading a second portion of the Hypervisor into operating system space together with the operating system, and so that the second portion runs on the highest non-root privilege level;

starting a Virtual Machine Monitor (VMM) on the highest non-root privilege level,

wherein the second portion of the Hypervisor is responsible for any of (a) servicing the VMM, (b) enabling communication between code launched on non-root level with the first portion of the Hypervisor to perform security checks of trusted code portions of the VMM and to enable root mode for the code portions if allowable; and

starting at least one Virtual Machine on a user level under control of the VMM.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2019
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AND COLLATERAL AGENT
To: COREL CORPORATION; CLEARSLIDE, INC.; PARALLELS INTERNATIONAL GMBH
Reel/Frame 049787/0073 →
RELEASE OF SECURITY INTEREST RECORDED AT : REEL 047973 FRAME 0797 Recorded Jul 17, 2019
From: UBS AG, STAMFORD BRANCH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 049773/0590 →
SECURITY INTEREST Recorded Dec 21, 2018
From: PARALLELS INTERNATIONAL GMBH
To: UBS AG, STAMFORD BRANCH
Reel/Frame 047973/0797 →
MERGER Recorded Mar 6, 2018
From: PARALLELS IP HOLDINGS GMBH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 045122/0592 →
RELEASE OF SECURITY INTEREST Recorded Dec 14, 2015
From: SILICON VALLEY BANK
To: PARALLELS HOLDINGS LTD. (F/K/A SWSOFT HOLDINGS LTD.)
Reel/Frame 037289/0685 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2012
From: PARALLELS HOLDINGS, LTD.
To: PARALLELS IP HOLDINGS GMBH
Reel/Frame 027916/0689 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2011
From: PARALLELS SOFTWARE INTERNATIONAL, INC.
To: PARALLELS HOLDINGS, LTD.
Reel/Frame 027467/0328 →
SECURITY AGREEMENT Recorded Apr 3, 2010
From: PARALLELS HOLDINGS, LTD.
To: SILICON VALLEY BANK
Reel/Frame 024170/0853 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2008
From: KORYAKIN, ALEXEY B.; TORMASOV, ALEXANDER G.; DOBROVOLSKIY, NIKOLAY N.
To: PARALLELS SOFTWARE INTERNATIONAL, INC.
Reel/Frame 021133/0556 →