EFI Boot Services Preservation for VM-Aware OS Reboot
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In computer systems with EFI or UEFI firmware, the 'EFI Boot Services' are removed from main memory after the boot process, necessitating a complete hardware restart to reactivate them, which disrupts other operating systems and applications when a general operating system needs to be rebooted without virtualization.
Innovation Solution
Redirecting the pointer to the original ExitBootServices function to a modified version that keeps the EFI Boot Services available, preventing their deletion from memory, allowing repeated reboots without hardware reset.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If the EFI Boot Services are removed from main memory after boot to free resources, then memory availability is improved, but the ability to restart the operating system without hardware reset is lost
Solution Approach 1:
The EFI firmware functionality is segmented into two parts: the original ExitBootServices function and a modified version. The modified version performs the same boot service deactivation while preserving the loading routines in memory, allowing OS restart capability to be maintained separately from the standard boot process
Solution Approach 2:
A modified ExitBootServices function acts as an intermediary between the operating system and the EFI loading routines. This modified function serves as a mediator that deactivates boot services while keeping the loading routines accessible, enabling OS restart without hardware reset
2Adaptability or versatility
If a complete hardware restart is performed to reactivate EFI Boot Services, then operating system restart is enabled, but other virtual machines and applications are interrupted
Solution Approach 1:
The ability to restart the operating system is extracted from the hardware reset process. By modifying the ExitBootServices function to preserve loading routines in memory, the restart capability is separated from the interruptive hardware reset, allowing VMs and applications to continue running
Solution Approach 2:
The modified ExitBootServices function is prepared in advance to perform a specialized deactivation that preserves loading routines. This preliminary setup enables subsequent OS restarts without requiring hardware reset, thus preventing interruption of other VMs and applications
3Adaptability or versatility
If the operating system is fully virtualized to enable separate restart, then restart capability is improved, but performance advantages of direct hardware access are lost
Solution Approach 1:
The solution applies a localized modification to the ExitBootServices function rather than implementing full virtualization. This local change preserves the direct hardware access architecture and its performance benefits while adding the desired restart capability through a targeted firmware modification
Data Source
Figure 1~3
Figure 4
Figure 5
AI summary
The invention relates to a method for starting an operating system (GPOS) on computer hardware (HW) with an EFI or UEFI firmware interface, wherein the operating system is started under the control of a virtualization controller (hypervisor), wherein after the computer hardware has started, EFI or UEFI load routines are copied into a working memory of the computer hardware, and wherein the operating system (GPOS) reads an EFI or UEFI system table containing references to the EFI or UEFI load routines from the working memory and calls the EFI or UEFI load routines. During startup and at runtime of the operating system (GPOS), calls to the ExitBootServices functions of the EFI or UEFI load routines are prevented.This means that the EFI or UEFI load routines are available for repeated operating system restarts without requiring a hardware reset to reload these routines into memory. This offers the advantage that other virtual machines and operating systems can continue running without interruption, even if the operating system under consideration needs to be restarted repeatedly.