DE-112011105332-B4 - Methods, devices, and computer program products for the confluence of multiple operating systems
Abstract
Method for providing multiple operating systems with access to hardware resources within a mobile device with one processor, comprising: Execution of a primary operating system kernel by the processor; Execution of at least one driver within the kernel of the primary operating system by the processor; Providing at least one application associated with the primary operating system with access to at least some of the hardware resources via the driver running within the kernel of the primary operating system; and Providing at least one application associated with a secondary operating system with access to at least some of the hardware resources via the driver running within the kernel of the primary operating system, wherein the provision of the application associated with the secondary operating system with access to at least some of the hardware resources includes: Receiving a request to access at least some of the hardware resources by a service associated with the primary operating system, wherein the request is received by the application associated with the secondary operating system; Submitting the request to access at least some of the hardware resources to the driver; and Providing the application associated with the secondary operating system with access to the requested hardware resources via the driver, wherein providing the application associated with the secondary operating system with access to the requested hardware resources includes: Meeting the requirement to access at least some of the hardware resources; Providing the driver with the fulfilled requirement; Transmitting the fulfilled request to the service associated with the primary operating system; and Transmitting the fulfilled request to the requesting application associated with the secondary operating system.
Inventors
- Govind Kothandapani
- Vinothkumar Sundaramoorthy
Assignees
- AMZETTA TECHNOLOGIES, LLC
Dates
- Publication Date
- 20260513
- Application Date
- 20110901
- Priority Date
- 20110613
Claims (14)
- A method for providing multiple operating systems with access to hardware resources within a mobile device with a processor, comprising: Executing a kernel of a primary operating system by the processor; Executing at least one driver within the kernel of the primary operating system by the processor; Providing at least one application associated with the primary operating system with access to at least some of the hardware resources via the driver executed within the kernel of the primary operating system; and Providing at least one application associated with a secondary operating system with access to at least some of the hardware resources via the driver executed within the kernel of the primary operating system, wherein providing the application associated with the secondary operating system with access to at least some of the hardware resources comprises: Receiving a request to access at least some of the hardware resources by a service associated with the primary operating system, wherein the request is received by the application associated with the secondary operating system; Transmitting the request to access at least some of the hardware resources to the driver; and providing the application associated with the secondary operating system with access to the requested hardware resources via the driver, wherein providing the application associated with the secondary operating system with access to the requested hardware resources includes: fulfilling the request to access at least some of the hardware resources; providing the fulfilled request to the driver; transmitting the fulfilled request to the service associated with the primary operating system; and transmitting the fulfilled request to the requesting application associated with the secondary operating system.
- Procedure according to Claim 1 , which further includes running a kernel of the secondary operating system as a driver within the kernel of the primary operating system.
- Procedure according to Claim 1 , wherein providing the application associated with the primary operating system with access to at least some of the hardware resources comprises: receiving a request from the driver to access at least some of the hardware resources from the application associated with the primary operating system; and providing access to the requested hardware resources via the driver.
- Procedure according to Claim 1 , wherein the request is transmitted from the application associated with the secondary operating system to the service associated with the primary operating system via a software bus.
- Procedure according to Claim 1 , where the primary operating system is a Windows-based operating system and the secondary operating system is an Android operating system.
- A computer system within a mobile device, comprising: memory for storing applications, services, a primary operating system, a secondary operating system, and a variety of drivers; a processor coupled to the memory and configured to execute the applications and services and to run the primary operating system, the secondary operating system, and the driver, wherein the processor performs actions comprising: executing a driver within a kernel of the primary operating system; providing at least one application associated with the primary operating system with access to the memory and other hardware resources via the driver executing within the kernel of the primary operating system; and providing at least one application associated with the secondary operating system with access to the memory and other hardware resources via the driver executing within the kernel of the primary operating system, wherein providing the application associated with the secondary operating system with access to at least some of the hardware resources comprises: receiving a request to access at least some of the hardware resources from a service associated with the primary operating system, wherein the request is received by the application associated with the secondary operating system; Transmitting the request to access at least some of the hardware resources to the driver; and providing the application associated with the secondary operating system with access to the requested hardware resources via the driver, wherein providing the application associated with the secondary operating system with access to the requested hardware resources includes: fulfilling the request to access at least some of the hardware resources; providing the fulfilled request to the driver; transmitting the fulfilled request to the service associated with the primary operating system; and transmitting the fulfilled request to the requesting application associated with the secondary operating system.
- Computer system according to Claim 6 , wherein the actions performed by the processor further include: executing a kernel of the secondary operating system as a driver within the kernel of the primary operating system.
- Computer system according to Claim 6 , wherein providing the application associated with the primary operating system with access to at least some of the hardware resources comprises: receiving a request from the driver to access at least some of the hardware resources from the application associated with the primary operating system; and providing access to the requested hardware resources via the driver.
- Computer system according to Claim 6 , wherein the request is transmitted from the application associated with the secondary operating system to the service associated with the primary operating system via a software bus.
- Computer system according to Claim 6 , where the primary operating system is a Windows-based operating system and the secondary operating system is an Android operating system.
- A computer program product within a mobile device, comprising a storage medium on which instructions are stored which, when executed by a processor, cause the processor to perform actions, comprising: Executing a kernel of a primary operating system; Executing a driver within the kernel of the primary operating system; Providing at least one application associated with the primary operating system with access to at least some of the hardware resources via the kernel of the primary operating system executed in the driver; and Providing at least one application associated with the secondary operating system with access to at least some of the hardware resources via the kernel of the primary operating system executed in the driver, wherein providing the application associated with the secondary operating system with access to at least some of the hardware resources comprises: Receiving a request to access at least some of the hardware resources by a service associated with the primary operating system, wherein the request is received by the application associated with the secondary operating system; Transmitting the request to access at least some of the hardware resources to the driver; and providing the application associated with the secondary operating system with access to the requested hardware resources via the driver, wherein providing the application associated with the secondary operating system with access to the requested hardware resources includes: fulfilling the request to access at least some of the hardware resources; providing the fulfilled request to the driver; transmitting the fulfilled request to the service associated with the primary operating system; and transmitting the fulfilled request to the requesting application associated with the secondary operating system.
- Computer program product according to Claim 11 , wherein the instructions further cause the processor to perform: executing a kernel in the secondary operating system as a driver within the kernel of the primary operating system.
- Computer program product according to Claim 11 , wherein providing the application associated with the primary operating system with access to at least some of the hardware resources comprises: receiving a request by the driver to access at least some of the hardware resources from the application associated with the primary operating system; and providing access to the requested hardware resources via the driver.
- Computer program product according to Claim 13 , wherein the request is transmitted from the application associated with the secondary operating system to the service of the primary operating system via a software bus.
Description
CROSS-REFERENCE TO RELATED REGISTRATION This application claims priority of the provisional US Application No. 61/496,394 , submitted on June 13, 2011, the entirety of which is incorporated herein by reference. TECHNICAL AREA The present disclosure relates generally to computer systems and in particular to the provision of multiple operating systems with access to the hardware of a mobile device. BACKGROUND A mobile operating system (OS), also known as a mobile OS, mobile platform, or handheld operating system, is the operating system that controls a mobile device or information device. A mobile OS is fundamentally similar to an operating system like Windows, macOS, or Linux that controls a desktop or laptop computer. However, a mobile operating system is somewhat simpler and focuses more on wireless broadband and local connectivity, mobile multimedia formats, and various input methods compared to a desktop/laptop operating system. Typical examples of devices running a mobile operating system include smartphones, personal digital assistants (PDAs), tablet computers and information devices, e.g., smart devices, which may also include embedded systems, or other mobile and wireless devices. In today's world, mobile dual operating systems have become more common in devices like laptops, as people want the best of both worlds. Windows became the primary operating system for most of these laptops, along with all Linux-based operating systems. More recently, with the increasing popularity of Android in smartphones, there has been a trend toward using Android as a secondary operating system in notebooks and netbooks. Since Android has the advantage of a mature application market, along with developer support, there is a growing push from the market to run Android alongside Windows. While there are attempts to run multiple operating systems on personal communication devices, such attempts are cumbersome and suffer from poor performance. The document US 2011/0093836 A1 For example, discloses a device with multiple coexisting and independent environments that interact with a common kernel, as well as associated operating procedures. The revelation presented herein was made in consideration of these and other considerations. SUMMARY It is understood that this summary is provided to introduce a selection of concepts in a simplified form, the concepts being described in detail below. This summary is neither intended to identify key features or essential characteristics of this disclosure, nor is it intended to limit the scope of the disclosure. According to one embodiment, a method provides multiple operating systems with access to hardware resources in a mobile device comprising a processor. The method includes the processor executing a kernel of a primary operating system and a driver within the kernel of the primary operating system. The method further includes providing at least one application associated with the primary operating system that accesses at least some of the hardware resources via the driver running in the kernel of the primary operating system, and providing at least one application associated with a secondary operating system that accesses at least some of the hardware resources via the driver running in the kernel of the primary operating system. Providing the application associated with the secondary operating system with access to at least some of the hardware resources includes receiving a request to access at least some of the hardware resources through a service associated with the primary operating system, with the request being received by the application associated with the secondary operating system. Providing the application associated with the secondary operating system with access to at least some of the hardware resources further includes submitting the request to access at least some of the hardware resources to the driver and providing the application associated with the secondary operating system with access to the requested hardware resources via the driver. Providing the application associated with the secondary operating system with access to the requested Hardware resources include fulfilling the request to access at least some of the hardware resources, providing the fulfilled request to the driver, submitting the fulfilled request to the service associated with the primary operating system, and submitting the fulfilled request to the requesting application associated with the secondary operating system. According to another embodiment, a computer system within a mobile device comprises memory configured to store applications, services, a primary operating system, a secondary operating system, and at least one device driver. The computer system further comprises a processor connected to the memory. The processor is configured to execute the applications and services, the primary operating system, the secondary operating system, and the driver. The processor is configured to perf