The present disclosure relates generally to operating systems and operating system environments.
Various operating systems provide features and applications that are often specific to the given operating system. For this reason, it has become useful for computing devices, including handheld mobile devices, to be capable of running more than one operating system environment. By running more than one operating system environment on a device, users are able to access the features and applications associated with each of the operating system environments, thereby enhancing the capabilities and functions of the device.
In the past, virtualization techniques have been used to accomplish running multiple operating system environments; however such approaches require emulation of an entire machine which is resource intensive. Systems have now been developed that enable actual running of multiple operating system environments without the need for such resource intensive machine emulation. Such systems utilize a common kernel where the operating system environments may be considered middleware, in that, some services related to the various applications may be supported within the confines of the environment. Therefore, in these systems, the operating system environments co-exist independently, and do not require virtualization as in the past. Devices supporting these multiple environments therefore enable users to access and enjoy the features of the operating systems and their associated data such as applications.
Nevertheless, some demarcation between the operating system environments must exist for the purpose of presentation to the device user. The environments usually provide their own unique approach to how associated data is displayed by the operating system. In some cases, the user may be compelled to switch display views in order to work with one or another operating system environment. Being forced to switch views in this manner negatively impacts user experience because the work or operating contexts in which the user was engaged can be lost or muddled among the various views. Furthermore, any given operating system environment will not understand, and therefore will be incapable of interpreting, data associated with a different operating system environment and any associated data or working context.
The various embodiments disclosed provide an enhanced user experience when using multiple operating system environments having a common kernel. The embodiments combine the graphical display data from one operating system environment with the graphical display data from at least a second operating system environment to create a combined graphical display. For example, in one embodiment, mobile device home screens of a first operating system environment are mapped to workspaces of a second operating system environment. In this example, when the user switches between workspaces, the user also switches between home screens, which results in a smoother and more consistent user experience in working with the two operating system environments
The present disclosure provides a method that includes running a first operating system environment and a second operating system environment, the first and second operating system environments being independent from each other, both operating system environments utilizing a common kernel. The method continues with mapping a home screen of the first operating system environment to a workspace of the second operating system environment, and generating display data for a combined workspace using the mapping of the home screen to the workspace.
The method may include generating the display data for the combined workspace, including at least one selectable application icon for selecting an application associated with the first operating system environment, and at least a second selectable application icon for selecting an application associated with the second operating system environment.
The method may include mapping a plurality of home screens of the first operating system environment, to a corresponding plurality of workspaces of the second operating system environment; and generating display data for a plurality of corresponding combined workspaces using a corresponding mapping, corresponding to each combined workspace, with at least one combined workspace including at least one selectable application icon of an application of the first operating system environment.
Mapping a home screen of the first operating system environment to a workspace of the second operating system environment may include, for example, mapping positional coordinates of the home screen to positional coordinates of the workspace.
In one embodiment, mapping a home screen of the first operating system environment to a workspace of the second operating system environment, includes mapping an Android™ home screen with a Linux® workspace where the first operating system environment is an Android™ operating system environment and the second operating system environment is a Linux® operating system environment. The method may map each Android™ home screen, of a plurality of Android™ home screens, to a corresponding workspace of a plurality of corresponding Linux® workspaces.
The method may include switching, in response to selection input, from a first combined workspace of the plurality of combined workspaces, to a second combined workspace of the plurality of combined workspaces, and maintaining a current state of a least one application window or at least one widget, such that returning to the first combined workspace in response to another selection input, returns the at least one application window or the at least one widget to the same current state.
The method may include displaying the combined workspace on a display, the combined workspace including first display data associated with the first operating system environment, having at least one selectable application icon associated with the first operating system environment, and second display data associated with the second operating system environment, including at least a second selectable application icon associated with the second operating system environment, both icons being selectable within the combined workspace. The method may display the combined workspace on a display, including first display data having at least one active widget associated with the first operating system environment, and second display data having at least a second selectable application icon associated with the second operating system environment, both the widget and the icon being within the combined workspace.
Another aspect of the disclosed embodiments is an apparatus having at least one processor, operative to run a first operating system environment and a second operating system environment. The first and second operating system environments are independent from each other and both utilize a common kernel. The apparatus includes multi-environment display data handling logic that is operative to map a home screen of the first operating system environment to a workspace of the second operating system environment, and generate display data for a combined workspace using the mapping of the home screen to the workspace.
The multi-environment display data handling logic is operative to generate the display data for the combined workspace, including at least one selectable application icon for selecting an application associated with the first operating system environment, and at least a second selectable application icon for selecting an application associated with the second operating system environment.
The multi-environment display data handling logic is operative to map a plurality of home screens of the first operating system environment, to a corresponding plurality of workspaces of the second operating system environment, and generate display data for a plurality of corresponding combined workspaces using a corresponding mapping, corresponding to each combined workspace, with at least one combined workspace including at least one selectable application icon of an application of the first operating system environment.
The multi-environment display data handling logic is operative to map a home screen of the first operating system environment to a workspace of the second operating system environment by, for example, mapping positional coordinates of the home screen to positional coordinates of the workspace.
In one embodiment, the multi-environment display data handling logic is operative to map a home screen of the first operating system environment to a workspace of the second operating system environment, including mapping an Android™ home screen with a Linux® workspace where the first operating system environment is an Android™ operating system environment and the second operating system environment is a Linux® operating system environment. The multi-environment display data handling logic is operative to map each Android™ home screen, of a plurality of Android™ home screens, to a corresponding workspace of a plurality of corresponding Linux® workspaces.
The multi-environment display data handling logic is operative to switch, in response to selection input, from a first combined workspace of the plurality of combined workspaces, to a second combined workspace of the plurality of combined workspaces, and maintain a current state of a least one application window or at least one widget, such that returning to the first combined workspace in response to another selection input, returns the at least one application window or the at least one widget to the same current state.
The apparatus may include a display, operatively coupled to the at least one processor, to display the combined workspace. The displayed combined workspace may include first display data associated with the first operating system environment, and have at least one selectable application icon associated with the first operating system environment, and second display data associated with the second operating system environment, including at least a second selectable application icon associated with the second operating system environment. Both icons are selectable within the combined workspace.
The displayed combined workspace may include first display data, having at least one active widget associated with the first operating system environment, and second display data having at least a second selectable application icon associated with the second operating system environment. Both the widget and the icon are displayed within the combined workspace.
Another aspect of the disclosed embodiments is a computer readable, non-volatile, non-transitory memory, storing executable instructions for execution on at least one processor. When executed, the executable instructions cause the at least one processor to run a first operating system environment and a second independent operating system environment, with both operating system environments utilizing a common kernel.
The executable instructions also cause the at least one processor to map a home screen of the first operating system environment to a workspace of the second operating system environment, and generate display data for a combined workspace using the mapping of the home screen to the workspace.
The executable instructions may also cause the at least one processor to map a plurality of home screens of the first operating system environment, with a corresponding plurality of workspaces of the second operating system environment, and generate display data for a plurality of corresponding combined workspaces using a corresponding mapping, corresponding to each combined workspace, with at least one combined workspace including at least one selectable application icon of an application of the first operating system environment.
Turning now to the drawings wherein like numerals represent like components,
The larger display 109 may be used to display various workspaces 115, that are associated with a second operating system environment that may be different from the operating system environment associated with the home screens 105 displayed by mobile device 101. The mobile device 101 may use one or more operating system environments together, or may launch operating system environments as needed. The operating system environment displayed on the display 109 may include an operating system environment toolbar 111 as shown. The workspaces 115, are user selectable and the user can toggle from one workspace to another workspace, by for example, selecting a workspace icon or button, or by hitting a workspace hotkey on a keypad, or by hitting a workspace toggle function on either a touchscreen, a keypad, a keyboard, or by mouse cursor selection, etc. When one of the workspaces is selected, that workspace may take up the entirety of the display screen of display 109, with the exception of the toolbar 111, which may remain in a constant position. The toolbar 111, may remain in place even as the user toggles through the various workspaces. For example, the user may toggle between various workspaces 1 through 4. The workspaces serve as, for example, a set of different “desktops” where various utilities or applications may be active. For example, a user may have an email program and a browser open in workspace 1. The user may toggle to workspace 2 and launch a photo editing application and perform photo editing. The user can toggle back to workspace 1, and resume working with the email program and/or browser. In other words, a “workspace” enables a user to organize applications in use so that the user does not have to shut down or resize application windows, or reorganize windows to perform other tasks requiring different applications or work contexts. For example, the user may have an application open for a communication context, such as email, in one workspace, and a set of application windows related to computer programming or debugging, i.e. a computer programming context, in another workspace. The user can toggle between the different workspaces and therefore between different groupings or arrangements of applications and/or application windows.
As shown in
The terms “screen,” “home screen,” and “workspace” are used in reference to an “image” which refers generally to what is “displayed” on a display. That is, an image, including a “screen,” “home screen,” and/or “workspace” may be displayed on a display. In one aspect, a home screen and/or a workspace may consist of a “background” and a “foreground,” where the background includes a background image and/or background image objects, and the foreground includes various foreground image objects. Examples of “images” include, but are not limited to, a computer desktop, a gaming background, a video, an application window, an icon, a widget, etc. In other words, the term “image” may refer to a background, or may refer individually, or collectively, to elements or objects in the foreground, of hovering over, a background image. Therefore, image “objects” may be, but are not limited to, application windows, icons, widgets, etc., and may be, in some scenarios, moveable, by drag-and-drop operations, about or within a home screen and/or workspace. The term “display data” is used interchangeably herein with the term “image data” and refers to the information (data, or digital information) that the display interprets and/or decodes to “display,” i.e. show the user, an image such as a workspace or home screen, as well as any associated elements or objects in the background and/or foreground of home screens or workspaces, etc.
Among the advantages of the embodiment illustrated by
In operation of the embodiment exemplified in
The mapping between a home screen and a workspace may be accomplished in various ways in accordance with the embodiments. For example, position coordinates of a home screen may be mapped to position coordinates of a workspace to generate mapping data 223. The mapping data 223 includes a home screen column 225 and a workspace column 227. In one example, a reference point such as a corner, of a first home screen, “HS01” may be represented by position coordinates x0, y0 and z0. The entirety of the first home screen is represented by a set of position coordinates from x0, y0, z0 to xn, yn, zn. In one embodiment, these home screen coordinates may be mapped to corresponding position coordinate points within a workspace. For example, the mapping data 223 includes rows 223 that map a first home screen “HS01” to a first workspace “WS01.” The home screen position coordinates may be mapped to any suitable area of the corresponding workspace. For example, a first home screen position coordinate HS01: x0,y0,z0 is shown mapped to a first workspace position coordinate WS01:xn1,yn1,zn1. In the
As would be understood, any number of home screens may be mapped to any number of workspaces in accordance with the embodiments. Furthermore, although the example mapping data 223 shows a mapping between a single home screen and a single corresponding workspace, the embodiments are not limited to this scheme. For example, in an alternative embodiment, more than one home screen may be mapped to a single workspace and vice versa. Also, the embodiments are not limited to mapping between the home screens and/or workspaces of only two operating system environments. In one example, the mapping data 223 may include a third column that maps a home screen or workspace of a third operating system environment to the workspace of the second operating system environment.
The mapping 217, in accordance with the embodiments, is not limited to a direct position coordinate to position coordinate mapping. Various approaches may be employed such as distortion or stretching of the home screen to fit into, or fit across, a larger section of a workspace. In other embodiments, the mapping may not be over a contiguous section of the workspace. That is, portions of the home screen may be mapped to portions of the workspace and the portions may not be contiguous portions. It is to be understood that the position coordinates of a home screen and of a workspace, may be related to display data that includes image pixels in some embodiments. In other words, first display data associated with the first operating system environment may be mapped to second display data associated with the second operating system environment to form combined display data, i.e. the combined workspace. The combined display data may include, but is not limited to, appropriate color, brightness, transparency or opaqueness information to determine, and properly display, background and foreground image objects within the combined workspace. For example, the depth or “z” coordinate may be a luminescence, transparency or some other pixel characteristic value. Furthermore, the “x, y, z” coordinates may include various pixel characteristic parameters as understood by those of ordinary skill. In other words, the coordinates “x,y,z” are used only for example and for purposes of explanation. The mapping data 223 may provide any detailed information needed to accomplish the mapping 217.
Further details of the various embodiments are best understood with reference to
In accordance with the embodiments, the programmable processor 303 may run various operating system environments, such as operating system environment 1, operating system 2 environment, and so on through an N-th operating system environment. In other words, the programmable processor 303 is operative to run one or more of the various operating system environments 307, concurrently. The plurality of operating system environments 307 are each completely autonomous and can exist and function independently from one another. One or more of the operating system environments may be run concurrently, and each operating system environment utilizes a common kernel 305. In other words, each one of the operating system environments is completely autonomous and may exist and function completely independently, without any of the other operating system environments being executed. The operating system environments provide “environments,” in that, for example, all necessary libraries, toolkits, windowing, etc., is present within the environment to enable an application associated with the operating system environment to function. The common kernel 305 provides fundamental interaction at the hardware level of mobile device 301. For example, the common kernel 305 may provide required operating system tasks such as program loading, system resource allocation, handling device input and output, and some memory management functions. The common kernel 305 may be created as an object-oriented design that can interface, and enable communication with, programming objects within the various operating system environments 307.
Examples of operating system environments include, but are not limited to, Android™, Ubuntu®, Linux® based operating systems, etc. In one example embodiment, the mobile device 301 may be connected to the peripheral device 327 by way of a docking port that provides the communication bus 329. In this example, the mobile device 301 display data may be shown on display 325 which may be larger in dimensions than the integrated display 321.
In accordance with the various embodiments, the apparatus 300 includes multi-environment display data handling logic 309. The multi-environment display data handling logic 309 may be contained within one or more of the various operating system environments 307. However, for the example embodiment illustrated in
The term “logic” as used herein may include software and/or firmware executing on one or more programmable processors (including CPUs and/or GPUs), and may also include ASICs, DSPs, hardwired circuitry (logic circuitry), or combinations thereof. For the example embodiment illustrated by
Although the example provided by
As mentioned briefly above, in some embodiments, the apparatus 300 may include the peripheral device 327 which may further have a docking station, such that the mobile device 301 may be docked within the peripheral device 327 and obtain the benefit of the larger display 325 as well as other possible peripheral functions. One example of such a peripheral device is the Motorola Lapdock® product.
Although the communication bus 329, which may be any appropriate interface, is shown connected directly to the larger display 325, it is to be understood that various other hardware and components may exist in the peripheral device intervening between the hardware 319 and the display 325. In other words,
In accordance with the embodiments, the multi-environment display data handling logic 309 may map home screens of the first operating system environment to workspaces of the second operating system environment. This mapping may be recorded as mapping data 331 stored in memory 311. By using the mapping data 331, the multi-environment display data handling logic 309 may generate combined workspace display data 333.
The combined workspace display data 333 may be provided to hardware 319 for display on either display 321, or on the larger display 325 of the peripheral device 327. In one example embodiment, the first operating system environment may be an Android™ operating system environment that provides home screens one through four as illustrated in
The multi-environment display data handling logic 309 may handle display data from any of the operating system environments 307, and send data to shared memory space of memory 311, to the GPU 315, or combinations of both as appropriate. For example, in one embodiment the multi-environment display data handling logic 309 may determine which of the first display data or the second display data should be transparent, and accordingly provide the configured combined workspace display data 333 to a shared memory space contained within memory 311. In some instances, the first (or other) operating system environment may be called upon to perform graphically intensive application activity such as for example displaying video. In those instances, the multi-environment display data handling logic 309 may pass first display data and/or second display data to the GPU 315 to more efficiently handle video data processing. In other words, the multi-environment display data handling logic 309 makes decisions related to the first display data and second display data, from the corresponding first operating system environment and second operating system environment, and acts accordingly to utilize either shared memory space of the memory 311, or interact with the GPU 315 to generate the combined workspace display data 333. In one example, the second display data associated with the second operating system environment may be handled as overlay data with respect to the first display data associated with the first operating system environment. The multi-environment display data handling logic 309 may also handle graphics information in various formats. For example, GDK (GIMP Drawing Kit) information may be used by one or more operating system environments, while JAVA graphics objects may be used by others. In accordance with the embodiments, the multi-environment display data handling logic 309 utilizes shared memory space of memory 311 to handle various graphics objects, and/or other such display data accordingly, by for example, changing or adjusting object properties to generate the combined workspace display data 333.
Important to understand is that some graphical objects may be afforded various attributes including, but not limited to, state attributes that determine a live or active status of an object, or data displayed by the object. One example is a widget, which may provide an image object that provides real time information. In accordance with the embodiment, such image object state information is preserved, such that the real time information is accordingly shown on the combined workspace image. For example, turning briefly to
The
The flowchart of
Among other advantages of various embodiments disclosed herein, the user experience is enhanced when accessing application data or other data using one or more operating system environments. Although the embodiments have been described using examples related to two operating system environments, the various embodiments are not limited to only two operating system environments and can incorporate many operating system environments as illustrated by the plurality of operating system environments 307 shown in
The various embodiments also include computer readable memory that may contain executable instructions, for execution by at least one processor, that when executed, cause the at least one processor to operate in accordance with the multi-environment display handling logic 309 functionality herein described. The computer readable memory may be any suitable non-volatile, non-transitory, memory such as, but not limited to, programmable chips such as EEPROMS, flash ROM (thumb drives), compact discs (CDs) digital video disks (DVDs), etc., that may be used to load executable instructions or program code to other processing devices or electronic devices such as those that may benefit from the features of the herein described embodiments. The executable instructions may also include the various operating system environments and the common kernel.
While various embodiments have been illustrated and described, it is to be understood that the invention is not so limited. Numerous modifications, changes, variations, substitutions and equivalents will occur to those skilled in the art without departing from the scope of the present invention as defined by the appended claims.
The present disclosure is related to copending U.S. patent application No. ______, Attorney Docket No. CS39607, “METHOD AND APPARATUS FOR DISPLAYING ACTIVE OPERATING SYSTEM ENVIRONMENT DATA WITH A PLURALITY OF CONCURRENT OPERATING SYSTEM ENVIRONMENTS,” and U.S. patent application No. ______, Attorney Docket No. CS39608, “METHOD AND APPARATUS FOR PROVIDING CONTEXTUAL INFORMATION BETWEEN OPERATING SYSTEM ENVIRONMENTS,” both of which are assigned to the same assignee as the present application, and both of which are hereby incorporated by reference herein.