IP Library Granted Patent US 10,139,876
Granted Patent B2
US 10,139,876 · App. 15/191,444 · Granted Nov 27, 2018

Efficient reboot of an operating system executed in a virtual machine

Inventors: Xunjia Lu (Saratoga, CA); Xavier Deguillard (Sunnyvale, CA); Mukund Gunti (Mountain View, CA); Vishnu Sekhar (Sunnyvale, CA)
Assignee: VMware Inc.
G06F1/24G06F1/3287G06F9/4401G06F9/4408G06F21/575H04L9/3242
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 10,139,876
App. No.
15/191,444
Granted
Nov 27, 2018
Kind
B2
Abstract

A computer system is rebooted after updating a boot image without running platform firmware with its power-on self-test of system hardware devices and without retrieving all of the modules included in a boot image from an external source and reloading them into system memory. The reboot process includes the steps of loading one or more updated modules of the boot image into the system memory, executing the boot loader module to load for execution modules of the boot image including a system software kernel and the updated modules, and transferring execution control to the system software kernel.

Claims (53)

1. A method for rebooting system software for a computer system after updating a boot image, the method comprising:

reloading a second level boot loader of a boot loader module for the system software into system memory, the second level boot loader configured to at least locate a boot-time module in a user space, copy boot-time module into a kernel space, verify a checksum or hash of a system software kernel and transfer control to the system software kernel;

shutting down all processing units of the computer system, except a selected one to be used for rebooting; and

executing the reboot operation on the selected processing unit to reboot the system software, wherein the reboot operation does not run platform firmware of the computer system and includes the steps of:

loading one or more updated modules of the boot image into the system memory;

executing the second level boot loader to load execution modules of the boot image including the system software kernel and the updated modules; and

transferring execution control to the system software kernel.

2. The method of claim 1 , wherein the boot image is retrieved from an external source, and wherein the entire boot image is not reloaded into the system memory between start and completion of the reboot.

3. The method of claim 1 , wherein the reboot operation further includes the step of:

after the updated modules of the boot image are loaded into the system memory, updating a data structure that tracks locations of the modules within the system memory to store new locations of the updated modules within the system memory,

wherein the second level boot loader accesses the data structure to locate the modules of the boot image during loading the modules of the boot image for execution.

4. The method of claim 3 , wherein the reboot operation further includes the step of:

determining whether or not a module of the boot image has changed by comparing a hash or checksum of the module with a hash or checksum respectively of the corresponding module in the updated boot image.

5. The method of claim 3 , wherein the data structure contains an entry for each module of the boot image, the entry including a size, a start address and an end address for the module.

6. The method of claim 1 , further comprising:

prior to executing the reboot operation, shutting down any pending I/O operations.

7. The method of claim 6 , wherein shutting down any pending I/O operations includes:

resetting all I/O device controllers to their default state.

8. The method of claim 1 , wherein the system software is an operating system or a hypervisor.

9. A non-transitory computer readable medium comprising instruction for causing a computer system to carry out a method for rebooting system software for a computer system after updating a boot image, the method comprising:

reloading a second level boot loader of a boot loader module for the system software into system memory, the second level boot loader configured to at least locate a boot-time module in a user space, copy boot-time module into a kernel space, verify a checksum or hash of a system software kernel and transfer control to the system software kernel;

shutting down all processing units of the computer system, except a selected one to be used for rebooting; and

executing the reboot operation on the selected processing unit to reboot the system software, wherein the reboot operation does not run platform firmware of the computer system and includes the steps of:

loading one or more updated modules of the boot image into the system memory;

executing the second level boot loader to load executing modules of the boot image including the system software kernel and the updated modules; and

transferring execution control to the system software kernel.

10. The non-transitory computer readable medium of claim 9 , wherein the boot image is retrieved from an external source, and wherein the entire boot image is not reloaded into the system memory between start and completion of the reboot.

11. The non-transitory computer readable medium of claim 9 , wherein the reboot operation further includes the step of:

after the updated modules of the boot image are loaded into the system memory, updating a data structure that tracks locations of the modules within the system memory to store new locations of the updated modules within the system memory,

wherein the second level boot loader accesses the data structure to locate the modules of the boot image during loading the modules of the boot image for execution.

12. The non-transitory computer readable medium of claim 11 , wherein the reboot operation further includes the step of:

determining whether or not a module of the boot image has changed by comparing a hash or checksum of the module with a hash or checksum respectively of the corresponding module in the updated boot image.

13. The non-transitory computer readable medium of claim 11 , wherein the data structure contains an entry for each module of the boot image, the entry including a size, a start address and an end address for the module.

14. The non-transitory computer readable medium of claim 9 , wherein the method further comprises:

prior to executing the reboot operation, shutting down any pending I/O operations.

15. The non-transitory computer readable medium of claim 14 , wherein shutting down any pending I/O operations includes:

resetting all I/O device controllers to their default state.

16. The method of claim 9 , wherein the system software is an operating system or a hypervisor.

17. A computer system comprising:

a system memory containing a boot image that includes system software modules that were loaded during booting of system software, and a boot loader for the system software; and

one or more processing units, wherein at least one processing unit is configured to carry out a method for rebooting system software for a computer system after updating a boot image, the method comprising:

reloading a second level boot loader of a boot loader module for the system software into system memory, the second level boot loader configured to at least locate a boot-time module in a user space, copy boot-time module into a kernel space, verify a checksum or hash of a system software kernel and transfer control to the system software kernel;

shutting down all processing units of the computer system, except a selected one to be used for rebooting; and

executing the reboot operation on the selected processing unit to reboot the system software, wherein the reboot operation does not run platform firmware of the computer system and includes the steps of:

loading one or more updated modules of the boot image into the system memory;

executing the second level boot loader to load executing modules of the boot image including the system software kernel and the updated modules; and

transferring execution control to the system software kernel.

18. The computer system of claim 17 , wherein the boot image is retrieved from an external source, and wherein the entire boot image is not reloaded into the system memory between start and completion of the reboot.

19. The computer system of claim 17 , wherein the reboot operation further includes the step of:

after the updated modules of the boot image are loaded into the system memory, updating a data structure that tracks locations of the modules within the system memory to store new locations of the updated modules within the system memory,

wherein the second level boot loader accesses the data structure to locate the modules of the boot image during loading the modules of the boot image for execution.

20. The computer system of claim 19 , wherein the reboot operation further includes the step of:

determining whether or not a module of the boot image has changed by comparing a hash or checksum of the module with a hash or checksum respectively of the corresponding module in the updated boot image.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2018
From: LU, XUNJIA; DEGUILLARD, XAVIER; GUNTI, MUKUND; SEKHAR, VISHNU
To: VMWARE, INC.
Reel/Frame 045306/0065 →
Continuity (1)
Related Publication 20170371388A1 · Dec 28, 2017
Cited By (8)
US 12,314,752 US 12,321,766 US 12,327,133 US 12,381,878 US 12,476,978 US 12,671,671 US 12,724,647 US 12,726,444