Открыть сервис

XNU

XNU — это операционная система, основанная на микроядре Mach и содержащая компоненты из ядра FreeBSD, разработанная компанией Apple Inc. XNU является основой для операционных систем macOS, iOS, iPadOS, tvOS и watchOS. Название представляет собой рекурсивный акроним от «X is Not Unix».

История

Разработка XNU началась в 1996 году, когда Apple приобрела компанию NeXT, основанную Стивом Джобсом. Операционная система NeXTSTEP, созданная в NeXT, использовала гибридное ядро, сочетавшее микроядро Mach 2.5 и компоненты из 4.3BSD. После приобретения Apple приняла решение использовать NeXTSTEP как основу для новой операционной системы для Macintosh.

В 1997 году Apple начала проект Rhapsody, целью которого было создание преемника классической Mac OS. В рамках этого проекта ядро NeXTSTEP было модифицировано: микроядро Mach 2.5 заменили на более современное Mach 3.0, а компоненты BSD были обновлены до версии FreeBSD 3.x. Полученное ядро получило название XNU.

Первая публичная версия XNU была выпущена в составе Mac OS X Server 1.0 в 1999 году. В 2000 году Apple выпустила Mac OS X Public Beta, а в 2001 году — финальную версию Mac OS X 10.0 Cheetah. С этого момента XNU стала основой всех операционных систем Apple.

В 2000 году Apple открыла исходный код XNU под лицензией Apple Public Source License (APSL) в рамках проекта Darwin. Darwin представляет собой открытую версию macOS, включающую XNU и другие компоненты операционной системы, но без графического интерфейса Aqua и проприетарных приложений Apple.

Архитектура

XNU является гибридным ядром, сочетающим элементы микроядра и монолитного ядра. Такая архитектура позволяет совмещать преимущества обоих подходов: модульность и изоляцию процессов микроядра с производительностью и низкой задержкой монолитного ядра.

Микроядро Mach

Основой XNU является микроядро Mach 3.0, предоставляющее базовые механизмы управления памятью, межпроцессного взаимодействия (IPC) и планирования задач. В XNU используется модифицированная версия Mach, разработанная в Университете Карнеги — Меллон.

Ключевые функции Mach в XNU:

Компоненты BSD

Над микроядром Mach располагается слой BSD, заимствованный из FreeBSD. Этот слой предоставляет:

  • POSIX-совместимый интерфейс системных вызовов
  • Модель процессов и сигналов
  • Сетевой стек (на основе FreeBSD)
  • Файловые системы (HFS+, APFS, UFS, FAT и другие)
  • Систему безопасности (модель разрешений Unix, ACL, sandbox)

I/O Kit

I/O Kit — это объектно-ориентированная подсистема управления драйверами устройств, написанная на C++. Она предоставляет фреймворк для разработки драйверов, поддерживающий горячее подключение устройств, управление питанием и многопоточность. I/O Kit является частью XNU и обеспечивает взаимодействие ядра с аппаратным обеспечением.

Версии

XNU развивалась параллельно с операционными системами Apple. Ниже приведены основные версии XNU и соответствующие им версии macOS:

Версия XNUВерсия macOSГод выпускаПримечания
XNU-124Mac OS X 10.0 Cheetah2001Первая версия XNU для Mac OS X
XNU-201Mac OS X 10.1 Puma2001Улучшена поддержка USB
XNU-344Mac OS X 10.2 Jaguar2002Оптимизация производительности
XNU-517Mac OS X 10.3 Panther2003Переход на Mach 3.0
XNU-792Mac OS X 10.4 Tiger2005Поддержка Intel x86
XNU-1228Mac OS X 10.5 Leopard200764-битное ядро
XNU-1456Mac OS X 10.6 Snow Leopard2009Оптимизация для многопоточности
XNU-1699Mac OS X 10.7 Lion2011Поддержка iOS-приложений
XNU-2050OS X 10.8 Mountain Lion2012Интеграция iCloud
XNU-2422OS X 10.9 Mavericks2013Улучшение управления памятью
XNU-2782OS X 10.10 Yosemite2014Переход на Swift
XNU-3247OS X 10.11 El Capitan2015Защита целостности системы (SIP)
XNU-3789macOS 10.12 Sierra2016Поддержка Apple File System (APFS)
XNU-4570macOS 10.13 High Sierra2017APFS по умолчанию
XNU-4903macOS 10.14 Mojave2018Тёмная тема
XNU-6153macOS 10.15 Catalina2019Отказ от 32-битных приложений
XNU-7195macOS 11 Big Sur2020Переход на ARM64
XNU-8020macOS 12 Monterey2021Улучшение производительности
XNU-8792macOS 13 Ventura2022Поддержка Stage Manager
XNU-10002macOS 14 Sonoma2023Оптимизация для игр

Особенности и критика

Преимущества

  • Стабильность: Гибридная архитектура XNU обеспечивает изоляцию драйверов устройств и пользовательских процессов, что снижает вероятность системных сбоев.
  • Производительность: Сочетание микроядра и монолитного ядра позволяет достичь высокой производительности при обработке системных вызовов и управлении памятью.
  • Совместимость: POSIX-совместимость XNU позволяет запускать на macOS множество Unix-приложений без существенных изменений.

Недостатки

  • Сложность: Гибридная архитектура XNU сложнее как монолитного ядра Linux, так и чистого микроядра, что затрудняет разработку и отладку.
  • Закрытость: Несмотря на открытый исходный код XNU в рамках Darwin, многие компоненты macOS (графический интерфейс, драйверы, библиотеки) остаются проприетарными.
  • Производительность IPC: Механизмы межпроцессного взаимодействия Mach могут быть медленнее, чем аналоги в Linux, что критикуется некоторыми разработчиками.

Применение

XNU используется во всех операционных системах Apple, работающих на процессорах Intel x86-64 и Apple Silicon ARM64:

  • macOS — настольная операционная система для компьютеров Mac
  • iOS — операционная система для iPhone
  • iPadOS — операционная система для iPad
  • tvOS — операционная система для Apple TV
  • watchOS — операционная система для Apple Watch

Кроме того, XNU используется в проекте Darwin, который позволяет запускать macOS-совместимые приложения на других платформах, а также в эмуляторах и виртуальных машинах (например, QEMU).

Интересные факты

  • Название XNU является рекурсивным акронимом: «X is Not Unix», что является отсылкой к акрониму GNU («GNU is Not Unix»).
  • Исходный код XNU доступен на GitHub под лицензией Apple Public Source License (APSL) версии 2.0.
  • XNU поддерживает как 32-битные, так и 64-битные приложения, хотя с macOS 10.15 Catalina поддержка 32-битных приложений была прекращена.
  • В XNU реализована поддержка технологии sandbox, которая ограничивает доступ приложений к системным ресурсам.
  • XNU использует систему управления памятью, основанную на виртуальной памяти Mach, с поддержкой страниц размером 4 КБ, 2 МБ и 1 ГБ.

Источники

  • Apple Inc. «XNU Kernel Source Code». GitHub.
  • Singh, Amit. «Mac OS X Internals: A Systems Approach». Addison-Wesley, 2006.
  • Apple Inc. «macOS Kernel Programming Guide». Apple Developer Documentation.
  • Love, Robert. «Linux Kernel Development». 3rd Edition, Addison-Wesley, 2010.
  • «The Mach Project». Carnegie Mellon University.
  • «FreeBSD Handbook». The FreeBSD Documentation Project.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →