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].
Charakterystyka
edytujOd 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[3].
Mach jest architekturą zapewniającą[4]:
- 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
edytujMach stał się podstawą do rozwoju takich projektów informatycznych jak:
- OSF/1[5]
- GNU/Hurd[6][4]
- NeXTStep[7]
- 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[8][4]
Wprowadzony w Machu sposób zarządzania pamięcią wirtualną został później przyjęty w systemie BSD 4.4 oraz jego pochodnych[9].
Przypisy
edytuj- ↑ M. R. Thompson: CMU CS Project Mach Home Page. 1997-02-21. [dostęp 2022-10-12]. (ang.).
- ↑ a b c d Jim Magee: WWDC 2000 Session 106 – Mac OS X: Kernel. [zarchiwizowane z tego adresu (2021-12-12)].
- ↑ 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.).
- ↑ a b c 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.