Чому Mac OS X працює на XNU: Розбір ядра

1

Ви відкриваєте ноутбук. Натискаєте на програму. Воно працює. Більшість користувачів ніколи не заглядають під капот. І їм не слід цього робити. Але розуміння двигуна допомагає пояснити, чому Mac відчувається інакше, ніж ПК на Windows або пристрої на Linux. Секрет над магії. Це код. А саме – ядро ​​XNU.

Коли ви натискаєте кнопку живлення, першим завантажується ядро ​​XNU. Це “начальник” обладнання. Воно визначає, скільки пам’яті виділяється будь-якому додатку. Воно керує процесорним часом. Воно стежить за дисковими накопичувачами, щоби дані не загубилися в ефірі. Але XNU не було створено з нуля. Це гібридне ядро.

Основа Mach

В основі XNU лежить Mach. Це не щось нове. Це продукт Університету Карнегі-Меллон, розроблений ще у 1980-х роках. Навіщо використовувати код 80-х? Тому що він працює. Mach бере на себе основну роботу з управління віртуальною пам’яттю. Він також забезпечує багатозадачність.

Коли ваш Mac починає перегріватися, Mach набуває чинності. Він може знизити швидкість обробки даних процесором. Це не збій. Це функція. Система пріорітізує виживання обладнання над чистою швидкістю. Ви можете помітити, що вентилятори починають працювати активніше або програми трохи підгальмовують. Це Mach захищає ваші кремнієві чіпи.

I/O Kit: Центр з’єднань

Далі йде Input-Output Kit (I/O Kit). Це частина ядра, але вона має своє специфічне завдання. Вона керує драйверами пристроїв. Ви знаєте їх. Це перекладачі, які дозволяють вашому принтеру спілкуватися з комп’ютером. Без них обладнання просто дорогий пластик.

I/O Kit використовує спеціальну, обмежену версію C++. Це повноцінний C++. Це урізана, ефективна версія. Цей шар обробляє величезні потоки вхідних та вихідних даних. Він керує запитами, що переміщаються від вашого Mac до периферійних пристроїв та назад.

Таким чином, ви можете одночасно підключити USB-мишу, накопичувач FireWire та дисплей Thunderbolt. I/O Kit жонглює ними. Без плутанини. Він опрацьовує різні технології одночасно. Якщо ви спробуєте це на деяких старих архітектурах ПК, ви можете зіткнутися з конфліктами драйверів. На Macs цього зазвичай не відбувається.

BSD: Охоронець безпеки

Третій стовп XNU походить від Berkeley Software Distribution (BSD). Це похідна з UNIX. Уявіть собі охоронця. Або швейцара в ексклюзивному клубі.

Коли ви входите до системи, BSD визначає ваші права доступу. Адміністратори мають повний доступ. Вони можуть видаляти програми. Вони можуть інсталювати програмне забезпечення на рівні системи. Звичайний користувач? Йому є менше. Шар BSD enforce (примусово виконує) ці правила. Він дає звичайним користувачам ламати систему. Він також синхронізує процеси. Він підтримує порядок у системі.

Без цього шару Mac OS X перетворився б на хаос конфліктуючих прав доступу. Будь-хто міг би стерти систему. BSD підтримує світ.

Концепція стека

Інженери розглядають Mac OS X як стек. Це концептуальна модель. Внизу: обладнання та прошивка. Наступний рівень: XNU ядро. Вище основні служби. Потім: службові програми. Вгорі: сама програма, якою ви користуєтеся.

Цей стек має значення. Він показує, як взаємодіють верстви. Глобальні зміни можуть спричинити ланцюгову реакцію. Оновлення графічного інтерфейсу звичайно ламає ядро. Поділ навмисне.

Основні служби та графічний інтерфейс

Шар основних служб містить фреймворки. Виконує такі завдання, як пошук тексту кількома мовами. Надає системні API. Розробники використовують ці API для створення програмного забезпечення. Основні служби виконують важку фонову роботу.

Рівень службових програм відображається. Це графічний інтерфейс користувача (GUI). Створює вікна, значки та курсори. Це канал зв’язку між програмами. Цей шар спрощує копіювання тексту з браузера та вставляє його в документ. Саме так програми можуть спілкуватися один з одним.

Що означає XNU?

Сама назва – це жарт. Комп’ютерні інженери люблять погані каламбури. XNU не є складною абревіатурою. Це означає «X не є Unix».

Unix – це інша операційна система. Mac OS X має ту ж саму ДНК. Але це не є Unix. Назва підкреслює цю різницю. Це данина поваги предкам та водночас поділ. Це нагадування про те, що хоча Mac побудований на принципах UNIX, це самостійний і потужний пристрій.

Ядро керує пам’яттю. Серія I/O відповідає за з’єднання. BSD піклується про безпеку. Стек тримає їх разом. Наступного разу, коли ви захочете, щоб ваш Mac працює гладко, згадайте код, який виконує невидиму роботу за вас. Не магія. Це архітектура.

попередня статтяЯк використовувати пошукову систему для благодійності на підтримку глобальних ініціатив
наступна статтяЗрозумійте клієнт-серверну архітектуру вашої мережі