IP Library Granted Patent US 11,074,114
Granted Patent B1
US 11,074,114 · App. 15/858,653 · Granted Jul 27, 2021

System and method for executing applications in a non-native environment

Inventors: Alexey Kostyushko (Moscow, RU); Alexey Kobets (Seattle, WA)
Assignee: VIRTUOZZO INTERNATIONAL GMBH
G06F9/541G06F9/4484G06F9/468
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 11,074,114
App. No.
15/858,653
Granted
Jul 27, 2021
Kind
B1
Abstract

The described system provides one or more processors and memory, coupled to the one or more processors, storing thereon a first OS kernel that receives a system call to access a second OS kernel function from a subsystem of the second OS retransmits the system call to one or more drivers of the first OS, support the subsystem. The system further comprises a subsystem of the second OS, comprising one or more user space components executing natively in a non-privileged mode of the one or more processors, a set of drivers associated with the second OS, the set of support components, and the one or more drivers of the first OS. The one or more drivers of the first OS receive the system call originating from the subsystem, wherein the system call is retransmitted by the first OS kernel and process the system call.

Claims (58)

1. A system for executing, on a first operating system (OS), components native to a second operating system (OS), the system comprising:

one or more processors; and

memory, coupled to the one or more processors, storing thereon:

a first OS kernel that is executing on the one or more processors:

receives from a subsystem of the second OS a system call to access a second OS kernel function; and

retransmits the system call to one or more drivers native to the first OS; and

the subsystem of the second OS, comprising:

one or more user space components native to the second OS that are executing natively in a non-privileged mode of the one or more processors;

one or more drivers associated with the second OS that are executing in the non-privileged mode of the one or more processors;

one or more support components that:

are executing in the non-privileged mode of the one or more processors; and

comprise and provide, to the one or more drivers associated with the second OS and to the one or more drivers native to the first OS, high-level functionality of the second OS kernel, wherein the high-level functionality is defined as a functionality without direct access to hardware, privileged instructions and privileged system data, and wherein the high-level functionality includes high-level logic of at least one of: one or more second OS kernel subsystems and one or more second OS kernel exported functions; and

the one or more drivers native to the first OS that:

are executing in a privileged mode of the one or more processors;

receive the system call; and

process the system call using control transfer to the support components.

2. The system of claim 1 , wherein the one or more drivers associated with the second OS kernel and the one or more support components execute in a memory range that is protected from the one or more user space components.

3. The system of claim 2 , wherein the gap memory is the protected memory range and

wherein the first OS kernel assigns the gap memory to be accessible in non-privileged mode by modifying a memory map of the first OS, wherein the gap memory is a range of memory addresses that were previously accessible only in privileged mode.

4. The system of claim 3 , wherein the gap memory comprises several conjoint or non-conjoint memory address ranges.

5. The system of claim 3 , wherein the one or more drivers of the first OS, supporting the subsystem, performs at least one of the following actions, depending on the received system call:

(a) calling one of the components of the second OS subsystem, which are in a privileged mode of the one or more processors; or

(b) translating the system call to a call to an API of the first OS kernel; and calling the first OS kernel.

6. The system of claim 3 ,

wherein the one or more user space components of the second OS are executed in a first process, and the one or more drivers associated with the second OS and the one or more support components are executed in a second process, and

wherein a context switch between the one or more user space components of the second OS and the one or more drivers and the one or more support components associated with the second OS comprises switching between the first process and the second process.

7. The system of claim 1 , wherein the one or more drivers associated with the second OS execute in the non-privileged mode and the supporting components execute in the non-privileged mode.

8. The system of claim 7 , wherein the one or more drivers associated with the second OS call one or more second OS API functions from the one or more supporting components.

9. The system of claim 7 , wherein protection of the memory range from the one or more user space components further comprises that the memory range is inaccessible in a process, when the process is executing any of the one or more user space components.

10. The system of claim 1 , wherein a one or more drivers associated with the second OS are executing in the non-privileged mode by modifying a portion of the one or more drivers, and wherein the one or more drivers send system calls to kernel mode components.

