Mach

Overview

 * New Unix system, binary compatible with BSD Unix
 * Provides Task ( process equivalent), thread, communication, and virtual memory resources, low level device drivers, redirection of UNIX traps. Everything else at user level
 * Ports are used for IPC and network communications. Ports are kernel protected objects that messages can be put in and retrieved from
 * Task forking can control child memory inheritance on a page-by-page basis
 * Built-in kernel debugger
 * Unix compatibility layer (file systems, process management) to be implemented as user-level server
 * took performance hit because every IPC was a system call
 * doesn't use swap space, instead uses FS for VM


 * Goals**


 * Microkernel approach. Thought BSD kernel had gotten too fat and ugly.
 * work well with multiprocessors and clusters (IPC)
 * Designed to be portable to different hardware
 * extensibility
 * low overhead for parallelism (threads)