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 від них чекали.

Операційні системи, засновані на Mach[ред.ред. код]

Див. також[ред.ред. код]

Мікроядро