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

Darwin

Darwin — это операционная система с открытым исходным кодом, разработанная компанией Apple Inc. Она является фундаментом для всех операционных систем Apple, включая macOS, iOS, iPadOS, tvOS и watchOS. Darwin основан на ядре XNU (X is Not Unix), которое сочетает в себе микроядро Mach, компоненты из FreeBSD и объектно-ориентированный драйверный фреймворк I/O Kit. Система распространяется под лицензией Apple Public Source License (APSL), признанной Open Source Initiative (OSI) как соответствующая определению открытого исходного кода.

История

Предпосылки создания

До середины 1990-х годов Apple использовала классическую операционную систему Mac OS (до версии 9), которая имела монолитное ядро и не поддерживала вытесняющую многозадачность, защиту памяти и современные сетевые протоколы. К концу 1990-х годов компания столкнулась с необходимостью создания принципиально новой ОС, способной конкурировать с Windows NT и Linux.

Приобретение NeXT

В 1997 году Apple приобрела компанию NeXT, основанную Стивом Джобсом после его ухода из Apple. Операционная система NeXTSTEP, созданная на базе ядра Mach и кода BSD, стала основой для будущей macOS. Сделка обошлась Apple в 429 миллионов долларов.

Разработка и выпуск

В 1999 году Apple выпустила Mac OS X Server 1.0, а в 2001 году — потребительскую версию Mac OS X 10.0 Cheetah. Ядро и низкоуровневые компоненты этой системы были выделены в отдельный проект Darwin, который впервые был опубликован как открытый исходный код в апреле 2000 года. Название «Darwin» было выбрано в честь Чарльза Дарвина, символизируя эволюцию операционной системы.

Открытие исходного кода

Apple сделала Darwin открытым проектом, чтобы привлечь разработчиков стороннего ПО и способствовать портированию Unix-приложений на платформу macOS. Исходные коды Darwin публикуются на официальном сайте Apple Open Source и размещаются в репозиториях на GitHub.

Архитектура

Ядро XNU

XNU (X is Not Unix) — гибридное ядро, разработанное Apple. Оно состоит из трёх основных компонентов:

  • Микроядро Mach — обеспечивает базовые функции управления памятью, процессами, межпроцессным взаимодействием (IPC) и виртуальной памятью.
  • BSD-слой — предоставляет POSIX-совместимый интерфейс, файловые системы, сетевой стек, управление пользователями и процессами.
  • I/O Kit — объектно-ориентированный фреймворк для разработки драйверов устройств на языке C++.

Подсистемы

Darwin включает следующие ключевые подсистемы:

  • LibSystem — библиотека, объединяющая libc, libm, libpthread и другие низкоуровневые библиотеки.
  • File System — поддержка HFS+, APFS (с macOS 10.13), UFS, FAT32, exFAT и NFS.
  • Networkingстек протоколов TCP/IP, поддержка IPv4 и IPv6, брандмауэр на основе ipfw (позже — pf).
  • Security — подсистема аутентификации (PAM), механизмы мандатного контроля доступа (Sandbox), файрвол, шифрование (FileVault).

Отличия от FreeBSD

Хотя Darwin использует значительный объём кода из FreeBSD, между ними есть существенные различия:

  • Ядро Darwin (XNU) не является чистым BSD-ядром, а гибридным.
  • Darwin не включает пользовательские утилиты BSD (например, ps, ls, find) — они поставляются отдельно в macOS.
  • Darwin не поддерживает загрузку на оборудовании, отличном от Apple (кроме ограниченных портов для x86-64).

Версии и выпуски

Darwin развивается параллельно с macOS. Каждой версии macOS соответствует определённая версия Darwin. Нумерация Darwin отличается от версий macOS:

Версия macOSВерсия DarwinГод выпускаОсновные изменения
10.0 Cheetah1.3.12001Первый выпуск Darwin с открытым кодом
10.5 Leopard9.02007Поддержка 64-битных процессоров, ZFS (экспериментально)
10.6 Snow Leopard10.02009Полная 64-битная поддержка, Grand Central Dispatch
10.10 Yosemite14.02014Оптимизация для Retina-дисплеев, Metal API
10.13 High Sierra17.02017Переход на APFS, поддержка HEVC
11 Big Sur20.02020Поддержка Apple Silicon (ARM64), универсальные бинарники
14 Sonoma23.02023Улучшения производительности, новые API

