Memory Access Control via Execution Mode and Layer Identity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In systems with only privileged and unprivileged modes, virtualization techniques fail to effectively control memory access between different layers, leading to unauthorized access to memory domains by applications executing in the same unprivileged mode as guest operating system kernels.
Innovation Solution
Implementing a method to control memory access by determining the execution mode of each layer element, allowing the processor to set memory accessibility for each page and domain based on whether the element is operating in privileged or unprivileged mode, thereby preventing unauthorized access by ensuring distinct memory access permissions for VMM, VM kernel, and VM user modes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If virtualization is applied in systems with only privileged and unprivileged modes, then multiple operating systems can be executed simultaneously, but applications executing in unprivileged mode can unauthorizedly access guest operating system kernels' memory domains
Solution Approach 1:
The patent segments memory access control into two independent dimensions: execution mode (privileged/unprivileged) and layer identity (VMM/VM kernel/VM user). This segmentation allows the system to maintain multiple operating systems simultaneously while preventing unauthorized access by applications to guest OS memory domains, as each layer's memory access permissions are controlled independently through page table attributes associated with both mode and layer identifiers.
Solution Approach 2:
The patent applies local quality by assigning different memory access permissions to different layers within the same execution mode. Specifically, page table attributes are configured to grant VMM mode full memory access, VM kernel mode access to guest OS memory domains, and VM user mode access restricted to application memory domains only. This localized permission assignment ensures that even though applications and guest OS kernels both execute in unprivileged mode, they cannot access each other's memory domains.
2Device complexity
If the same unprivileged mode is used for both guest operating system kernels and applications, then system complexity is reduced, but memory domain protection between these layers cannot be ensured
Solution Approach 1:
The patent introduces a new dimension for memory access control by adding layer identity (VMM/VM kernel/VM user) as a second classification criterion alongside execution mode (privileged/unprivileged). This dimensional extension allows the system to maintain a simple two-mode execution structure while achieving fine-grained memory protection through the combination of mode and layer attributes in page table entries, thereby protecting memory domains without increasing execution mode complexity.
3Ease of operation
If traditional memory access control is used without layer-specific permissions, then ease of operation is maintained, but unauthorized memory access between virtualized layers occurs
Solution Approach 1:
The patent introduces page table attributes as an intermediary mechanism that mediates memory access between different layers. These attributes incorporate both execution mode and layer identity information, acting as a mediator that automatically enforces appropriate access permissions without requiring complex software-based control. The intermediary page table structure simplifies operation by handling access control transparently while preventing unauthorized memory access between virtualized layers.
Data Source
AI summary
Provided is a method of controlling memory access. In a system including a first layer element executed in a privileged mode having a first priority of permission to access the entire region of a memory and second and third layer elements executed in an unprivileged mode having a second priority of permission to access a partial region of the memory, the method of controlling memory access determines whether the memory is accessible for each page that is an address space unit, based on which mode a layer element currently accessing the memory is executed in between the privileged mode and the unprivileged mode; and determines whether the memory is accessible based on which one of the first, second and third layer elements corresponds to a domain currently being attempted to be accessed from among a plurality of domains of the memory. Accordingly, a memory domain allocated to a guest operating system kernel is effectively protected from an application executed in the unprivileged mode in which the guest operating system kernel is executed.