11. The system of claim 1 , wherein the one or more user space components are applications native to the second OS.

12. The system of claim 1 , wherein the one or more drivers of the first OS, supporting the subsystem, process the system call by:

translating the system call to the API call of the first OS; and

invoking the API call.

13. A method for executing, on a first operating system (OS), components native to a second operating system (OS), the method comprising:

receiving, by a first OS kernel that is executing on one or more processors of the first OS, from a subsystem of the second OS a system call to access a second OS kernel function; and

retransmitting the system call to one or more drivers native to the first OS,

wherein the subsystem of the second OS, comprises:

one or more user space components native to the second OS that are executing natively in a non-privileged mode of the one or more processors,

one or more drivers associated with the second OS that are executing in the non-privileged mode of the one or more processors,

one or more support components that are executing in the non-privileged mode of the one or more processors, and

comprising and providing, to the one or more drivers associated with the second OS and to the one or more drivers native to the first OS, high-level functionality of the second OS kernel, wherein the high-level functionality is defined as a functionality without direct access to hardware, privileged instructions and privileged system data, and wherein the high-level functionality includes high-level logic of at least one of: one or more second OS kernel subsystems and one or more second OS kernel exported functions, and

wherein the one or more drivers native to the first OS that are executing in a privileged mode of the one or more processor, receive the system call, and process the system call using control transfer to the support components.

14. The method of claim 13 , wherein the one or more drivers associated with the second OS kernel and the one or more support components execute in a memory range that is protected from the one or more user space components.

15. The method of claim 13 , wherein the one or more drivers associated with the second OS execute in the non-privileged mode and the supporting components execute in the non-privileged mode.

16. The method of claim 15 , wherein the one or more drivers associated with the second OS call one or more second OS API functions from the one or more supporting components.

17. The method of claim 15 , wherein protection of the memory range from the one or more user space components further comprises that the memory range is inaccessible in a process, when the process is executing any of the one or more user space components.

18. The method of claim 13 , wherein a one or more drivers associated with the second OS are executing in the non-privileged mode by modifying a portion of the one or more drivers, and wherein the one or more drivers send system calls to kernel mode components.

19. The method of claim 13 , wherein the one or more user space components are applications native to the second OS.

20. A non-transitory computer-readable medium storing thereon instructions that when executed perform a method for executing, on a first OS, components native to a second OS, the method comprising:

receiving, by a first OS kernel that is executing on one or more processors of the first OS, from a subsystem of the second OS a system call to access a second OS kernel function; and

retransmitting the system call to one or more drivers native to the first OS,

wherein the subsystem of the second OS, comprises:

one or more user space components native to the second OS that are executing natively in a non-privileged mode of the one or more processors,

one or more drivers associated with the second OS that are executing in the non-privileged mode of the one or more processors,

one or more support components that are executing in the non-privileged mode of the one or more processors, and

comprising and providing, to the one or more drivers associated with the second OS and to the one or more drivers native to the first OS, high-level functionality of the second OS kernel, wherein the high-level functionality is defined as a functionality without direct access to hardware, privileged instructions and privileged system data, and wherein the high-level functionality includes high-level logic of at least one of: one or more second OS kernel subsystems and one or more second OS kernel exported functions, and

wherein the one or more drivers native to the first OS that are executing in a privileged mode of the one or more processor, receive the system call, and process the system call using control transfer to the support components.

Assignments (2)
SECURITY INTEREST IN TRADEMARK, PATENT, AND COPYRIGHT RIGHTS Recorded Dec 22, 2022
From: VIRTUOZZO INTERNATIONAL GMBH; ONAPP LIMITED
To: WILMINGTON TRUST (LONDON) LIMITED
Reel/Frame 062206/0557 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 2, 2018
From: KOSTYUSHKO, ALEXEY; KOBETS, ALEXEY
To: VIRTUOZZO INTERNATIONAL GMBH
Reel/Frame 044512/0555 →