Mach (jądro)
Mach (ang. Mach kernel) – jądro dla systemów operacyjnych opracowane na amerykańskim Uniwersytecie Carnegie-Mellon. Projekt rozwijany tam był w latach 1985–1994 i skończył się na wersji 3.0[1]. Dalej rozwijany był na Uniwersytecie Utah, gdzie opracowano wersję 4[2].
Historia
W 1984 roku niewielka grupa naukowców z Carnegie Mellon University rozpoczęła pracę nad projektem Mach, a implementację rozpoczęto w kolejnym roku. Początkowo miał to być system przeznaczony do uruchamiania obliczeń równoległych dużej skali, jednak uznano iż projektowanie systemu wyłącznie z takim celem ograniczałoby jego użyteczność i zmieniono projekt tak by był on niezależny od architektury sprzętu[3].
Początkowo Mach został zaimplementowany dla komputerów Vax 11/780, a następnie dla innych architektur, w tym IBM RT PC, a także komputerów opartych na procesorach Intel 80386 oraz M68000, wśród których były m. in. stacje robocze NeXT oraz Sun-3[3].
Charakterystyka
Od początku projektu dążono do usunięcia z jądra jak największej liczby elementów, które nie były niezbędne do jego działania. Do wersji 2.5 włącznie jądro posiadało warstwę wyższego poziomu, która zawierała API zgodne z Uniksem BSD. Wersja 3.0 była już mikrojądrem, w którym warstwę BSD usunięto poza jądro (działało w przestrzeni użytkownika)[2]. Dodano w niej także mechanizm kontynuacji. Pliki wykonywalne dla Macha są w formacie Mach-O[4].
Mach jest architekturą zapewniającą[5]:
- obsługę wieloprocesowości zarówno w jednej maszynie, jak i poprzez sieć,
- obsługę wielu aplikacji pracujących w trybie wielozadaniowości z wywłaszczeniem,
- wielowątkowość działania aplikacji,
- bezpośrednią komunikację międzyprocesową,
- bezpieczną ochronę pamięci.
Znacznie rozbudowano komunikację międzyprocesową (IPC) opierając ją na komunikatach, czyli zestawach danych, oraz portach, czyli kolejkach komunikatów. Wykorzystują je nie tylko procesy użytkownika, ale także samo jądro i jest podstawowym mechanizmem komunikacji. Rozwiązywało to wiele problemów dotykających oryginalnego IPC Uniksa, ale jednocześnie było znacząco wolniejsze.
Wpływ
Mach stał się podstawą do rozwoju takich projektów informatycznych jak:
- OSF/1[6]
- GNU/Hurd[7][5]
- NeXTStep[8]
- nieukończony system Rhapsody firmy Apple Computer[2]
- jądro XNU w systemach Darwin i Mac OS X[2] – współtwórcą systemu jest dr Avie Tevanian, były pracownik naukowy Uniwersytetu Carnegie-Mellon.
- MkLinux[9][5]
Wprowadzony w Machu sposób zarządzania pamięcią wirtualną został później przyjęty w systemie BSD 4.4 oraz jego pochodnych[10].
Przypisy
- ↑ M. R. Thompson: CMU CS Project Mach Home Page. 1997-02-21. [dostęp 2022-10-12]. (ang.).
- 1 2 3 4 Jim Magee: WWDC 2000 Session 106 – Mac OS X: Kernel. [zarchiwizowane z tego adresu (2021-12-12)].
- 1 2 Avadis Tevanian Jr., Ben Smith. Mach: The Model for Future UNIX. „BYTE”. Vol. 14, No. 12, s. 411-416, listopad 1989. [dostęp 2026-04-08].
- ↑ Mac Dev Center: Mac OS X ABI Mach-O File Format Reference. [dostęp 2022-10-12]. [zarchiwizowane z tego adresu (2009-09-01)]. (ang.).
- 1 2 3 François Barbou des Places, Nick Stephen, Franklin D. Reynolds: Linux on the OSF Mach3 microkernel. 1996-01-12. [dostęp 2022-10-12]. [zarchiwizowane z tego adresu (2012-02-11)].
- ↑ Answers to Frequently Asked Questions. 1995-04-06. [dostęp 2022-10-12]. (ang.).
- ↑ Michael I Bushnell: GNU Hurd Task List and Call for Volunteers. 1994-05-18. [dostęp 2022-10-12]. (ang.).
- ↑ Avie Tevanian: NeXT release of Mach. 1991-01-03. [dostęp 2022-10-12]. (ang.).
- ↑ MkLinux: Linux for the Power Macintosh. 1998. [dostęp 2022-10-12]. [zarchiwizowane z tego adresu (1999-04-23)].
- ↑ Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, John S. Quarterman: The Design and Implementation of the 4.4 BSD Operating System. Addison-Wesley, 1996-04-30, s. 123. ISBN 978-0-7686-8494-0.