На чём написана macOS: языки, ядро и архитектура системы Apple

Операционная система macOS написана преимущественно на C, C++, Objective-C и Swift, а её основой служит гибридное ядро XNU, унаследованное от Unix-подобных систем. Именно сочетание низкоуровневого ядра и высокоуровневых фреймворков объясняет, почему система Apple одновременно стабильна и удобна для разработчиков.

Вопрос «на чём написана macOS» чаще всего возникает у тех, кто хочет понять, насколько система близка к Linux, можно ли писать под неё программы на привычных языках и почему приложения для Windows не запускаются на Mac напрямую. Ниже разберём архитектуру по слоям — от ядра до пользовательского интерфейса.

Ядро XNU — фундамент системы

В основе macOS лежит ядро XNU (расшифровывается как «X is Not Unix»). Это гибридное ядро, которое Apple развивает и публикует в открытом виде в составе проекта Darwin. Оно объединяет компоненты разного происхождения.

  • 🧩 Mach — микроядро, отвечающее за управление процессами, потоками и виртуальной памятью.
  • 🧩 BSD — компоненты от FreeBSD: сетевой стек, файловые системы, POSIX-интерфейсы.
  • 🧩 IOKit — фреймворк драйверов устройств, написанный на подмножестве C++.

Благодаря BSD-слою в macOS доступны привычные Unix-инструменты: терминал, bash или zsh, утилиты ls, grep, ssh. Именно поэтому macOS сертифицирована как UNIX-система, а Linux — нет: Linux лишь повторяет поведение Unix, не наследуя код оригинальной системы.

На каких языках написана macOS

Единого языка у системы нет — каждый слой написан на том инструменте, который лучше подходит для его задач. Распределение выглядит примерно так.

Слой системыОсновные языкиНазначение
Ядро XNUC, C++ (IOKit), ассемблерПамять, процессы, драйверы
Системные службы и демоныC, Objective-CФоновые процессы, сеть, безопасность
Фреймворки (Cocoa, Foundation)Objective-C, всё чаще SwiftAPI для приложений
Интерфейс и штатные приложенияObjective-C, Swift, SwiftUIFinder, Safari, настройки

Низкоуровневый код ядра исторически пишется на C — это стандарт для операционных систем, поскольку язык даёт прямой контроль над памятью и минимальные накладные расходы. Критичные участки, например переключение контекста процессора, реализованы на ассемблере под конкретную архитектуру — раньше Intel x86-64, теперь и ARM64 для чипов Apple Silicon.

Прикладной уровень десятилетиями строился на Objective-C — объектно-ориентированном расширении C, которое Apple унаследовала вместе с системой NeXTSTEP. С 2014 года компания активно переводит новые компоненты на собственный язык Swift, более безопасный и лаконичный.

📊 Какой язык macOS вам интереснее всего?
Ядро на C и ассемблере
Objective-C и наследие NeXT
Swift и современная разработка
Unix-инструменты и терминал

Objective-C и наследие NeXTSTEP

Значительная часть «классической» macOS выросла из системы NeXTSTEP, созданной компанией NeXT, которую основал Стив Джобс после ухода из Apple. Когда Apple приобрела NeXT, её операционная система стала базой для Mac OS X, а вместе с ней пришли Objective-C и среда разработки, превратившаяся позже в Xcode.

Отголоски этого наследия видны до сих пор: многие системные классы в фреймворке Foundation начинаются с префикса NS — это сокращение от NeXTSTEP. Например, NSString или NSWindow.

Почему в коде macOS встречается префикс NS

Префикс NS означает NeXTSTEP — систему компании NeXT, купленной Apple в конце 1990-х. Её код лёг в основу Mac OS X, а имена классов сохранились ради совместимости и исторической преемственности.

Swift и современный этап развития

Язык Swift Apple представила в 2014 году как замену Objective-C для новых проектов. Он компилируется в машинный код, защищает от типичных ошибок работы с памятью и требует меньше шаблонного кода. Постепенно Apple переписывает на Swift и собственные системные компоненты.

Вместе со Swift появился декларативный фреймворк интерфейсов SwiftUI, который позволяет описывать внешний вид приложения кодом вместо визуального конструктора. Новые штатные приложения macOS всё чаще создаются именно на этой связке.

Darwin — открытая часть macOS

Не вся система закрыта. Apple публикует исходный код Darwin — базовой Unix-прослойки, включающей ядро XNU, системные библиотеки и набор командных утилит. Проверить версию Darwin на своём Mac можно командой в терминале:

uname -a

Закрытыми остаются графическая оболочка Aqua, фреймворки Cocoa и штатные приложения — именно они формируют «фирменный» вид macOS. Поэтому Darwin сам по себе не даёт привычного рабочего стола, хотя технически является полноценной Unix-системой.

⚠️ Внимание: исходный код Darwin открыт, но это не значит, что macOS можно свободно установить на обычный ПК. Лицензионное соглашение Apple разрешает запуск macOS только на компьютерах Mac, а сборки «Хакинтош» нарушают условия лицензии.

☑️ Как посмотреть Unix-основу macOS на своём Mac

Выполнено: 0 / 4

Почему архитектура важна пользователю и разработчику

Для обычного пользователя Unix-основа означает стабильность и предсказуемое управление правами доступа: системные файлы защищены, приложения работают в изолированной среде. Для разработчика важно другое — на Mac из коробки доступны инструменты командной строки, а значит, удобно вести веб- и серверную разработку без виртуальных машин.

Обратная сторона — несовместимость исполняемых форматов. Программы для Windows (.exe) не запускаются напрямую, потому что macOS использует собственный формат Mach-O и другой набор системных вызовов. Для запуска чужого ПО нужны эмуляторы, слои совместимости или виртуализация.

⚠️ Внимание: переход Mac на процессоры Apple Silicon изменил архитектуру с x86-64 на ARM64. Старые приложения для Intel запускаются через транслятор Rosetta 2, но драйверы и низкоуровневые утилиты, собранные только под Intel, могут не работать — проверяйте совместимость конкретной программы у её разработчика.

Часто задаваемые вопросы

macOS написана на Linux?

Нет. macOS построена на ядре XNU, сочетающем Mach и компоненты BSD, а не на ядре Linux. Системы лишь похожи внешне: обе предоставляют Unix-подобный терминал и похожие утилиты, но их ядра и лицензии различаются принципиально.

Можно ли посмотреть исходный код macOS?

Частично. Apple публикует исходный код открытой части системы — проекта Darwin, включающего ядро XNU и базовые библиотеки. Графический интерфейс Aqua, фреймворки Cocoa и штатные приложения остаются закрытыми.

На каком языке пишут приложения для macOS сейчас?

Современный стандарт — Swift в связке с фреймворком SwiftUI. Objective-C по-прежнему используется для поддержки и доработки старых проектов, а кроссплатформенные приложения могут создаваться и на других языках с соответствующими инструментами.

Почему macOS считается Unix, а Linux — нет?

macOS прошла официальную сертификацию на соответствие стандарту Single UNIX Specification. Linux лишь реализует похожее поведение без такой сертификации, поэтому формально называется Unix-подобной системой.

Что такое XNU простыми словами?

XNU — это ядро macOS, «двигатель» системы. Оно управляет процессором, памятью, драйверами и сетью, объединяя микроядро Mach, компоненты FreeBSD и фреймворк драйверов IOKit, написанный на C++.