Mach
Mach — мікроядро операційної системи, розроблене в Carnegie Mellon University при проведенні дослідницьких робіт у галузі операційних систем, головним чином, розподілених та паралельних обчислень. Це один з найперших прикладів мікроядра, який досі є стандартом для таких проектів.
Проект існував у 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, також розробленого в Carnegie Mellon University. Провідний розробник проекту Річард Рашид з 1991 року працює в Microsoft в підрозділі Microsoft Research. Ще один з основних розробників, Авадіс Теваніан працював головою департаменту розробки програм в NeXT, потім, до березня 2006, головою департаменту перспективних програмних технологій в Apple.
Концепція[ред. • ред. код]
Оскільки Mach спроектовано як швидку заміну традиційному ядру Unix, подивимось в основному на відмінності Mach від Unix. Стало зрозумілим, що Unix-концепція «все — файл» більше не працює на сучасних системах, але такі системи, як Plan 9 від Bell Labs, все ж таки намагаються слідувати цьому шляху. Розробники Mach примітили негнучкість такого підходу, та запропонували, що інший рівень віртуалізації може заставити систему «працювати» знов.
Одна з найважніших абстракцій в Unix — це конвеєри (pipe). Що схоже на конвеєри та дозволить на загальнішому рівні зробити доступним різноманітні переміщення інформації між програмами? Така система може існувати, завдяки міжпроцесній взаємодії (IPC) — схожий з конвеєрами принцип организації взаємодії процесів, дозволяючий переміщувати будь-яку файлоподібну інформаціїю між двома програмами. В той час, як у багатьох системах, включно різні Unix, вже декілька років існували різні реалізації ICP, але вони були призначені для спеціальних цілей та не могли забезпечити те, що творці Mach від них чекали.
