ADEOS is the Adaptive Domain Environment for Operating Systems.
See:
http://www.opersys.com/adeos
ftp://ftp.opersys.com/pub/Adeos/adeos.pdf
ADEOS is "an extensible and adaptive environment which can be used to enable the sharing of hardware resources among multiple operating systems or among multiple instances of the same operating system". Basically, it's a
NanoKernel which sits on top of bare hardware (x86 only, at the moment) and provides a transparent
VirtualMachine environment for hosted
OperatingSystems. ADEOS is
RealTime (it's hard not to be, when you do as little as ADEOS!), so it can support
RealTimeOperatingSystems.
ADEOS works by managing interrupts using an
InterruptPipe, in which hardware interrupts are captured and then passed on to each of the hosted
OperatingSystem instances in turn, with various cunning bits of flim-flammery to keep everything working properly.
OperatingSystems which know about ADEOS deal with it directly, but those which do not are forced to run in a virtualized environment, contained by the CPU protection mechanisms; they are supposed to be unable to tell the difference between this and a real bare-metal environment.
There is a difference between ADEOS as described in the paper and as implemented; the version in the paper can work with
unmodified monolithic
OperatingSystems, whereas the implemented version (release 1) needs minor modifications to the interrupt-handling code of
OperatingSystems which run on top of it.
Terrifyingly, ADEOS is implemented as a linux
KernelModule, and so it is actually loaded
after linux itself, and can be
unloaded while linux is still running.
CategoryOperatingSystem (although it's not really an operating system)