Mach Kernel Kris Ambrose Kris Ambrose 2003
Overview A research project at Carnegie Mellon University (CMU) from 1985 to 1994. Considered to be the next great operating system Designed to incorporate many new OS technologies Microkernel Multiprocessing Interprocess Communication (IPC) Distributed Operation Portable across heterogeneous hardware And still maintain BSD Unix compatible Kris Ambrose 2003
Mach Kernel Abstractions Task – a basic unit of resource allocation that must contain an address space and may contain port rights and threads. Thread – a basic unit of CPU utilization that belongs to a task and uses the task’s resource allocation. Port – a communication channel that the kernel protects, allows for all parts of the kernel and tasks to pass messages back and forth. Message – a typed collection of data objects that may be actual data, port rights, or a pointer out-of-line-data. Memory Object – a basic unit of memory used within the kernel and the a task may access it by mapping parts or all of it into its address space. Kris Ambrose 2003
Mach’s Abstractions Silberschatz, Galvin, Gagne (2003) Appendix B: Mach Kris Ambrose 2003
Mach as a Microkernel Minimizes Kernel Operations Task and Thread Management IPC Virtual Memory Acts as a Virtual Machine Parts are Modular Kris Ambrose 2003
Structure of Mach Billard (2001): Mach Design Kris Ambrose 2003
Multiprocessing in Mach Threads are scheduled not tasks Threads are CPU independent Preemptive Scheduling done with a Priority Queue Quantum is based on Number of CPUs and Threads Threads to run across many processors Global and Local Run Queues Kris Ambrose 2003
Interprocess Communication Tasks and Threads pass messages Ports accept messages Port rights are assigned for protection Tasks may create Port Sets Large Messages use Copy-On-Write Kris Ambrose 2003
Distributed Operation and Portability Each Server Contains a different Module Fast and Secure reload Multiple CPUs may be used for different Modules Runs across different Architectures Kris Ambrose 2003
Unix Compatibility Allows for Unix System calls Mach needs Unix Acts as a Virtual Machine Kris Ambrose 2003
Today and Beyond Many of the Operating Systems today use the ideas of Mach QNX Hurd Mach 4 Real-Time Mach Some Actually Use the Mach/FreeBSD NeXT Mac OS X (based on NeXT) IBM OS/2 for the RS6000 based machines The Open Software Foundation (OSF) is still doing further research and development Kris Ambrose 2003
Summary Originally CMU and OSF Research Project Major Accomplishments Microkernel Multiprocessing Interprocess Communication Distributed Operations Portable BSD Unix Compatible Concepts still used Kris Ambrose 2003
The End Kris Ambrose 2003