XNU
XNU (ang. “X is Not Unix”) – hybrydowy kernel systemu operacyjnego wykorzystywany w rodzinie macOS, iOS, watchOS oraz tvOS. Jego kod źródłowy jest udostępniany na licencji otwarto‑źródłowej w ramach projektu Darwin.
Historia
- 1998 – Pierwsza wersja XNU opracowana przez firmę Apple jako część projektu Darwin (1998 roku).
- 2001 – XNU zostaje przyjęty jako domyślny kernel w Mac OS X (2001 roku).
- 2007 – Wraz z premierą iPhone’a kernel jest wykorzystywany w systemie iOS.
- 2020 – Zmieniona licencja na Apache License 2.0, co zwiększyło możliwość współpracy zewnętrznej.
Architektura
XNU łączy w sobie trzy główne komponenty:
- Mach – mikro‑kernel zapewniający podstawowe mechanizmy zarządzania pamięcią, planowanie wątków oraz komunikację międzyprocesową.
- BSD – warstwa oparta na FreeBSD, dostarczająca tradycyjne funkcje systemu UNIX‑owego, takie jak system plików, obsługa gniazd sieciowych i protokoły.
- I/O Kit – obiektowa warstwa sterowników napisana w języku C++, umożliwiająca dynamiczne zarządzanie urządzeniami oraz obsługę sprzętu Apple.
Połączenie tych elementów tworzy hybrydowy model, który wykorzystuje zalety mikro‑kernelu (izolacja i stabilność) oraz monoliticznego podejścia (wydajność).
Funkcje i cechy
- Preemptive multitasking – pełna pre‑emptowność wątków jądra.
- Obsługa wieloprocesorowa – SMP (Symmetric Multiprocessing) od wersji 10.0 (Cheetah).
- System plików APFS – wsparcie dla najnowszego systemu plików Apple od 2017 roku.
- Bezpieczeństwo – implementacje KASLR, System Integrity Protection (SIP) oraz sandboxing.
- Obsługa wirtualizacji – technologia Hypervisor Framework umożliwiająca uruchamianie maszyn wirtualnych.
Wersje i rozdziały kodu
Repozytorium źródłowe XNU jest podzielone na kilka katalogów:
| Katalog | Opis |
|---|---|
osfmk |
Rdzeń Mach – implementacja planowania, zarządzania pamięcią i IPC. |
bsd |
Warstwa BSD – system wywołań, protokoły sieciowe i obsługa systemu plików. |
iokit |
Framework sterowników urządzeń. |
libkern |
Podstawowe biblioteki jądra (np. malloc, printf). |
Licencjonowanie i dostępność
Kod źródłowy XNU jest dostępny w publicznie dostępnych repozytoriach projektu Darwin na platformie Apple Open Source. Od 2020 roku używana jest licencja Apache License 2.0, co umożliwia szerokie wykorzystanie zarówno w projektach komercyjnych, jak i społecznościowych.
Znaczenie i wpływ
XNU jest jedynym jądrem, które jednocześnie obsługuje platformy komputerowe (Mac), mobilne (iPhone, iPad) oraz urządzenia wbudowane (Apple Watch, Apple TV). Dzięki hybrydowej architekturze zapewnia wysoką wydajność, stabilność oraz rozbudowane możliwości bezpieczeństwa, co przyczyniło się do dominacji systemów Apple na rynku konsumenckim i profesjonalnym.