Adaptive Domain Environment for Operating Systems
Adeos (Adaptive Domain Environment for Operating Systems) is a nanokernel hardware abstraction layer (HAL) or a hypervisor that operates between computer hardware and the operating system that runs on it.[1] It is distinct from other nanokernels, in that it is not just a low level layer for an outer kernel. Instead it is intended to run several kernels together, which makes it similar to virtualization technologies.
Adeos provides a flexible environment for sharing hardware resources among multiple operating systems, or among multiple instances of a single OS, thereby enabling multiple prioritized domains to exist simultaneously on the same hardware.
Adeos has been successfully inserted beneath the Linux kernel, opening a range of possibilities, such as SMP clustering, more efficient virtualization, patchless kernel debugging and real-time systems for Linux.
Unusually among HALs, Adeos can be loaded as a Linux loadable kernel module to allow another OS to run along with it. In fact Adeos was developed in the context of RTAI (Real-Time Application Interface) to modularize it and to separate the HAL from the real-time kernel.
Previous Work
There are two categories of existing solutions that enable multiple operating systems to run on the same system. The first is simulation-based and provides a virtual environment for which to run additional operating systems. The second suggests the usage of a nanokernal layer to enable hardware sharing.
In the simulation category there are tools such as VMware, Plex86, VirtualPC and SimOS. These solutions are used for users who desire to run applications foreign to their base OS, they provide no control whatsoever over the base OS to the user. Simulation was never meant to be used in a production environment. In the nanokernel category there are tools such as SPACE, cache kernel and Exokernel. All of these suggest building miniature hardware management facilities which can thereafter be used to build production operating systems. The problem of this approach is that it does not address the issue of currently existing operating systems and their user base.
Adeos addresses the requirements of both categories of application by providing a simple layer that is inserted under an unmodified running OS and thereafter provides the required primitives and mechanisms to allow multiple Oses to share the same hardware environment. Adoes does not attempt to impose any restrictions on the hardware’s usage, by the different Oses, more than is necessary for Adeos’ own operation. Instead, that actual restriction is to be imposed by the system administrator or the system programmer. This renders the system to mismanagement, but the idea behind Adeos is to give back control to system administrators and programmers.
Architecture
Adeos implements a queue of signals. Each time that a peripheral sends a signal, the different operating systems that are running in the machine are awakened, in turn, and must decide if they will accept (handle), ignore, discard, or terminate the signal. Signals not handled (or discarded) by an OS are passed to the next OS in the chain. Signals that are terminated are not propagated to latter stages.
As Adeos has to ensure equal and trusted access to the hardware it takes control of some hardware commands issued by the different OSes, but it also must not intrude too much on the different OSes’ normal behavior. Each OS is encompassed in a domain over which it has total control. This domain may include a private address space and software abstractions such as process, virtual memory, file-systems, etc. [2]
See also
External links
References
- ^ "Adaptive Domain Environment for Operating Systems". whitepapers.zdnet.co.uk. February 15, 2001. Retrieved 2009-09-02. [dead link]
- ^ Adaptive Domain Environment for Operating Systems. www.opersys.com/ftp/pub/Adeos/adeos.pdf. Retrieved 2012-04-27