WO2012173638A1 - Methods, devices and computer program products for confluence of multiple operating systems - Google Patents
Methods, devices and computer program products for confluence of multiple operating systems Download PDFInfo
- Publication number
- WO2012173638A1 WO2012173638A1 PCT/US2011/050206 US2011050206W WO2012173638A1 WO 2012173638 A1 WO2012173638 A1 WO 2012173638A1 US 2011050206 W US2011050206 W US 2011050206W WO 2012173638 A1 WO2012173638 A1 WO 2012173638A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- operating system
- access
- hardware resources
- driver
- request
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
Definitions
- the present disclosure relates generally to computing systems, and more particularly, to providing multiple operating systems with hardware access on a mobile device.
- a mobile operating system also known as a mobile OS, a mobile platform, or a handheld operating system, is the operating system that controls a mobile device or information appliance.
- a mobile OS is similar in principle to an operating system, such as Windows, Mac OS, or Linux that controls a desktop computer or laptop.
- a mobile OS is currently somewhat simpler and deals more with the wireless versions of broadband and local connectivity, mobile multimedia formats, and different input methods compared with a desktop/laptop OS.
- Typical examples of devices running a mobile operating system are smartphones, personal digital assistants (PDAs), tablet computers and information appliances, e.g., smart devices, which may also include embedded systems, or other mobile devices and wireless devices.
- PDAs personal digital assistants
- information appliances e.g., smart devices, which may also include embedded systems, or other mobile devices and wireless devices.
- a method provides multiple operating systems with access to hardware resources within a mobile device including a processor.
- the method includes running, via the processor, a kernel of a primary operating system and running 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 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.
- a computing system within a mobile device includes a memory configured to store applications, services, a primary operating system, a secondary operating system, and at least one device driver.
- the computing system further includes a processor coupled to the memory.
- the processor is configured to execute the applications and services, the first operating system, the secondary operating system, and the driver.
- the processor is configured to performs acts including running the 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 running 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 running within the kernel of the first operating system.
- a computer program product within a mobile device includes a storage medium upon which instructions are recorded that, when executed by a processor, cause the processor to perform acts.
- the acts include running a kernel of a primary operating system, running a driver within the kernel of the primary operating system, and 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.
- the acts further include providing at least one application associated with 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.
- FIG. 1 illustrates a conventional Android architecture for mobile devices
- FIG. 2 illustrates a conventional Windows architecture for mobile devices
- FIG. 3 illustrates an architecture for running dual operating systems within a mobile device according to an exemplary embodiment
- FIG. 4 illustrates a method for fulfilling a request of a primary operating system according to an exemplary embodiment.
- FIG. 5 illustrates a method for fulfilling a request of a secondary operating system according to an exemplary embodiment.
- FIG. 6 is a block diagram of a computing system in which the architecture of FIG. 3 may be implemented according to exemplary embodiments.
- Computer operating systems are typically built upon a layered approach.
- One advantage of the layered operating structure is that each layer of code is given access only to the layer below it. This structure also allows the operating system to be debugged, starting at the lowest layer and adding one layer at a time until the whole system works correctly. Layering also makes it easier to enhance the operating system; one entire layer can be replaced without affecting other parts of the operating system.
- a protection ring is one of two or more hierarchical levels or layers of privilege within the architecture of a computer system. This is generally hardware-enforced by some CPU architectures that provide different CPU modes at the hardware or microcode level. Rings are arranged in a hierarchy from most privileged (most trusted, usually numbered zero) to least privileged (least trusted, usually with the highest ring number). In most operating systems, Ring 0 is the level with the most privileges and interacts most directly with the physical hardware, such as the CPU and memory.
- FIG. 1 is a diagram of a conventional Android architecture for mobile devices.
- the applications layer 110 may be considered to be the least privileged layer, residing in Ring 3.
- the application framework layer 120 runs in Ring 2, having more privileges.
- the libraries Android runtime layer 130, 140 runs in Ring 1, having even more privileges.
- the kernel 150 runs in Ring 0 and has the most privileges.
- the applications layer 110 includes various applications, which may be written in JAVA. These applications, include, e.g., a calendar, a contacts list, an email client, SMS program maps, a phone application, a web browser application, etc.
- the application framework 120 is used by developers to access framework application programming interfaces (APIs) and manage the basic functions of the mobile device, such as resource allocation, switching between processes or programs, telephone applications, and keeping track of the mobile device's physical location.
- the application framework includes various managers, including an activity manager, a window manager, a content provider manager, a view system manager, a package manager, a telephony manager, a resource manager, a location manager, and a notification manager.
- the library layer 130 includes libraries written, e.g., in C, C++, etc., and is used by various systems.
- the libraries instruct the mobile device how to handle different kinds of data and are exposed to Android developers via the application framework 120.
- Libraries may include, e.g., a surface manager, a media framework library, an SQLite library, an Open GL/ES library, a Free Type library, a WebKit library, an SGL library, an SSL library, and an libc library.
- the Android runtime layer 140 which includes a set of core libraries and a Dalvik Virtual Machine (DVM), is also located in the library layer 130.
- the runtime layer 140 includes the set of base libraries mat are required for Java libraries. Every Android application gets its own instance of Dalvik virtual machine. Dalvik has been written so that a device can run multiple virtual machines efficiently with minimal memory.
- the Linux kernel layer 1 SO includes Android memory management programs, security settings, power management software and several drivers for hardware, file system access, networking, and inter-process-communication.
- the kernel ISO also acts as an abstraction layer between the hardware 160 and the rest of the software stack.
- the hardware layer 160 includes physical hardware including, e.g., a hard drive for storing data, a processor for executing applications, and a memory which may include an operating system which controls scheduling of tasks and access to system resources.
- physical hardware including, e.g., a hard drive for storing data, a processor for executing applications, and a memory which may include an operating system which controls scheduling of tasks and access to system resources.
- FIG. 2 illustrates an exemplary conventional Windows architecture for a mobile device.
- the Windows architecture shown in FIG. 2 represents a Windows 2000 operating system. However, it should be appreciated that the other versions of Windows are contemplated.
- the Windows architecture 200 which may be included within a mobile device, operates in two modes. These two modes are represented in FIG. 2 as the kernel mode 220 and the user mode 210.
- the components in the user mode are considered to reside in Ring 3, the least privileged.
- the components in the kernel mode are in Ring 0, the most privileged.
- the user mode 210 has four primary responsibilities: special system support processes, services that are server processes, environment subsystems, and user applications.
- the special support processes include, e.g., the logon process and the session manager.
- the services that are server processes include, e.g., the event Log and schedule services.
- the environment subsystems provide an operating system environment by exposing the native operating system services to user applications.
- the user mode includes user applications, such as Win32 applications 204 as illustrated.
- the user applications may also include various other types of applications, e.g., Windows 3.1, MS-DOS, POSIX, OS 2 applications, etc.
- the applications 204 may include applications similar to the applications shown in FIG. 1, e.g., various user applications, such as camera applications, a phone application, a browser application etc.
- the user mode 210 also includes services, such as Win32 services 202.
- the services may also include other types of services, e.g., Windows 3.1, MS-DOS, POSIX, OS 2 services, etc.
- the services 202 may be considered special types of applications that may be started automatically at system boot, e.g., event logging and scheduling.
- the services 202 provide application programming interfaces (APIs) that are specific to the Windows operating system.
- APIs application programming interfaces
- Some applications and services in the user mode 210 form a client server relationship, in which the applications are the clients, and the services are the servers.
- One of the benefits of this type of architecture is that support for other types of applications can be provided by simply adding subsystems.
- Other applications communicate directly with the executive layer.
- the user mode software is not able to access hardware directly. Access to hardware is provided to the user mode 210 via the kernel mode 220. In the kernel mode 220, software is able to access the hardware and system data, as well as access all other system resources.
- the kernel mode 220 has the following components: executive 225, microkernel 228, kernel mode driver 227, and Windows hardware abstraction layer (HAL) 229.
- the executive layer 225 contains executive services 222, executive components 224, and an object manager 226.
- the executive services 222 provide Application Programming Interfaces (APIs) for accessing the executive components 224.
- Win32 applications 201 and Win32 services 202 use the executive services 222 to access the I O manager, process manager, and other executive components.
- the executive components 224 contain components that implement memory management, process and thread management, security, I/O, interprocess communication, and other base operating system services. For the most part, these components interact with one another in a modular, layered fashion.
- the executive components 224 include an I/O system manager that is responsible for dispatching all system I/O requests, and a security reference monitor that is responsible for controlling which objects have permissions to which resources.
- Each object has an Access Control List (ACL) that is queried when the object makes a service request. Access to resources is allowed or disallowed according to the rights the module has in the ACL.
- ACL Access Control List
- the executive components 224 also include a Local Procedure Call (LPC) manager that handles inter-process communications used to pass messages between processes, and a Virtual Memory Manager (VMM) that manages the virtual address space of each process, shares memory between processes, and protects each process's virtual memory. All I O devices, network ports, printers, drives, and so on are mapped to virtual files. These virtual files are referred to as file objects and are managed by the object manager 226 just like any other object.
- LPC Local Procedure Call
- VMM Virtual Memory Manager
- the executive components 224 also include process manager that sees processes as objects. Its responsibility is to create and terminate processes and threads. It also suspends and resumes the execution of threads, and stores and retrieves information about processes and threads.
- the executive components 224 also include a Pnp manager that handles plug and play and supports device detection and installation at boot time and a power manager that deals with power events and notifies affected drivers.
- the executive components 224 further include a windows manager and a Graphic Device Interface (GDI) that provide the graphic user interface (GUI).
- the windows manager controls the placement and appearance of windows within a windowing system in a graphical user interface.
- the GDI handles tasks, such as drawing lines and curves, rendering fonts, and handling palettes.
- the executive components 224 may also include additional components, e.g., a cache manager.
- the cache manager improves the performance of file-based I/O by causing recently referenced disk data to reside in main memory for quick access. It also defers disk writing by holding the updates in memory for a short time before sending them to disk.
- the object manager 226 handles calls from other executive subject systems, especially system calls. System calls pass through the object manager to gain access to Winnows resources.
- the object manager 226 creates, manages, and deletes executive objects.
- Executive objects are created in the executive layer 22S and are accessible to the executive and protected subsystems. They can be thought of as message packets that represent items such as processes, threads, semaphores, and other low-level objects.
- the microkernel 228 sits between the executive layer 22S and the Windows
- HAL 229 provides multiprocessor synchronization, thread and interrupt scheduling and dispatching, and trap handling and exception dispatching. During system startup, it extracts information from the registry, such as which device drivers to load and in what order.
- the hardware abstraction layer 229 includes code associated with the
- Windows operating system that changes with the hardware that the operating system is being run on. Thus, it is compatible with multiple processor platforms.
- the hardware abstraction layer 229 manipulates the hardware 230 directly.
- the hardware layer 230 includes physical hardware including, e.g., a hard drive for storing data, a processor for executing applications, and a memory which may include an operating system which controls scheduling of tasks and access to system resources.
- physical hardware including, e.g., a hard drive for storing data, a processor for executing applications, and a memory which may include an operating system which controls scheduling of tasks and access to system resources.
- the kernel mode device drivers 227 enable the kernel layer 220 to interact with the hardware layer 230. Each of the drivers has well defined system routine and interval routes that it exports to the rest of the operating system.
- the kernel mode drivers 227 send and receive load parameters and configuration data from the registry. While the Android architecture and Windows architecture described above are useful for mobile devices for different reasons, there has been a push to have multiple operating systems on a single mobile device. Several attempts have been made to accomplish this.
- Another approach involves running Android using virtualization technology. While virtualization is a common approach, not all processors have virtualization capability built in. Also, this approaches results in low processor performance.
- FIG. 3 illustrates an architecture for running dual operating systems in a mobile device according to an exemplary embodiment.
- the architecture 300 which may be included in a mobile device, includes a Windows architecture similar to that shown in FIG. 2 with enhancements for running an Android operating system. It should be appreciated that in the diagram shown in FIG. 3, several elements of the Windows architecture have been omitted for simplicity of illustrations. Although various elements of the Windows architecture are not shown, such elements are considered part of the architecture of the system shown in FIG. 3.
- the architecture 300 includes software architecture having a user mode layer 310 and a kernel mode layer 320.
- the components in the user mode 310 may be considered to reside in Ring 3, the least privileged.
- the components in the kernel mode 320 may be considered to run in Ring 0, the most privileged.
- the user mode 310 includes Window applications 307, Android Applications 305 and Windows services, e.g., Win32 services 308 Windows 3.1, MS-DOS, POSIX, OS 2 services, etc.
- the Windows applications 307 may include various applications, e.g., a camera application, a browser application (e.g., Explorer), a phone application, Notepad, etc.
- the Windows applications 307 may include Win32 applications, Windows 3.1, MS-DOS, POSIX, OS 2 applications, etc.
- the Android applications 305 may also include various applications, e.g., a camera application, a browser application, a phone application, etc.
- the hardware layer 330 includes physical hardware including, e.g., a hard drive for storing data, a processor for executing applications, and a memory which may include code for running a Windows operating system to control scheduling of tasks and access to system resources, along with code for executing other software represented in FIG. 3.
- physical hardware including, e.g., a hard drive for storing data, a processor for executing applications, and a memory which may include code for running a Windows operating system to control scheduling of tasks and access to system resources, along with code for executing other software represented in FIG. 3.
- Access to hardware is provided to the user mode 310 via the kernel mode 320.
- the software is able to access the hardware and system data, as well as access all other system resources.
- the kernel mode device drivers 324 enable the kernel layer 320 to interact the hardware layer 330. Also, a driver 326 is provided for running the Android kernel. Thus, according to exemplary embodiments, the Android OS runs as a Windows driver in the kernel mode 320.
- Windows applications 307 may access the kernel mode 320 directly via the Windows driver 324 or indirectly via the Win32 services 308, depending on the application.
- modem application may directly access the modem via the Windows driver 324
- general Windows applications may access the keyboard using the Win32 services 308 to dispatch keyboard inputs.
- Requests for access from the Android applications 305 arc communicated to the Windows services 308 via a confluence software bus 322.
- the Windows services 308 sends the request to a Windows driver 324 which accessing the hardware 330 through a HAL (not shown for simplicity of illustration).
- the requested hardware resources are then provided to the Android applications 305 via the driver 324, the Windows services 308, and the confluence software bus 326.
- Android application requests that need to be fulfilled by the Android operating system are sent to ether Android kernel running as a windows driver 326 via the confluence software bus 322.
- the Android kernel 326 fulfills the request that needs to be handled by the Android OS and provides the fulfilled request to the Android applications 305 via the confluence software bus 322.
- the architecture shown in FIG. 3 may work, consider a camera application. If the camera application is accessed via Windows, the Windows camera application requests the camera driver included in the Windows drivers 324 for a picture. The camera driver access the actual camera in the hardware layer 330 and provides the picture to the requesting application. If the camera application is accessed via Android, the Android camera application requests the camera hardware layer for a picture, and the request is routed to the camera server services included in the Windows services 308 via the confluence software bus 322.
- a Windows camera server service included within the Windows services 308 requests the Windows camera driver for a picture. The camera driver accesses the actual camera and provides the pictures to the Windows camera services. The Windows camera service sends the picture to the Android camera application via the confluence software bus 322.
- the architecture 300 may be included in a mobile device, such as a mobile phone.
- the architecture may also be included in other devices, e.g., a workstation, a telephone, a desktop computer, a laptop, a notebook computer, a server, a handheld computer, a media playing device, a gaming system, a mobile computing device, or any other type and or form of computing, telecommunications, or media device that is capable of communication
- FIGS. 4 and 5 are flow charts illustrating methods for providing access to hardware resources in a mobile device according to an exemplary embodiment. It should be understood that the steps or other interactions of the illustrated method are not necessarily presented in any particular order and that performance of some or all the steps in an alternative order is possible and is contemplated. The steps have been presented in the demonstrated order for ease of description and illustration. Steps can be added, omitted and/or performed simultaneously without departing from the scope of the appended claims. It should also be understood that the method can be ended at any time. In certain embodiments, some or all steps of the method, and/or substantially equivalent steps can be performed by execution of computer-executable instructions stored or included on a non-transitory computer- readable medium.
- FIG. 4 illustrates a method for handling a request for hardware access from an application associated with a primary operating system, e.g., a Windows operating system.
- a request is received from an application, associated with a primary operating system, e.g., a Windows application 307, at step 410.
- the request is communicated to a driver running within a kernel of the primary operating system, e.g., the driver 324.
- the request may instead be communicated to a service included, e.g., in the services 308, and then communicated to the driver 324, depending on the type of application.
- hardware is accessed via the driver to fulfill the request.
- the fulfilled request is provided to the driver.
- the fulfilled request is communicated to the requesting application.
- FIG. 5 illustrates a method for handling a request for hardware access from an application associated with a secondary operating system, e.g., an Android operating system.
- a request is received from an application associated with a secondary operating system, e.g., an Android application 305, at step 510.
- the request is communicated to a service associated with the primary operating system, e.g., the services 308.
- the request is communicated to a driver running within a kernel of the primary operating system, e.g., the driver 324.
- hardware is accessed via the driver to fulfill the request.
- the fulfilled request is provided to the driver associated with the primary operating system.
- the fulfilled request is communicated to the requesting service associated with the primary operating system.
- the fulfilled request is communicated to the requesting associated with the secondary operating system.
- FIG. 6 is a block diagram of a computing device 600 with which the software architecture of FIG. 3 may be implemented.
- the computing device 600 may be included within a mobile device.
- the computing device 600 includes a processor 610 that receives inputs, e.g., user requests, and transmits outputs, e.g., responses to user requests via I O Data Ports 620.
- the I/O Data Ports 620 can be implemented with, e.g., an interface including an antenna or other suitable type of transceiver through which data and signals may be transmitted and received wired and/or wirelessly.
- the computing device 600 also includes a physical hard drive 680.
- the processor 610 communicates with the memory 630 and the hard drive 680 via, e.g., an address data bus (not shown).
- the processor 610 can be any commercially available or custom microprocessor.
- the memory is 630 is representative of the overall hierarchy of memory devices containing the software and data used to implement the functionality of the device 600.
- the memory 630 can include, but is not limited to, the following types of devices: processor registers, processor cache, RAM, ROM, PROM, EPROM, EEPROM, flash memory, SRAMD, DRAM other volatile memory forms, and non-volatile, semi-permanent or permanent memory types; for example, tape-based media, optical media, solid state media, hard disks, combinations thereof, and the like.
- the memory 630 may include several categories of software and data used in the device 600, including applications 640, a database 650, an operating system (OS) 660, and input/output (I O) device drivers 670.
- the memory 630 may also include services, which may consider a special category of applications 640.
- the OS 660 may include code for any operating system for use with a data processing system, e.g., a Windows OS, Android OS, etc.
- the I/O device drivers 670 may include various routines accessed through at least one of the OS 660 by the applications 640 and services 650 to communicate with devices, and certain memory components.
- one of the operating systems e.g., the Windows OS is run in kernel mode, while another operating system, e.g., the Android OS, is run as driver within the kernel of the other operating system.
- the applications 640 can be stored in the memory 630 and/or in a firmware
- the applications 640 include various programs that implement the various features of the device 600.
- the database 650 represents the static and dynamic data used by the applications 640, the OS 660, the I/O device drivers 670 and other software programs that may reside in the memory.
- the memory 630 is illustrated as residing proximate the processor 610, it should be understood that at least a portion of the memory 630 can be a remotely accessed storage system, for example, a server on a communication network, a remote hard disk drive, a removable storage medium, combinations thereof, and the like.
- any of the data, applications, and/or software described above can be stored within the memory 630 and or accessed via network connections to other data processing systems (not shown) that may include a local area network (LAN), a metropolitan area network (MAN), or a wide area network (WAN), for example.
- LAN local area network
- MAN metropolitan area network
- WAN wide area network
- FIG. 6 and the description above are intended to provide a brief, general description of a suitable environment in which the various aspects of some embodiments of the present disclosure can be implemented. While the description refers to computer-readable instructions, the present disclosure also can be implemented in combination with other program modules and/or as a combination of hardware and software in addition to, or instead of, computer readable instructions.
- the term "application,” or variants thereof, is used expansively herein to include routines, program modules, programs, components, data structures, algorithms, and the like. Applications can be implemented on various system configurations, including single-processor or multiprocessor systems, minicomputers, mainframe computers, personal computers, hand-held computing devices, microprocessor-based, programmable consumer electronics, combinations thereof, and the like.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE112011105332.0T DE112011105332T5 (en) | 2011-06-13 | 2011-09-01 | Methods, devices and computer program products to the confluence of multiple operating systems |
GB1322009.0A GB2506771B (en) | 2011-06-13 | 2011-09-01 | Methods, devices and computer program products for confluence of multiple operating systems |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161496394P | 2011-06-13 | 2011-06-13 | |
US61/496,394 | 2011-06-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012173638A1 true WO2012173638A1 (en) | 2012-12-20 |
Family
ID=47357394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2011/050206 WO2012173638A1 (en) | 2011-06-13 | 2011-09-01 | Methods, devices and computer program products for confluence of multiple operating systems |
Country Status (3)
Country | Link |
---|---|
DE (1) | DE112011105332T5 (en) |
GB (1) | GB2506771B (en) |
WO (1) | WO2012173638A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636128A (en) * | 2014-09-10 | 2015-05-20 | 深圳光启创新技术有限公司 | Method and module for controlling hardware equipment in operating system |
WO2016026449A1 (en) * | 2014-08-20 | 2016-02-25 | 深圳光启智能光子技术有限公司 | Method and module in operating system for controlling hardware device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040123103A1 (en) * | 2002-12-18 | 2004-06-24 | Hank Risan | Method for redirecting of kernel data path for controlling recording of media |
US20050015702A1 (en) * | 2003-05-08 | 2005-01-20 | Microsoft Corporation | System and method for testing, simulating, and controlling computer software and hardware |
US20110093836A1 (en) * | 2009-07-20 | 2011-04-21 | Galicia Joshua D | Multi-environment operating system |
-
2011
- 2011-09-01 WO PCT/US2011/050206 patent/WO2012173638A1/en active Application Filing
- 2011-09-01 DE DE112011105332.0T patent/DE112011105332T5/en active Pending
- 2011-09-01 GB GB1322009.0A patent/GB2506771B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040123103A1 (en) * | 2002-12-18 | 2004-06-24 | Hank Risan | Method for redirecting of kernel data path for controlling recording of media |
US20050015702A1 (en) * | 2003-05-08 | 2005-01-20 | Microsoft Corporation | System and method for testing, simulating, and controlling computer software and hardware |
US20110093836A1 (en) * | 2009-07-20 | 2011-04-21 | Galicia Joshua D | Multi-environment operating system |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016026449A1 (en) * | 2014-08-20 | 2016-02-25 | 深圳光启智能光子技术有限公司 | Method and module in operating system for controlling hardware device |
US10599493B2 (en) | 2014-08-20 | 2020-03-24 | Kuang-Chi Intelligent Photonic Technology Ltd. | Method and module in operating system for controlling hardware device |
CN104636128A (en) * | 2014-09-10 | 2015-05-20 | 深圳光启创新技术有限公司 | Method and module for controlling hardware equipment in operating system |
Also Published As
Publication number | Publication date |
---|---|
GB2506771A (en) | 2014-04-09 |
GB201322009D0 (en) | 2014-01-29 |
DE112011105332T5 (en) | 2014-07-31 |
GB2506771B (en) | 2020-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8924986B2 (en) | Methods, devices and computer program products for confluence of multiple operating systems | |
US10949247B2 (en) | Systems and methods for auditing a virtual machine | |
CA2761563C (en) | Annotating virtual application processes | |
US9465652B1 (en) | Hardware-based mechanisms for updating computer systems | |
KR101253560B1 (en) | System for managing a virtualization solution and Apparatus and Method for managing the same | |
US10140145B1 (en) | Displaying guest operating system statistics in host task manager | |
Chen et al. | A lightweight virtualization solution for android devices | |
US20220083364A1 (en) | Reconciler sandboxes for secure kubernetes operators | |
TWI734379B (en) | Computer implement method, computer system and computer program product starting a secure guest using an initial program load mechanism | |
JP2022522663A (en) | Transparent interpretation of guest instructions in a secure virtual machine environment | |
US9652223B2 (en) | Method and apparatus for executing integrated application program | |
US20150199210A1 (en) | Methods, Devices and Computer Readable Storage Devices for Confluence of Multiple Operating Systems | |
AU2020233907B2 (en) | Inject interrupts and exceptions into secure virtual machine | |
Solomon et al. | Windows internals | |
WO2012173638A1 (en) | Methods, devices and computer program products for confluence of multiple operating systems | |
Xuan et al. | A Novel Design of Cloud-based Management Solution for Android Containers | |
WO2024081072A1 (en) | Transparently providing virtualization features to unenlightened guest operating systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11867894 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 1322009 Country of ref document: GB Kind code of ref document: A Free format text: PCT FILING DATE = 20110901 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1322009.0 Country of ref document: GB |
|
WWE | Wipo information: entry into national phase |
Ref document number: 112011105332 Country of ref document: DE Ref document number: 1120111053320 Country of ref document: DE |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 11867894 Country of ref document: EP Kind code of ref document: A1 |