Mach — мікроядроопераційної системи, розроблене в Університеті Карнегі-Меллон при проведенні дослідницьких робіт у галузі операційних систем, головним чином, розподілених та паралельних обчислень. Це один з найперших прикладів мікроядра, який досі є стандартом для таких проєктів.
Проєкт існував у 1985—1994 роках, закінчився виходом Mach 3.0. Декілька дослідницьких груп продовжили розробку Mach; наприклад, в Університеті Юта деякий час існував проєкт Mach 4. Mach розроблявся як заміна ядра BSD UNIX, тому не було необхідності в розробці нового операційного оточення. Подальші науково-дослідницькі роботи по проєкту Mach, схоже, закінчилися; попри це, Mach та його похідні використовуються в ряді комерційних операційних систем, наприклад NeXTSTEP, найпомітнішою з яких є Mac OS X, де використовується ядро XNU, вібравши в себе Mach 2.5. Система керування віртуальною пам'яттю Mach була перейнята розробниками BSD в CSRG та використовується в сучасних UNIX-системах, похідних від BSD, наприклад FreeBSD. А ні Mac OS X, а ні FreeBSD не залишили мікроядерну архітектуру, що використовується в Mach, хоча Mac OS X пропонує для використання в прикладних програмах мікроядерну систему міжпроцессорної взаємодії та примітиви керування.
Mach є логічним продовженням ядра Accent, також розробленого в Університеті Карнегі-Меллон. Провідний розробник проєкту Річард Рашид з 1991 року працює в Microsoft в підрозділі Microsoft Research. Ще один з основних розробників, Авадіс Теваніан працював головою департаменту розробки програм в NeXT, потім, до березня 2006, головою департаменту перспективних програмних технологій в Apple.
Концепція
Оскільки Mach спроєктовано як швидку заміну традиційному ядру UNIX, подивимось в основному на відмінності Mach від Unix. Стало зрозумілим, що Unix-концепція «все — файл» більше не працює на сучасних системах, але такі системи, як Plan 9 від Bell Labs, все ж таки намагаються слідувати цьому шляху. Розробники Mach примітили негнучкість такого підходу, та запропонували, що інший рівень віртуалізації може заставити систему «працювати» знов.
Одна з найважніших абстракцій в Unix — це конвеєри (pipe). Що схоже на конвеєри та дозволить на загальнішому рівні зробити доступним різноманітні переміщення інформації між програмами? Така система може існувати, завдяки міжпроцесній взаємодії (IPC) — схожий з конвеєрами принцип организації взаємодії процесів, дозволяючий переміщувати будь-яку файлоподібну інформаціїю між двома програмами. В той час, як у багатьох системах, включно різні Unix, вже декілька років існували різні реалізації IPС, але вони були призначені для спеціальних цілей та не могли забезпечити те, що творці Mach від них чекали.