# US 2012/0084481 A1 · Auto-waking of a suspended os in a dockable system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2012/0084481 A1
- Document ID: US20120084481A1
- Status: Published application
- Kind: A1
- Application number: 13/217,130
- Filed: 2011-08-24
- Published: 2012-04-05
- Earliest claimed: 2010-10-01
- Assignees: Imerj LLC
- Inventors: Brian Reeves; Paul Reeves; Richard Teltz; David Reeves; Sanjiv Sirpal; Chris Tyghe; Alisher Yusupov; Octavian Chincisan; Wuke Liu
- Web page: https://patentgrep.com/patent/US20120084481A1

## CPC

- G06F 13/14: Handling requests for interconnection or transfer
- G06F 9/4411: {Configuring for operating with peripheral devices; Loading of device drivers}
- G06F 9/4418: {Suspend and resume; Hibernate and awake}
- G06F 9/44505: {Configuring for program initiating, e.g. using registry, configuration files}
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 9/541: {via adapters, e.g. between incompatible applications}
- G06F 13/4068: {Electrical coupling}
- G06F 13/4282: {on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247)}
- G06F 2009/45575: {Starting, stopping, suspending or resuming virtual machine instances}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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. The desktop operating system may be suspended when the mobile computing device is not docked with a secondary terminal environment and resumed when the mobile computing device is docked with a secondary terminal environment that provides a desktop computing experience. The mobile computing device may be a smartphone running the Android mobile OS and a full desktop Linux OS distribution on a modified Android kernel.

## Claims

### Claim 1

A method for configuring a mobile computing device to multiple user environments, the mobile computing device running a mobile operating system in a first execution environment on a shared kernel and running a desktop operating system in a second execution environment concurrently on the shared kernel, the method comprising:
detecting, in the mobile computing device, a docking event of the mobile computing device with a secondary terminal environment;
determining that a user experience profile of the docked secondary terminal environment is associated with the desktop operating system; and
resuming, in response to determining that the user experience profile of the docked secondary terminal environment is associated with the desktop operating system, the desktop operating system from a suspended condition.

### Claim 2 (depends on 1)

The method of claim 1, wherein the step of determining that a user experience profile of the docked secondary terminal environment is associated with the desktop operating system comprises:
receiving, in a desktop monitor service of the mobile operating system, a notification of a docking event from the shared kernel; and
determining, by the desktop monitor service, that the user experience profile of the docked secondary terminal environment is associated with the desktop operating system.

### Claim 3 (depends on 1)

The method of claim 1, wherein the step of resuming the desktop operating system from a suspended condition comprises:
receiving, in a daemon process of the desktop operating system, a call to a remotable object, the call to the remotable object including an action; and
performing the action in the daemon process of the desktop operating system.

### Claim 4 (depends on 1)

The method of claim 1, wherein the step of determining the user experience profile of the secondary terminal environment includes receiving an indicator of the user experience profile of the secondary terminal environment from a dock connector.

### Claim 5 (depends on 1)

The method of claim 1, wherein the step of determining the user experience profile of the secondary terminal environment is based on predefined criteria associated with one or more input or output devices of the secondary terminal environment.

### Claim 6 (depends on 5)

The method of claim 5, wherein the predefined criteria include a resolution of a display device of the secondary terminal environment.

### Claim 7 (depends on 5)

The method of claim 5, wherein the predefined criteria include character input device type criteria.

### Claim 8 (depends on 1)

The method of claim 1, further including associating the desktop operating system with the docked secondary terminal environment.

### Claim 9 (depends on 1)

The method of claim 1, wherein the secondary terminal environment includes a display device, a keyboard, and a pointing device.

### Claim 10

A method for configuring a mobile computing device to multiple user environments, the mobile computing device concurrently running a mobile operating system in a first execution environment on a shared kernel and a desktop operating system in a second execution environment on the shared kernel, the method comprising:
registering a daemon process of the desktop operating system through an inter-process communication channel in the shared kernel to receive remotable objects from a desktop monitor service of the mobile operating system;
detecting a docking event of the mobile computing device with a secondary terminal environment;
notifying the desktop monitor service of the mobile operating system of the docking event;
determining, by the desktop monitor service, an action to be performed by the daemon process of the desktop operating system based on a user experience profile of the docked secondary terminal environment; and
sending, from the desktop monitor service to the daemon process of the desktop operating system through the inter-process communication channel, the action to be performed.

### Claim 11 (depends on 10)

The method of claim 10, wherein the user experience profile of the docked secondary terminal environment is associated with the desktop operating system and the action to be performed comprises resuming the desktop operating system from a suspended condition.

### Claim 12 (depends on 11)

The method of claim 11, further including associating the docked secondary terminal environment with the desktop operating system.

### Claim 13 (depends on 11)

The method of claim 11, wherein the user experience profile of the docked secondary terminal environment is associated with the mobile operating system and the action to be performed comprises suspending the desktop operating system.

### Claim 14 (depends on 13)

The method of claim 13, further including associating the docked secondary terminal environment with the mobile operating system.

### Claim 15

A method for configuring a mobile computing device to multiple user environments, the mobile computing device running a mobile operating system in a first execution environment on a shared kernel and running a desktop operating system in a second execution environment concurrently on the shared kernel, the method comprising:
detecting, in the mobile computing device, a docking event of the mobile computing device with a secondary terminal environment;
determining that the mobile computing device is not docked to a secondary terminal environment; and
suspending, in response to determining that the mobile computing device is not docked to a secondary terminal environment, the desktop operating system.

### Claim 16 (depends on 15)

The method of claim 15, wherein the docking event comprises undocking the mobile computing device from a secondary terminal environment.

### Claim 17 (depends on 15)

The method of claim 15, wherein the step of suspending the desktop operating system comprises:
receiving, in a daemon process of the desktop operating system, a call to a remotable object, the call to the remotable object including an action; and
performing the action in the daemon process of the desktop operating system.
