Cross-environment user interface mirroring
First Claim
1. A method comprising:
- running a first operating system and a second operating system concurrently and independently on a shared kernel, wherein each first and second operating system makes system calls through the shared kernel without virtualized memory;
calculating, using the first operating system, updates to a set of surfaces of a first application compiled for and in active execution within the first operating system;
rendering, using the first operating system, the set of surfaces according to the updates to generate a graphics frame;
allocating anonymous shared memory comprising named memory blocks for the set of surfaces by a graphics server of the first operating system, the anonymous shared memory accessible by name through a file descriptor by all processes running on the first operating system and the second operating system and not accessible by name by other processes, the named memory blocks of the anonymous shared memory freed by the shared kernel, the shared kernel including an inter-process communications 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 to communicate across process boundaries;
storing the graphics frame in the anonymous shared memory location;
displaying the 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 anonymous shared memory location to a console application compiled for and in active execution within the second operating system; and
displaying the graphics frame from the shared memory location 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 according to the file descriptor, such that the second application display is 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, wherein the mobile device and the desktop computing system are distinct computing devices;
wherein the first operating system is a mobile operating system and the second operating system is a desktop operating system;
wherein when the mobile device is connected to the desktop computing system, a user experiences the second application on the active second display of the desktop computing system through a desktop computing experience of the desktop computing system; and
wherein the mobile device is a mobile telephony device.
3 Assignments
0 Petitions
Accused Products
Abstract
A mobile computing device with a mobile operating system and desktop operating system running concurrently and independently on a shared kernel without virtualization. The mobile operating system provides a user experience for the mobile computing device that suits the mobile environment. The desktop operating system provides a full desktop user experience when the mobile computing device is docked to a second user environment. Cross-environment rendering and user interaction support provide a seamless computing experience in a multi-operating system computing environment. 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 mobile computing device may be a smartphone running the Android mobile operating system and a full desktop Linux distribution on a modified Android kernel.
211 Citations
22 Claims
-
1. A method comprising:
-
running a first operating system and a second operating system concurrently and independently on a shared kernel, wherein each first and second operating system makes system calls through the shared kernel without virtualized memory; calculating, using the first operating system, updates to a set of surfaces of a first application compiled for and in active execution within the first operating system; rendering, using the first operating system, the set of surfaces according to the updates to generate a graphics frame; allocating anonymous shared memory comprising named memory blocks for the set of surfaces by a graphics server of the first operating system, the anonymous shared memory accessible by name through a file descriptor by all processes running on the first operating system and the second operating system and not accessible by name by other processes, the named memory blocks of the anonymous shared memory freed by the shared kernel, the shared kernel including an inter-process communications 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 to communicate across process boundaries; storing the graphics frame in the anonymous shared memory location; displaying the 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 anonymous shared memory location to a console application compiled for and in active execution within the second operating system; and displaying the graphics frame from the shared memory location 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 according to the file descriptor, such that the second application display is 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, wherein the mobile device and the desktop computing system are distinct computing devices; wherein the first operating system is a mobile operating system and the second operating system is a desktop operating system; wherein when the mobile device is connected to the desktop computing system, a user experiences the second application on the active second display of the desktop computing system through a desktop computing experience of the desktop computing system; and wherein the mobile device is a mobile telephony device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A mobile computing device comprising:
-
a first application compiled for and in active execution within a first operating system; a graphics frame for the first application; a second operating system and the first operating system running concurrently and independently on a shared kernel, wherein each first and second operating system makes system calls through the shared kernel without virtualized memory; anonymous shared memory comprising named memory blocks accessible by all processes running on the first operating system and the second operating system, the anonymous shared memory accessible by name through a file descriptor by all processes running on the first operating system and the second operating system and not accessible by name by other processes, the named memory blocks of the anonymous shared memory freed by the shared kernel, the shared kernel including an inter-process communications driver which allows processes in the first operating system and the second operating system to communicate with one another across process boundaries, the graphics frame for the first application rendered in the anonymous shared memory location by the first operating system; a first application display of the first application displayed on a first display of a first computing environment using the first operating system; and a console application running within the second operating system that displays the graphics frame to a second application display on a display of a second computing environment associated with the second operating system by accessing the anonymous shared memory location of the graphics frame through a file descriptor to the graphics frame passed by the first operating system, wherein the first display is associated with the 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, wherein the mobile device and the desktop computing system are distinct computing devices; wherein the first operating system is a mobile operating system and the second operating system is a desktop operating system; wherein when the mobile device is connected to the desktop computing system, a user experiences the second application on the second active display of the desktop computing system through a desktop computing experience of the desktop computing system; and wherein the mobile device is a mobile telephony device. - View Dependent Claims (11, 12, 13)
-
-
14. 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:
-
running a first operating system and a second operating system concurrently and independently on a shared kernel, wherein each first and second operating system makes system calls through the shared kernel without virtualized memory; calculating, using the first operating system, updates to a set of surfaces of a first application compiled for and in active execution within the first operating system; rendering, using the first operating system, the set of surfaces according to the updates to generate a graphics frame; allocating anonymous shared memory comprising named memory blocks for the set of surfaces by a graphics server of the first operating system, the anonymous shared memory accessible by name through a file descriptor by all processes running on the first operating system and the second operating system and not accessible by name by other processes, the named memory blocks of the anonymous shared memory freed by the shared kernel; storing the graphics frame in the anonymous shared memory location; displaying the 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 anonymous shared memory location to a console application compiled for and in active execution within the second operating system; and displaying the graphics frame from the anonymous shared memory location 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 according to the file descriptor, such that the second application display is identical to the first application display, wherein the first display is associated with the 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, wherein the mobile device and the desktop computing system are distinct computing devices; wherein the first operating system is a mobile operating system and the second operating system is a desktop operating system; wherein when the mobile device is connected to the desktop computing system, a user experiences the second application on the second active display of the desktop computing system through a desktop computing experience of the desktop computing system; and wherein the mobile device is a mobile telephony device. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
-
Specification