Adaptive Domain Environment for Operating Systems provides a flexible environment for sharing hardware resources for operating systems. Adaptive Domain Environment for Operating Systems is usually abbreviated as ADEOS. Adaptive Domain Environment for Operating Systems is a hardware abstraction layer (HAL) or a hypervisor that operates between computer hardware and the operating system that runs on it. This hardware abstraction layer is a nanokernel hardware abstraction layer. A nano kernel is type of Microkernel where the total amount of kernel code, i.e. code executing in the privileged mode of the hardware, is very small. A microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, thread management, and inter-process communication (IPC).
Fundamentals of Adaptive Domain Environment for Operating Systems
So, in brief, Adaptive Domain Environment for Operating Systems is a nano kernel hardware abstraction layer (HAL) or a hypervisor that operates between computer hardware and the operating system that runs on it. It is distinct from other microkernels, in that sense that it is not just a low level layer for just an outer kernel. It is intended to run several kernels together, which makes it similar to virtualization technologies.
Adaptive Domain Environment for Operating Systems provides an environment for sharing hardware resources among multiple instances of a single OS, thereby enabling multiple prioritized domains to exist simultaneously on the same hardware. To enable interrupts and system events are distributed shared by multiple cores (usually by the complete operating systems), ADEOS abstractly defines it as what is called “domain”. A domain is a component software of the basic core to what ADEOS can notify:
- The hardware interrupts
- System calls by Linux applications
- Events by the system Linux kernel
- Other events that will be personalized
A domain can be accessed as a dynamic kernel module, or static one as part of a kernel image, not producing any effect on the behavior of ADEOS. ADEOS can also ensure that events are fired in the correct order for the various defined domains, as a result, it is possible to provide determinism.
Pipeline and Work mode of Adaptive Domain Environment for Operating Systems
So, all the things around Adaptive Domain Environment for Operating Systems allows us to assign each domain as a static priority. The value of this priority determines the order in which events are processed. All domains are queued according to their respective priorities, forming a pipeline in the abstraction, Adaptive Domain Environment for Operating Systems manage the flow of events from the highest priority to the lowest priority. Input events are funneled to header pipeline (highest priority domain) and progress to the queue (less priority domain).
The code of the Linux kernel it is entirely just a special predefined domain, which is created by ADEOS in the early stages of loading Linux. This initial domain usually refers to the root domain until the infrastructure provides enough to load the rest of domains dynamically.
ADEOS handles all interrupts , traps and CPU hardware level exceptions, and reprogramming the software handler. In fact, ADEOS currently replaces previously installed drivers by Linux at boot.