Cross-environment communication framework
First Claim
1. A method for communicating between a service of a mobile operating system and an application of a desktop operating system over an inter-process communication channel, the method comprising:
- requesting, by the application of the desktop operating system, to bind to a remotable interface of the service of the mobile operating system;
receiving, by the application of the desktop operating system, a remotable object from the service of the mobile operating system, the remotable object instantiated by the service of the mobile operating system in response to the request by the desktop operating system;
sending, by the application of the desktop operating system, a call to the remotable object; and
receiving, by the application of the desktop operating system, a return from the call to the remotable object from the service of the mobile operating system;
wherein each of the mobile operating system and the desktop operating system run concurrently and independently on a shared kernel of a mobile computing device, the mobile computing device providing a mobile computing experience;
wherein when the mobile computing device is connected to a second device, the second device providing a desktop computing experience, a user experiences the application on a display of the second device through the desktop computing experience of the second device;
wherein the second device includes a computer monitor and an input device;
wherein the mobile operating system and the desktop operating system make system calls through the shared kernel without a virtualized memory;
wherein the shared kernel manages task scheduling for processes of each of the mobile operating system and the desktop operating system;
wherein an inter-process communication driver of the shared kernel marshals a first parcel object to a process space of the service of the mobile operating system; and
wherein the desktop operating system includes an interprocess communication library of the mobile operating system compiled against user libraries of the desktop operating system, the inter-process communication library comprising base classes for the remotable object.
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 secondary terminal environment. Applications of the desktop operating system communicate with applications and services of the mobile operating system through a cross-environment communication framework. The cross-environment communication framework may include interfaces to remotable objects allowing processes in the mobile operating system and processes in the desktop operating system to share memory in a thread-safe manner. 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.
229 Citations
14 Claims
-
1. A method for communicating between a service of a mobile operating system and an application of a desktop operating system over an inter-process communication channel, the method comprising:
-
requesting, by the application of the desktop operating system, to bind to a remotable interface of the service of the mobile operating system; receiving, by the application of the desktop operating system, a remotable object from the service of the mobile operating system, the remotable object instantiated by the service of the mobile operating system in response to the request by the desktop operating system; sending, by the application of the desktop operating system, a call to the remotable object; and receiving, by the application of the desktop operating system, a return from the call to the remotable object from the service of the mobile operating system; wherein each of the mobile operating system and the desktop operating system run concurrently and independently on a shared kernel of a mobile computing device, the mobile computing device providing a mobile computing experience; wherein when the mobile computing device is connected to a second device, the second device providing a desktop computing experience, a user experiences the application on a display of the second device through the desktop computing experience of the second device; wherein the second device includes a computer monitor and an input device; wherein the mobile operating system and the desktop operating system make system calls through the shared kernel without a virtualized memory; wherein the shared kernel manages task scheduling for processes of each of the mobile operating system and the desktop operating system; wherein an inter-process communication driver of the shared kernel marshals a first parcel object to a process space of the service of the mobile operating system; and wherein the desktop operating system includes an interprocess communication library of the mobile operating system compiled against user libraries of the desktop operating system, the inter-process communication library comprising base classes for the remotable object. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for communicating between a first application of a mobile operating system and a second application of a desktop operating system, the method comprising:
-
receiving, by a remote communication service of the mobile operating system, a request by the first application to bind to the remote communication service; instantiating, in response to the request by the first application, a remotable object; passing the remotable object from the remote communication service to the first application; receiving, by the remote communication service of the mobile operating system, a request by the second application to bind to the remote communication service through an inter-process communication channel; and passing the remotable object from the remote communication service to the second application; wherein each of the mobile operating system and the desktop operating system run concurrently and independently on a shared kernel of a mobile computing device, the mobile computing device providing a mobile computing experience; wherein when the mobile computing device is connected to a second device, the second device providing a desktop computing experience, a user experiences the second application on a display of the second device through the desktop computing experience of the second device; wherein a connection between the mobile computing device and the second device is a docked connection; wherein the second device includes a computer monitor and an input device; wherein the mobile operating system and the desktop operating system make system calls through the shared kernel without a virtualized memory; wherein the shared kernel manages task scheduling for processes of each of the mobile operating system and the desktop operating system; wherein an inter-process communication driver of the shared kernel marshals a first parcel object to a process space of the service of the mobile operating system; and wherein the desktop operating system includes an interprocess communication library of the mobile operating system compiled against user libraries of the desktop operating system, the inter-process communication library comprising base classes for the remotable object. - View Dependent Claims (8, 9, 10)
-
-
11. A mobile computing device including a computer readable medium storing instructions for a physical processor, the instructions, when executed, causing the processor to perform steps comprising:
-
receiving, by a service of a mobile operating system, a request to bind to the service by an application of a desktop operating system; instantiating, by the service of the mobile operating system, a remotable object in response to the request to bind to the service by the application of the desktop operating system; sending, by the service of the mobile operating system, the remotable object through an inter-process communication channel to the application of the desktop operating system; receiving, by the service of the mobile operating system, a call to the remotable object by the application of the desktop operating system, the call to the remotable object including an action to be performed by the service; and returning, from the service of the mobile operating system, a reference to the remotable object in response to receiving the call to the remotable object; wherein each of the mobile operating system and the desktop operating system run concurrently and independently on a shared kernel of the mobile computing device, the mobile computing device providing a mobile computing experience; wherein the mobile operating system runs on the mobile computing device in a first execution environment on a shared kernel, and the desktop operating system runs in a second execution environment on the shared kernel; wherein when the mobile computing device is connected to a second device, the second device providing a desktop computing experience, a user experiences the application on a display of the second device through the desktop computing experience of the second device; wherein the mobile operating system and the desktop operating system make system calls through the shared kernel without a virtualized memory; wherein the shared kernel manages task scheduling for processes of each of the mobile operating system and the desktop operating system; wherein the shared kernel comprises an inter-process communication driver, wherein the inter-process communication driver marshals a first parcel object to a process space of the service of the mobile operating system; and wherein the desktop operating system includes an interprocess communication library of the mobile operating system compiled against user libraries of the desktop operating system, the inter-process communication library comprising base classes for the remotable object. - View Dependent Claims (12, 13, 14)
-
Specification