ManRiX is a microkernel based Operating System. Microkernel
contains just few basic components of an Operating System. Those
components that are not required inside the microkernel are implemented
as user process. The components implemented inside microkernel are:
• Thread manager:
• IPC mechanism (using message passing).
• Memory manager (caches and pagers
are external processes).
• Signals, timers. (To support POSIX
semantics because user mode emulation of UNIX is very expensive
as we have seen with Mach).
• Exception and IRQ handling (redirection
• Kernel-preemption and SMP
You will notice that the code (implementation) is slightly heavier
than expected. This is because we are trying to give POSIX interface.
Emulation of POSIX semantics is quite expensive as we have seen
with Mach Microkernel from Carnegie Mellon University .
In ManRix threads are the basic unit of execution. So the threads
are scheduled independently. Process is an inactive entity. It encapsulates
the threads and just gives an address space. A process with a single
thread acts as a UNIX process. IPC is the heart of ManRix. Message
Passing is the method of exchanging messages between threads. Message
passing is the fastest way of Client Server communication in ManRix.
The memory manager is based on Mach's VM design. POSIX Signals and
Timers are implemented inside Microkernel. The Architecture dependent
Exception and IRQ are handled inside microkernel. Only redirection
is done inside microkernel. The ISR is implemented in User Process.
All other components are external processes. Some of them to mention
• C- Library (POSIX, ANSI support)
• File system manager
• Console manager
• Device driver (i.e. Bus manager, ATA manager, floppy etc)
• Network manager
• High availability manager
• X -windows
The FS subsystem is based on SVR4's VNODE/VFS architecture with
few 4.4BSD style implementations. The Console server handles the
terminals. The name space server provides the name space for IPC
Network Managet manages the TCP/IPC stack. High availability
manager manages the fault diagnosis in the servers.