Mach
Mach — мікроядро операційної системи, розроблене в Carnegie Mellon University при проведенні дослідницьких робіт у галузі операційних систем, головним чином, розподілених та паралельних обчислень. Це один з найперших прикладів мікроядра, який досі є стандартом для таких проєктів.
Тип | мікроядро |
---|---|
Автор(и) | Університет Карнегі-Меллон |
Версії | 3.0 |
Мова програмування | C і асемблер |
Вебсайт | cs.cmu.edu/afs/cs/project/mach/public/www/mach.html |
Проєкт існував у 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 від них чекали.
Операційні системи, засновані на Mach
- GNU Hurd
- Lites
- MkLinux
- mtXinu
- MachTen
- MacMach
- Mac OS X
- NeXTSTEP
- OSF/1
- Workplace OS
- xMach
- UNICOS MAX