Dlaczego Mac OS X działa na XNU: Analizowanie jądra

11

Otwierasz laptopa. Kliknij aplikację. To działa. Większość użytkowników nigdy nie zagląda pod maskę. A nie powinni tego robić. Jednak zrozumienie „silnika” pomaga wyjaśnić, dlaczego komputer Mac różni się od komputera PC z systemem Windows lub urządzeniem z systemem Linux. Sekretem nie jest magia. To jest kod. Mianowicie jądro XNU.

Po naciśnięciu przycisku zasilania najpierw uruchamia się jądro XNU. To jest „szef” sprzętu. Określa, ile pamięci jest przydzielonej dowolnej aplikacji. Kontroluje czas procesora. Monitoruje dyski, aby mieć pewność, że dane nie zostaną utracone w powietrzu. Ale XNU nie zostało zbudowane od zera. To jest rdzeń hybrydowy.

Podstawowa maszyna

XNU opiera się na Machu. To nie jest coś nowego. To produkt Uniwersytetu Carnegie Mellon, opracowany jeszcze w latach 80-tych. Dlaczego warto używać kodu z lat 80.? Ponieważ to działa. Mach wykonuje większość pracy związanej z zarządzaniem pamięcią wirtualną. Umożliwia także wielozadaniowość.

Kiedy Twój Mac zaczyna się przegrzewać, Mach wkracza do akcji. Może to spowolnić prędkość przetwarzania procesora. To nie jest usterka. To jest funkcja. System przedkłada trwałość sprzętu nad samą prędkość. Możesz zauważyć, że wentylatory zaczynają pracować ciężej lub aplikacje nieco zwalniają. Ten Mach chroni Twoje chipy krzemowe.

Zestaw we/wy: centrum połączeń

Następny jest zestaw wejścia-wyjścia (zestaw I/O). Jest częścią jądra, ale ma swoje specyficzne zadanie. Zarządza sterownikami urządzeń. Znasz ich. Są to tłumacze umożliwiające komunikację drukarki z komputerem. Bez nich sprzęt to po prostu drogi plastik.

Zestaw I/O wykorzystuje specjalną, ograniczoną wersję języka C++. To nie jest pełne C++. To uproszczona, wydajna wersja. Warstwa ta przetwarza ogromne strumienie danych przychodzących i wychodzących. Zarządza żądaniami przenoszonymi z komputera Mac do urządzeń peryferyjnych i z powrotem.

W ten sposób można jednocześnie podłączyć mysz USB, napęd FireWire i wyświetlacz Thunderbolt. Zestaw I/O żongluje nimi. Żadnego zamieszania. Jednocześnie przetwarza różne technologie. Jeśli spróbujesz tego na starszych architekturach komputerów, możesz napotkać konflikty sterowników. Zwykle nie dzieje się to na komputerach Mac.

BSD: Strażnik

Trzeci filar XNU pochodzi z Berkeley Software Distribution (BSD). Jest pochodną UNIX-a. Wyobraź sobie ochroniarza. Albo portier w ekskluzywnym klubie.

Kiedy się logujesz, BSD określa Twoje uprawnienia. Administratorzy mają pełny dostęp. Mogą usuwać programy. Potrafią instalować oprogramowanie na poziomie systemu. Zwykły użytkownik? Mniej jest dla niego dostępne. Warstwa BSD egzekwuje te zasady. Uniemożliwia zwykłym użytkownikom złamanie systemu. Synchronizuje także procesy. Utrzymuje porządek w systemie.

Bez tej warstwy Mac OS X stałby się chaosem sprzecznych uprawnień. Każdy może wyczyścić system. BSD wspiera świat.

Koncepcja stosu

Inżynierowie postrzegają Mac OS X jako stos. Jest to model koncepcyjny. Poniżej: sprzęt i oprogramowanie sprzętowe. Następny poziom: jądro XNU. Powyżej: Podstawowe usługi. Następny w kolejce: aplikacje użytkowe. Powyżej: rzeczywista aplikacja, której używasz.

Ten stos ma znaczenie. Pokazuje, jak warstwy oddziałują na siebie. Globalne zmiany mogą wywołać reakcję łańcuchową. Aktualizacja GUI zwykle nie powoduje uszkodzenia jądra. Oddzielenie jest zamierzone.

Podstawowe usługi i GUI

Warstwa usług podstawowych zawiera frameworki. Wykonuje zadania, takie jak wyszukiwanie tekstu w wielu językach. Udostępnia systemowe interfejsy API. Programiści używają tych interfejsów API do tworzenia oprogramowania. Usługi podstawowe wykonują całą pracę w tle.

Wyświetlany jest poziom aplikacji serwisowej. Jest to graficzny interfejs użytkownika (GUI). Tworzy okna, ikony i kursory. Jest to kanał komunikacji pomiędzy aplikacjami. Warstwa ta ułatwia kopiowanie tekstu z przeglądarki i wklejanie go do dokumentu. W ten sposób aplikacje mogą się ze sobą komunikować.

Co oznacza XNU?

Sama nazwa to żart. Inżynierowie komputerowi uwielbiają kiepskie kalambury. XNU nie jest skomplikowanym akronimem. Oznacza to, że „X nie jest Uniksem”.

Unix to inny system operacyjny. Mac OS X ma to samo DNA. Ale to nie jest Unix. Tytuł podkreśla tę różnicę. To hołd złożony przodkom i jednocześnie rozłąka. Przypomina to, że chociaż komputer Mac jest zbudowany w oparciu o zasady UNIX, jest to potężne urządzenie samo w sobie.

Jądro zarządza pamięcią. Za połączenia odpowiada seria I/O. BSD dba o bezpieczeństwo. Stos trzyma je razem. Następnym razem, gdy będziesz chciał, aby Twój Mac działał płynnie, zapamiętaj kod, który wykonuje za Ciebie niewidzialną pracę. To nie magia. To jest architektura.

Poprzedni artykułJak korzystać z wyszukiwarki w celach charytatywnych w celu wsparcia spraw globalnych
Następny artykułZrozum architekturę klient-serwer swojej sieci