Nucleus

Microkernel messaging system Hierarchical address space children address space can overlap Parent can schedule children

Overview

 * A "nucleus", in modern terms a microkernel
 * Meant to allow users to implement different OS paradigms on top of it
 * Provides processes and interrupts with synchronization, I/O and communication primitives
 * Coordination is accomplished through message passing (procedures: send message, wait message, send answer, wait answer)
 * As opposed to semaphores, provides some protection from buggy and malicious processes
 * Hierarchical structure
 * Several OSes could run at once (Hi exo-kernel!)


 * Details**


 * Nucleus provides
 * The definition of a process, which is either internal or external
 * external process: idea is to turn device into process
 * Hierarchical structure
 * Parent processes can create, start, and stop child processes (write your own mini-scheduler. Highest level scheduling by the base operating system, however, is round-robin). Child process get memory from the parent's address space
 * Message passing
 * has message passing calls that let a process "answer" another process
 * ideal for server that services a bunch of anonymous requests