System and method for virtualizing computer systems
DCFirst Claim
1. A virtualization system for a computer, in whichthe computer includes a host processor, which has a processor state, physical system devices, and a host operating system (HOS), and the computer is operationally divided into a system level and a user level, the HOS is at the system level, the host processor accepting and carrying out a pre-determined set of privileged instruction calls only from sub-systems at the system level, the virtualization system comprising:
- at least one virtual machine monitor (VMM) also at the system level, both the VMM and the HOS thus being able to independently issue both privileged and non-privileged instructions for execution by the processor and to independently modify the processor state.
2 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A virtual machine monitor (VMM) is included in a computer system that has a protected host operating system (HOS). A virtual machine running at least one application via a virtual operating system is connected to the VMM. Both the HOS and the VMM have separate operating contexts and disjoint address spaces, but are both co-resident at system level. A driver that is downloadable into the HOS at system level forms a total context switch between the VMM and HOS contexts. A user-level emulator accepts commands from the VMM via the system-level driver and processes these commands as remote procedure calls. The emulator is able to issue host operating system calls and thereby access the physical system devices via the host operating system. The host operating system itself thus handles execution of certain VMM instructions, such as accessing physical devices.
-
Citations
21 Claims
-
1. A virtualization system for a computer, in which
the computer includes a host processor, which has a processor state, physical system devices, and a host operating system (HOS), and the computer is operationally divided into a system level and a user level, the HOS is at the system level, the host processor accepting and carrying out a pre-determined set of privileged instruction calls only from sub-systems at the system level, the virtualization system comprising: -
at least one virtual machine monitor (VMM) also at the system level, both the VMM and the HOS thus being able to independently issue both privileged and non-privileged instructions for execution by the processor and to independently modify the processor state. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
a driver that is resident in the host operating system, in which;
the host operating system has a host operating system (HOS) context;
each virtual machine monitor has a corresponding virtual machine monitor (VMM) context;
the driver forms a first context-switching means for saving the HOS context and for switching from the HOS context to the VMM context;
the virtual machine monitor includes a second context-switching means for saving the VMM context and for switching from the VMM context to the HOS context; and
the driver further forms a means for accepting commands from the VMM and for processing the accepted commands in the HOS context.
-
-
3. A virtualization system as defined in claim 2, further comprising:
-
a memory having a predetermined physical address space and a memory management unit (MMU) that converts virtual addresses into physical addresses of the memory'"'"'s physical address space;
in which;
the host operating system has a first address space, in which HOS context parameters are stored;
the virtual machine-monitor has a second address space, in which VMM context parameters are stored;
the first and second address spaces are disjoint, with the HOS and VMM context parameters representing different interrupt and exception entry points for the host operating system and the virtual machine monitor, respectively; and
the first context-switching means is further provided for switching between the HOS and VMM contexts by selectively setting internal registers of the host processor to correspond to the HOS and VMM context parameters, respectively.
-
-
4. A virtualization system as defined in claim 3, further comprising:
-
a device emulator at user level and operatively connected to the host operating system, in which;
the device emulator forms user-level processing means;
for accepting commands from the VMM via the driver and for;
processing these commands; and
for issuing host operating system calls and for thereby accessing the physical system devices via the host operating system.
-
-
5. A virtualization system as defined in claim 4, further comprising:
at least one virtual machine at user level that includes at least one associated application and a virtual operating system, and that is operatively connected to the virtual machine monitor, an entire programmable virtual address space of the computer thereby being available to both the virtual machine and the virtual machine monitor.
-
6. A virtualization system as defined in claim 2, in which the driver is loaded into the host operating system after installation of the HOS in the computer.
-
7. A virtualization system as defined in claim 1, further comprising:
-
a driver that is resident in the host operating system;
an emulator at user level and operatively connected as an application to the host operating system;
in which;
the driver forms a system-level means for passing;
first instruction calls from the virtual machine monitor directly to the host operating system, the system devices, and the processor;
second instruction calls from the virtual machine monitor, via the emulator, to the host operating system, the host operating system itself thereby handling execution of the second instruction calls; and
data to the virtual machine monitor in response to the first and second instruction calls received both via the emulator and directly from the system devices, the processor and the host operating system.
-
-
8. A virtualization system as defined in claim 1, in which:
-
the host operating system has a host operating system (HOS) context;
each virtual machine monitor has a corresponding virtual machine monitor (VMM) context;
further comprising;
driver/emulator means that is resident in the host operating system for saving the HOS context and for switching from the HOS context to the VMM context;
a user-level shell application for initiating the instruction calls in the HOS;
the virtual machine monitor including VMM-based context-switching means for saving the VMM context and for switching from the VMM context to the HOS context;
the driver/emulator means being provided for accepting commands from the VMM and for processing the accepted commands in the HOS context.
-
-
9. A virtualization system for a computer, in which
the computer includes a host processor, which has a processor state, physical system devices, and a host operating system (HOS), and the computer is operationally divided into a system level and a user level, the HOS is at the system level, the host processor accepting and carrying out a pre-determined set of privileged instruction calls only from sub-systems at the system level, the virtualization system comprising: -
at least one virtual machine monitor (VMM) also at the system level, both the VMM and the HOS thus being able to independently issue both privileged and non-privileged instructions for execution by the processor and to independently modify the processor state;
a driver that is loaded into and resident in the host operating system;
a memory having a predetermined physical address space and a memory management unit (MMU) that converts virtual addresses into physical addresses of the memory'"'"'s physical address space;
a device emulator at user level and operatively connected to the host operating system;
at least one virtual machine at user level that includes at least one associated application and a virtual operating system, and that is operatively connected to the virtual machine monitor, an entire programmable virtual address space of the computer thereby being available to both the virtual machine and the virtual machine monitor;
in which;
the host operating system has a host operating system (HOS) context;
each virtual machine monitor has a corresponding virtual machine monitor (VMM) context;
the driver forms a first context-switching means for saving the HOS context and for switching from the HOS context to the VMM context;
the virtual machine monitor includes a second context-switching means for saving the VMM context and for switching from the VMM context to the HOS context;
the driver further forms a means for accepting commands from the VMM and for processing the accepted commands in the HOS context;
the host operating system has a first address space, in which HOS context parameters are stored;
the virtual machine monitor has a second address space, in which VMM context parameters are stored;
the first and second address spaces are disjoint, with the HOS and VMM context parameters representing different interrupt and exception entry points for the host operating system and the virtual machine monitor, respectively;
the first context-switching means is further provided for switching between the HOS and VMM contexts by selectively setting internal registers of the host processor to correspond to the HOS and VMM context parameters, respectively; and
the device emulator forms user-level processing means;
for accepting commands from the VMM via the driver and for processing these commands; and
for issuing host operating system calls and for thereby accessing the physical system devices via the host operating system.
-
-
10. A method for virtualizing a computer, where
the computer includes a host processor, which has a processor state, physical system devices, and a host operating system (HOS), and the computer is operationally divided into a system level and a user level, the HOS is at the system level, the host processor accepting and carrying out a pre-determined set of privileged instruction calls only from sub-systems at the system level, the virtualization method comprising the following steps: -
installing at least one virtual machine monitor (VMM) at the system level, both the VMM and the HOS thus being able to independently issue both privileged and non-privileged instructions for execution by the processor and to independently modify the processor state. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
installing a driver to be resident in the host operating system;
saving in the driver a host operating system (HOS) context;
saving in the virtual machine monitor a corresponding virtual machine monitor (VMM) context;
switching from the HOS context to the VMM context in the driver;
switching from the VMM context to the HOS context in the virtual machine monitor; and
in the driver, processing in the HOS context commands issued by the virtual machine monitor.
-
-
12. A virtualization method as defined in claim 11, further comprising the following steps:
-
assigning to a memory a predetermined physical address space;
converting virtual addresses into physical addresses of the memory'"'"'s physical address space in a memory management unit (MMU);
storing HOS context parameters in a first virtual address space in the host operating system and storing VMM context parameters the virtual machine monitor in a second virtual address space, which is disjoint from the first virtual address space, the HOS and VMM context parameters representing different interrupt and exception entry points for the host operating system and the virtual machine monitor, respectively; and
switching between the HOS and VMM contexts by selectively setting internal registers of the host processor to correspond to the HOS and VMM context parameters, respectively.
-
-
13. A virtualization method as defined in claim 12, further comprising the following steps:
-
installing a device emulator at user level to be operatively connected to the host operating system; and
in the device emulator, accepting commands from the VMM via the driver and processing these commands; and
issuing host operating system calls and thereby accessing the physical system devices via the host operating system.
-
-
14. A virtualization system as defined in claim 13, further comprising the following steps:
installing at least one virtual machine at user level that includes at least one associated application and a virtual operating system, and that is operatively connected to the virtual machine monitor, an entire programmable virtual address space of the computer thereby being available to both the virtual machine and the virtual machine monitor.
-
15. A virtualization method as defined in claim 13, in which the step of processing commands in the device emulator via the driver comprises processing the commands as remote procedure calls.
-
16. A virtualization method as defined in claim 11, in which the step of processing commands in the driver in the HOS context comprises processing the commands as remote procedure calls.
-
17. A virtualization method as defined in claim 10, further comprising the following steps:
-
loading a system-level driver into the host operating system;
installing an emulator at user level to be operatively connected as an application to the host operating system;
in the driver, passing;
first instruction calls from the virtual machine monitor directly to the host operating system, the system devices, and the processor;
second instruction calls from the virtual machine monitor, via the emulator, to the host operating system;
data to the virtual machine monitor in response to the first and second instruction calls received both via the emulator and directly from the system devices, the processor and the host operating system; and
executing the second instruction calls directly in the host operating system.
-
-
18. In a computer system that has a hardware processor including an interrupt table pointer register and an operating system (OS), which includes a first interrupt vector table and a first set of state parameters, and a sub-system, which includes a second interrupt table vector, a second set of state parameters, and is contextually separated from the OS, a method for enabling interrupt handling in the sub-system comprising the following steps:
-
installing a system-level driver into the operating system;
in an OS context, accessing the interrupt table pointer register from the driver and setting the interrupt table pointer register to point to the first interrupt table vector, and storing the second set of state parameters, whereby interrupts are routed for handling to the OS; and
in a sub-system context, accessing the interrupt table pointer register from the driver and setting the interrupt table pointer register to point to the second interrupt table vector, and storing the first set of state parameters, whereby the interrupts are routed for handling to the sub-system. - View Dependent Claims (19)
in the sub-system context, handling external interrupts by restoring the OS context by restoring the first state parameters, and forwarding the external interrupts for processing by the OS.
-
-
20. A virtualization system for a computer, in which
the computer includes a host processor, which has a processor state, physical system devices, and a host operating system (HOS); - and
the computer is operationally divided into a system level and a user level;
the HOS is at the system level and has a host operating system (HOS) context;
the host processor accepting and carrying out a pre-determined set of privileged instruction calls only from sub-systems at the system level;
the virtualization system comprising;
at least one virtual machine monitor (VMM) that has a VMM context and is also at the system level, both the VMM and the HOS being able to independently issue both privileged and non-privileged instructions for execution by the processor and thus to independently modify the processor state;
a first context-switching means for saving the HOS context and for switching from the HOS context to the VMM context;
a second context-switching means, included in the VMM, for saving the VMM context and for switching from the VMM context to the HOS context; and
means for accepting commands from the VMM and for processing the accepted commands in the HOS context.
- and
-
21. A virtualization system for a computer, in which
the computer includes a host processor, which has a processor state, physical system devices, and a host operating system (HOS); - and
the computer is operationally divided into a system level and a user level;
the HOS is at the system level and has a host operating system (HOS) context;
the host processor accepting and carrying out a pre-determined set of privileged instruction calls only from sub-systems at the system level;
the virtualization system comprising;
at least one virtual machine monitor (VMM) that has a VMM context and is also at the system level, both the VMM and the HOS being able to independently issue both privileged and non-privileged instructions for execution by the processor and thus to independently modify the processor state;
a driver that is resident in the host operating system, the driver forming a first context-switching means for saving the HOS context, for switching from the HOS context to the VMM context, and for accepting commands from the VMM and for processing the accepted commands in the HOS context; and
a second context-switching means, included within the VMM, for saving the VMM context and for switching from the VMM context to the HOS context.
- and
Specification