Instant remote rendering
First Claim
1. A method comprising:
- maintaining display of application graphics for a first application and a second application, both compiled for and in active concurrent execution within a first operating system, by iteratively performing steps comprising;
calculating updates to surfaces of the first application using the first operating system;
rendering the updated surfaces of the first application using the first operating system to generate a first graphics frame in a first memory location of anonymous shared memory comprising named memory blocks, the anonymous shared memory accessible by name through a file descriptor by all processes running on the first operating system and a second operating system and not accessible by name by other processes, the named memory blocks being freed by a single shared kernel, the first operating system and the second operating system running concurrently and independently on the single shared kernel, wherein each of the first and second operating systems makes system calls through the shared kernel without virtualized memory;
calculating updates to surfaces of the second application using the first operating system;
storing the updated surfaces of the second application in a second memory location, the second memory location being a shared memory location of the anonymous shared memory accessible by both the first operating system and the second operating system; and
rendering the updated surfaces of the second application using a console application of the second operating system to generate a second graphics frame in a third memory location of the anonymous shared memory, wherein the surfaces of the first application are associated with a mobile device and the surfaces of the second application are associated with a desktop computing system, wherein the single shared kernel includes an Inter Process Communication (“
IPC”
) driver which passes the file descriptor to processes in the first operating system and the second operating system to allow communication between the first operating system and the second operating system across process boundaries, and wherein device drivers in the single shared kernel implement hardware interfaces.
3 Assignments
0 Petitions
Accused Products
Abstract
Cross-environment rendering and user interaction support provide a seamless computing experience in a multi-operating system computing environment. The multi-operating system computing environment may include a mobile operating system and a desktop operating system running concurrently and independently on a mobile computing device. Real-time or instant display of an application running in the mobile operating system within an environment of the desktop operating system is provided by rendering application graphics for the application within the desktop operating system. A console application of the desktop operating system may access surface information for the application from shared memory and render the application within a console window of the computing environment associated with the desktop operating system. The mobile computing device may be a smartphone running the Android mobile operating system and a full desktop Linux distribution on a modified Android kernel.
240 Citations
22 Claims
-
1. A method comprising:
-
maintaining display of application graphics for a first application and a second application, both compiled for and in active concurrent execution within a first operating system, by iteratively performing steps comprising; calculating updates to surfaces of the first application using the first operating system; rendering the updated surfaces of the first application using the first operating system to generate a first graphics frame in a first memory location of anonymous shared memory comprising named memory blocks, the anonymous shared memory accessible by name through a file descriptor by all processes running on the first operating system and a second operating system and not accessible by name by other processes, the named memory blocks being freed by a single shared kernel, the first operating system and the second operating system running concurrently and independently on the single shared kernel, wherein each of the first and second operating systems makes system calls through the shared kernel without virtualized memory; calculating updates to surfaces of the second application using the first operating system; storing the updated surfaces of the second application in a second memory location, the second memory location being a shared memory location of the anonymous shared memory accessible by both the first operating system and the second operating system; and rendering the updated surfaces of the second application using a console application of the second operating system to generate a second graphics frame in a third memory location of the anonymous shared memory, wherein the surfaces of the first application are associated with a mobile device and the surfaces of the second application are associated with a desktop computing system, wherein the single shared kernel includes an Inter Process Communication (“
IPC”
) driver which passes the file descriptor to processes in the first operating system and the second operating system to allow communication between the first operating system and the second operating system across process boundaries, and wherein device drivers in the single shared kernel implement hardware interfaces. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 21, 22)
-
-
14. A mobile computing device comprising:
-
a first application and a second application in active concurrent execution within a first operating system; a first graphics surface of a first display associated with the first application; a graphics server of the first operating system operable to render the first graphics surface on the first display to generate a first graphics frame in a first memory location; anonymous shared memory comprising named memory blocks accessible by name through a file descriptor by all processes running on the first operating system and a second operating system and not accessible by name by other processes, the named memory blocks being freed by a single shared kernel, the first operating system and the second operating system running concurrently and independently on the single shared kernel, wherein device drivers in the single shared kernel implement hardware interfaces, wherein each of the first and second operating systems makes system calls through the shared kernel without virtualized memory; a second graphics surface of a second display associated with the second application, the second graphics surface stored in a second memory location, the second memory location being a shared memory location of the anonymous shared memory; a console application running within the second operating system, the console application operable to render the second graphics surface to generate a second graphics frame in a third memory location of the anonymous shared memory wherein the first graphics surface of the first application is associated with a mobile device and the second graphic surface of the second application is associated with a desktop computing system, wherein the first operating system and the second operating system execute on the mobile device, and wherein the single shared kernel includes an Inter Process Communication (“
IPC”
) driver which passes the file descriptor to processes in the first operating system and the second operating system to allow communication between the first operating system and the second operating system across process boundaries. - View Dependent Claims (15, 16, 17)
-
-
18. A computing device including a non-transitory computer-readable medium storing instructions for a physical processor, the instructions, when executed, causing the processor to perform steps comprising:
-
maintaining display of application graphics for a first application and a second application, both compiled for and in active concurrent execution within a first operating system, by iteratively performing steps comprising; calculating updates to surfaces of the first application using the first operating system; rendering the updated surfaces of the first application using the first operating system to generate a first graphics frame in a first memory location of anonymous shared memory comprising named memory blocks, the anonymous shared memory accessible by name through a file descriptor by all processes running on the first operating system and a second operating system and not accessible by name by other processes, the named memory blocks being freed by a single shared kernel, the first operating system and the second operating system running concurrently and independently on the single shared kernel, wherein each of the first and second operating systems makes system calls through the shared kernel without virtualized memory, wherein device drivers in the single shared kernel implement hardware interfaces; calculating updates to surfaces of the second application using the first operating system; storing the updated surfaces of the second application in a second memory location, the second memory location being a shared memory location of the anonymous shared memory accessible by both the first operating system and the second operating system; and rendering the updated surfaces of the second application using a console application of the second operating system to generate a second graphics frame in a third memory location of the anonymous shared memory, wherein the surfaces of the first application are associated with a mobile device and the surfaces of the second application are associated with a desktop computing system. - View Dependent Claims (19, 20)
-
Specification