Применение

macOS

Darwin составляет основу macOS — настольной операционной системы Apple. Пользовательский интерфейс (Aqua), графическая подсистема (Quartz Compositor, позже WindowServer) и прикладное ПО работают поверх Darwin.

iOS и производные

На Darwin базируются мобильные ОС Apple: iOS, iPadOS, tvOS и watchOS. В этих системах Darwin адаптирован для работы на ARM-процессорах Apple (A-серии и S-серии) и дополнен специфическими драйверами и подсистемами (Multi-Touch, Core Audio, Core Animation).

Серверные решения

До прекращения выпуска macOS Server в 2022 году Darwin использовался в серверных продуктах Apple. В настоящее время серверные функции доступны в составе macOS, но Apple не предлагает отдельного серверного дистрибутива.

Разработка и сообщество

Исходный код

Apple публикует исходный код Darwin на сайте opensource.apple.com. Репозиторий включает ядро XNU, библиотеки LibSystem, драйверы I/O Kit, системные утилиты (launchd, configd) и инструменты командной строки. Однако многие компоненты macOS (графический стек, Finder, Safari) остаются закрытыми.

Сторонние порты

Существуют попытки портировать Darwin на оборудование, не произведённое Apple:

  • OpenDarwin (2002–2006) — проект по созданию независимого дистрибутива Darwin, закрыт из-за лицензионных ограничений.
  • PureDarwin — современный проект, выпускающий загрузочные образы Darwin для тестирования на виртуальных машинах и реальном оборудовании.
  • Darwin-on-x86 — неофициальные сборки для платформы x86-64.

Лицензирование

Darwin распространяется под лицензией APSL 2.0. Эта лицензия разрешает свободное использование, модификацию и распространение исходного кода, но содержит ограничения на использование товарных знаков Apple и требование сохранения уведомлений об авторских правах.

Критика

Неполнота открытого кода

Основной недостаток Darwin с точки зрения сообщества открытого ПО — неполнота публикуемых исходных кодов. Многие драйверы, графические библиотеки и пользовательские приложения остаются проприетарными. Это затрудняет создание полноценных сторонних дистрибутивов.

Зависимость от оборудования Apple

Darwin оптимизирован для работы на устройствах Apple и не поддерживает загрузку на большинстве ПК с архитектурой x86-64 (за исключением ограниченного числа конфигураций). Это ограничивает его использование в качестве универсальной Unix-подобной ОС.

Лицензионные ограничения

APSL 2.0 несовместима с GPL версии 3, что создаёт юридические сложности при интеграции кода Darwin с GPL-проектами. Apple постепенно заменяет GPL-компоненты (например, GCC на Clang, bash на zsh) собственными разработками.

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

  • Darwin является одной из немногих операционных систем, использующих гибридное ядро, наряду с Windows NT.
  • Ядро XNU написано на языках C и C++ (для I/O Kit).
  • Darwin поддерживает запуск исполняемых файлов форматов Mach-O (основной формат macOS) и ELF (через эмуляцию или трансляцию).
  • В составе Darwin поставляется командная оболочка zsh (с macOS 10.15 Catalina), заменившая bash.
  • Darwin не имеет графического интерфейса — все взаимодействие происходит через терминал или удалённый доступ по SSH.

Источники

  • Apple Inc., «XNU: The Kernel», Apple Open Source Documentation.
  • Singh, Amit, «Mac OS X Internals: A Systems Approach», Addison-Wesley, 2006.
  • Levin, Jonathan, «Mac OS X and iOS Internals: To the Apple's Core», Wiley, 2012.
  • Официальный сайт проекта PureDarwin (puredarwin.org).
  • Репозиторий исходного кода Darwin на GitHub (github.com/apple/darwin-xnu).

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

На главную BFOmetr →