Mach
UNIXのプロセスは計算処理とそれに必要なリソースを一体化しているのに対し、Machは計算処理とそのリソースを分離するとともに、独立に制御できるようにした。タスクはCPU実行時間(スレッド)やメモリオブジェクト、アドレス空間、ポート等のリソースの集合体である。
1989年リリース。マイクロカーネル化。MkLinuxのカーネルとしても使われた。Mach 3.0は、macOSのカーネルXNUにも用いられているが、実装はマイクロカーネルではない。
リチャード・ラシッド教授が1991年にマイクロソフトへ移籍した後も1994年までカーネギーメロン大学でMachプロジェクトは続いた。以後、Machの開発はユタ大学のMach 4プロジェクト、Free Software FoundationのHurdプロジェクト、カーネギーメロン大学の ARTプロジェクトなどに引き継がれていった。ユタ大学で Mach 4として分散環境を考慮したスレッドおよびメッセージの改良、Linuxデバイスドライバインターフェースの実装を行った。GNUプロジェクトではこのMach 4をベースに改良を加え、GNU Machとして公開している。ARTプロジェクトでは分散リアルタイムOS実現のため、実時間駆動型スケジューラなどがMach に組み込まれ、Real-Time Machとして公開された。これらの研究開発はMachのみならずBSDにもフィードバックされ、仮想記憶システムを含むいくつかの機能は4.4BSD Liteにも利用されている。
1980年代中頃、アメリカ国防総省高等研究計画局によって開発されていた実験用マルチプロセッサコンピュータ用のOSをアメリカ国防総省に提案、採用されたことにより 1985年からMachの開発は始まった。当初はスーパーコンピュータ・ワークベンチ・プロジェクト(supercomputer workbench project)と呼ばれていた。
当時、米国の研究機関で主に用いられていた 4.2BSD UNIXの設計は、古く効率の悪い仮想記憶機構、マルチプロセッサマシンに対して非効率な構造、移植性の悪い冗長なコードなど、当初のUNIXでは想定していない様々な機能をカーネルに追加したため、非常に見通しの悪い構造となっていた。これを解決することがMachの目的であった。
マルチプロセッサ対応(100プロセッサ程度が想定された)
高価で少ない実メモリを想定するのではなく、巨大なメモリ空間と十分な実メモリを有効利用する
分散システムをサポートし、高速でネットワーク透過なプロセス間通信 (IPC) をサポート
移植性の高い構造
4.3BSDと完全な互換性
これらを実現することを目標に開発が行われた。