Cross-environment user interface mirroring using remote rendering
First Claim
1. A method comprising:
- calculating, using a first operating system, updates to a set of surfaces of a first application compiled for and in active execution within the first operating system;
storing the updated set of surfaces in a shared memory location of anonymous shared memory comprising named memory blocks, the anonymous shared memory accessible by all processes running on the first operating system and a second operating system and not accessible by name by other processes and managed by a shared kernel, the first operating system and the second operating system running concurrently and independently on the shared kernel, the shared kernel including an interprocess communication (“
IPC”
) driver which allows processes in the first operating system and the second operating system to communicate with one another across process boundaries, wherein each operating system makes system calls through the shared kernel without virtualized memory;
rendering the updated set of surfaces to generate a first graphics frame using the first operating system;
displaying the first graphics frame to a first application display of the first application on a first display of a first computing environment using the first operating system;
passing a file descriptor indicating the shared memory location of the anonymous shared memory to a console application compiled for and in active execution within the second operating system;
rendering the updated set of surfaces from the shared memory location of the anonymous shared memory to generate a second graphics frame that is substantially identical to the first graphics frame via the console application of the second operating system according to the file descriptor; and
displaying the second graphics frame to a second application display of the first application on a second display of a second computing environment via the console application of the second operating system, such that the second application display is substantially identicalto the first application display, wherein the first display is associated with a mobile device and the second display is associated with a desktop computing system, wherein the first operating system and the second operating system execute on the mobile device, wherein the first computing environment is the mobile device and the second computing environment is the desktop computing system, 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. The seamless computing experience includes mirroring the active user interaction space of the mobile operating system to a display of a user environment associated with the desktop operating system. The user interface is rendered by the desktop operating system by accessing surface information of the active user interaction space directly from shared memory. 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.
-
Citations
20 Claims
-
1. A method comprising:
-
calculating, using a first operating system, updates to a set of surfaces of a first application compiled for and in active execution within the first operating system; storing the updated set of surfaces in a shared memory location of anonymous shared memory comprising named memory blocks, the anonymous shared memory accessible by all processes running on the first operating system and a second operating system and not accessible by name by other processes and managed by a shared kernel, the first operating system and the second operating system running concurrently and independently on the shared kernel, the shared kernel including an interprocess communication (“
IPC”
) driver which allows processes in the first operating system and the second operating system to communicate with one another across process boundaries, wherein each operating system makes system calls through the shared kernel without virtualized memory;rendering the updated set of surfaces to generate a first graphics frame using the first operating system; displaying the first graphics frame to a first application display of the first application on a first display of a first computing environment using the first operating system; passing a file descriptor indicating the shared memory location of the anonymous shared memory to a console application compiled for and in active execution within the second operating system; rendering the updated set of surfaces from the shared memory location of the anonymous shared memory to generate a second graphics frame that is substantially identical to the first graphics frame via the console application of the second operating system according to the file descriptor; and displaying the second graphics frame to a second application display of the first application on a second display of a second computing environment via the console application of the second operating system, such that the second application display is substantially identical to the first application display, wherein the first display is associated with a mobile device and the second display is associated with a desktop computing system, wherein the first operating system and the second operating system execute on the mobile device, wherein the first computing environment is the mobile device and the second computing environment is the desktop computing system, and wherein device drivers in the single shared kernel implement hardware interfaces. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A mobile computing device, comprising:
-
a first application compiled for and in active execution within a first operating system; a set of surfaces updated by the first application stored in a shared memory location of anonymous shared memory comprising named memory blocks, the anonymous shared memory accessible by all processes running on the first operating system and a second operating system and not accessible by name by other processes and managed by a shared kernel, the first operating system and the second operating system running concurrently and independently on the shared kernel, wherein each operating system makes system calls through the shared kernel without virtualized memory, the shared kernel including an interprocess communication (“
IPC”
) driver which allows processes in the first operating system and the second operating system to communicate with one another across process boundaries;a first graphics frame for the first application rendered by the first operating system; and a second graphics frame for the first application rendered by a console application of the second operating system by accessing the updated surfaces from the shared memory location of the anonymous shared memory through a file descriptor passed by the first operating system, wherein device drivers in the single shared kernel implement hardware interfaces. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 18)
-
-
17. 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:
-
calculating, using a first operating system, updates to a set of surfaces of a first application compiled for and in active execution within the first operating system; storing the updated set of surfaces in a shared memory location of anonymous shared memory comprising named memory blocks, the anonymous shared memory accessible by all processes running on the first operating system and a second operating system and not accessible by name by other processes and managed by a shared kernel, the first operating system and the second operating system running concurrently and independently on the shared kernel, wherein each operating system makes system calls through the shared kernel without virtualized memory; rendering the updated set of surfaces to generate a first graphics frame using the first operating system; displaying the first graphics frame to a first application display of the first application on a first display of a first computing environment using the first operating system; passing a file descriptor indicating the shared memory location of the anonymous shared memory to a console application compiled for and in active execution within the second operating system; rendering the updated set of surfaces from the shared memory location of the anonymous shared memory to generate a second graphics frame that is substantially identical to the first graphics frame via the console application of the second operating system according to the file descriptor; and displaying the second graphics frame to a second application display of the first application on a second display of a second computing environment via the console application of the second operating system, such that the second application display is substantially identical to the first application display; wherein the first display is associated with a mobile device and the second display is associated with a desktop computing system, wherein the first operating system and the second operating system execute on the mobile device, wherein the first computing environment is the mobile device and the second computing environment is the desktop computing system, and wherein device drivers in the single shared kernel implement hardware interfaces. - View Dependent Claims (19, 20)
-
Specification