Введение
Компьютерная операционная система
Darwin — это ядро Unix-операционной системы, лежащее в основе macOS (ранее OS X и Mac OS X), iOS, watchOS, tvOS, iPadOS, visionOS и bridgeOS. Ранее она существовала как независимая операционная система с открытым исходным кодом, впервые выпущенная компанией Apple Inc. в 2000 году. Darwin состоит из кода, полученного из NeXTSTEP, FreeBSD, Mach и других проектов свободного программного обеспечения, а также кода, разработанного Apple. Darwin в основном совместим со стандартом POSIX, но сам по себе никогда не был сертифицирован на соответствие какой-либо версии POSIX. Начиная с версии Leopard, macOS была сертифицирована как совместимая с версией 3 Единой спецификации UNIX (SUSv3).
История
Наследие Дарвина началось с производных Unix, дополненных элементами операционной системы NeXT NeXTSTEP (впоследствии, начиная с версии 4.0, известной как OPENSTEP), впервые представленной в 1989 году. После приобретения NeXT компанией Apple в 1996 году, было объявлено, что следующая операционная система будет основана на OPENSTEP. Результатом разработки стали Rhapsody в 1997 году, Mac OS X Server 1.0 в 1999 году, Mac OS X Public Beta в 2000 году и Mac OS X 10.0 в 2001 году. В 1999 году Apple объявила о выпуске исходного кода микроядра Mach 2.5, ОС BSD Unix 4.4 и компонентов веб-сервера Apache для Mac OS X Server. В то время временный генеральный директор Стив Джобс, намекая на британского натуралиста Чарльза Дарвина, заявил: "потому что речь идет об эволюции". В 2000 году основные компоненты операционной системы Mac OS X были выпущены как программное обеспечение с открытым исходным кодом под лицензией Apple Public Source License (APSL) под названием Darwin; компоненты более высокого уровня, такие как фреймворки Cocoa и Carbon, остались проприетарными. До Darwin 8.0.1, выпущенного в апреле 2005 года, Apple выпускала двоичный установщик (в виде ISO-образа) после каждого крупного релиза Mac OS X, позволявший установить Darwin на системы PowerPC и Intel x86 как самостоятельную операционную систему. Незначительные обновления выпускались в виде отдельных пакетов. В настоящее время Darwin доступен только в виде исходного кода. По состоянию на январь 2023 года Apple больше не упоминает Darwin по имени на своем веб-сайте с открытым исходным кодом и публикует лишь неполный набор проектов с открытым исходным кодом, связанных с macOS и iOS.
Ядра
Ядро Darwin – XNU, гибридное ядро, использующее OSFMK 7.3 (Open Software Foundation Mach Kernel) от OSF, различные компоненты FreeBSD (включая модель процессов, сетевой стек и виртуальную файловую систему) и объектно-ориентированный API для драйверов устройств под названием I/O Kit. Конструкция гибридного ядра сочетает в себе гибкость микроядра и производительность монолитного ядра.
Поддержка аппаратных и программных средств
Последний загрузочный полный выпуск Darwin поддерживал 32-битные и 64-битные системы Apple PowerPC и 32-битные компьютеры Intel. В настоящее время Darwin включает поддержку 64-битного варианта x86_64 процессоров Intel x86, используемых в компьютерах Mac на базе Intel, и 64-битных процессоров ARM, используемых в iPhone 5S и более поздних моделях, iPod Touch 6-го поколения, iPad 5-го поколения и более поздних моделях, линейке iPad Air, iPad Mini 2 и более поздних моделях, линейке iPad Pro, Apple TV 4-го поколения и более поздних моделях, линейке HomePod и Mac с процессорами Apple Silicon, таких как Apple M1 Macs 2020 года, а также Raspberry Pi 3B. Существует порт с открытым исходным кодом ядра XNU, который поддерживает Darwin на платформах Intel и AMD x86, официально не поддерживаемых Apple, хотя он, по-видимому, не обновлялся с 2009 года. Также существует порт с открытым исходным кодом ядра XNU для платформ ARM, но он не обновлялся с 2016 года. Более ранние версии поддерживали некоторые или все из: 32-битные PowerPC, 64-битные PowerPC, 32-битные x86 и 32-битные ARM. Он поддерживает API POSIX благодаря своему происхождению от BSD (в основном, пользовательское окружение FreeBSD), поэтому большое количество программ, написанных для различных UNIX-подобных систем, можно скомпилировать на Darwin без изменений в исходном коде. Darwin не включает многие ключевые компоненты macOS, такие как API Carbon и Cocoa, а также Quartz Compositor и пользовательский интерфейс Aqua, и поэтому не может запускать приложения для Mac. Однако он поддерживает ряд менее известных функций macOS, таких как mDNSResponder, который является многоадресным DNS-ответчиком и основным компонентом сетевой технологии Bonjour, и launchd – расширенную систему управления службами.
Лицензия
В июле 2003 года Apple выпустила Darwin под лицензией Apple Public Source License (APSL) версии 2.0, которую Фонд свободного программного обеспечения (FSF) классифицирует как лицензию свободного программного обеспечения, несовместимую с GNU General Public License. Предыдущие версии были выпущены под более раннюю версию лицензии APSL, которая не удовлетворяла определению свободного программного обеспечения, принятому FSF, хотя и соответствовала требованиям Open Source Definition.
История релизов
Ниже представлена таблица основных выпусков Darwin с указанием дат их выпуска и выпусков производных операционных систем. Следует отметить, что соответствующие выпуски могли быть опубликованы в другую дату.
Дарвин 20 лет и старше
Дата выпуска версии Соответствующие релизы Примечания 20.0.0 22 июня 2020 macOS Big Sur, iOS 14, watchOS, tvOS, bridgeOS macOS 11.0 beta 1 и iOS 14.0 beta 120.1.0 3 сентября 2020 macOS 11.0 и iOS 14.020.2.0 12 ноября 2020 macOS 11.1 и iOS 14.320.3.0 1 февраля 2021 macOS 11.2, iOS 14.4, iPadOS 14.4, watchOS 7.3 и tvOS 14.4. 20.4.0 20 апреля 2021 macOS 11.3, iOS 14.5, iPadOS 14.5, watchOS 7.4 и tvOS 14.5. 20.5.0 24 мая 2021 macOS 11.4 и iOS 14.620.6.0 2 июня 2021 macOS 11.5 beta 2 и iOS 14.7 beta 221.0.0 7 июня 2021 macOS Monterey, iOS 15, watchOS, tvOS, bridgeOS macOS 12.0 beta 1 и iOS 15.0 beta 121.0.1 25 октября 2021 macOS 12.021.1.0 25 октября 2021 macOS 12.0.1 и iOS 15.021.2.0 7 декабря 2021 macOS 12.1 и iOS 15.221.3.0 26 января 2022 macOS 12.2 и iOS 15.321.4.0 14 марта 2022 macOS 12.3 и iOS 15.421.5.0 24 июня 2022 macOS 12.4 и iOS 15.521.6.0 20 июля 2022 macOS 12.5 и iOS 15.622.0.0 6 июня 2022 macOS Ventura, iOS 16, iPadOS 16, watchOS 9, tvOS 16, bridgeOS 7 macOS 13.0 beta 1, iOS 16.0, watchOS 9.0 и tvOS 16.022.1.0 24 октября 2022 macOS 13.0, iOS 16.1, iPadOS 16.1, watchOS 9.1 и tvOS 16.122.2.0 13 декабря 2022 macOS 13.1, iOS 16.2, iPadOS 16.2, watchOS 9.2 и tvOS 16.222.3.0 23 января 2023 macOS 13.2, iOS 16.3, iPadOS 16.3, watchOS 9.3 и tvOS 16.322.4.0 27 марта 2023 macOS 13.3, iOS 16.4, iPadOS 16.4, watchOS 9.4 и tvOS 16.422.5.0 18 мая 2023 macOS 13.4, iOS 16.5, iPadOS 16.5, watchOS 9.5 и tvOS 16.522.6.0 24 июля 2023 macOS 13.5, iOS 16.6, iPadOS 16.6, watchOS 9.6 и tvOS 16.623.0.0 18 сентября 2023 macOS Sonoma, iOS 17, iPadOS 17, watchOS 10, tvOS 17, bridgeOS 8 macOS 14.0, iOS 17.0, iPadOS 17.0, watchOS 10.0 и tvOS 17.023.1.0 25 октября 2023 macOS 14.1, iOS 17.1, iPadOS 17.1, watchOS 10.1 и tvOS 17.123.2.0 15 ноября 2023 macOS 14.2, iOS 17.2, iPadOS 17.2, watchOS 10.2 и tvOS 17.223.3.0 22 января 2024 macOS 14.3, iOS 17.3, iPadOS 17.3, watchOS 10.3 и tvOS 17.323.4.0 5 марта 2024 macOS 14.4, iOS 17.4, iPadOS 17.4, watchOS 10.4 и tvOS 17.4
Note: the tables above contain the release dates of the corresponding OS releases. Build dates for Darwin versions are not publicly available; the commands below only give the build date for the XNU kernel. The command in Terminal will show the Darwin version number ("20.3.0"), and the command will show the XNU build version string, which includes the Darwin version number. The command will show the corresponding ProductName ("macOS"), the ProductVersion number ("11.2.3") and the BuildVersion string ("20D91").
Производные проекты
В связи с тем, что Darwin является свободным программным обеспечением, возникали проекты, целью которых является модификация или расширение функциональности операционной системы.
Открыть Дарвина
OpenDarwin была операционной системой, созданной на основе системы Darwin. Она была основана в апреле 2002 года компаниями Apple Inc. и Internet Systems Consortium. Целью проекта было расширение сотрудничества между разработчиками Apple и сообществом свободного программного обеспечения. Apple извлекала выгоду из проекта, поскольку улучшения, вносимые в OpenDarwin, включались в выпуски Darwin; а сообщество свободного и открытого программного обеспечения получило полный контроль над собственной операционной системой, которую затем можно было использовать в дистрибутивах свободного программного обеспечения, таких как GNU Darwin. 25 июля 2006 года команда OpenDarwin объявила о закрытии проекта, поскольку считала, что OpenDarwin «превратился в простую площадку для размещения проектов, связанных с Mac OS X», и что попытки создать самостоятельную операционную систему Darwin не увенчались успехом. Они также заявили: «Доступность исходного кода, взаимодействие с представителями Apple, трудности со сборкой и отслеживанием исходного кода, а также недостаток интереса со стороны сообщества – все это способствовало этому». Последним стабильным выпуском была версия 7.2.1, выпущенная 16 июля 2004 года.
Чистый Дарвин
PureDarwin — проект по созданию загрузочного образа операционной системы из исходного кода Darwin, опубликованного Apple. После прекращения развития OpenDarwin и появления загрузочных образов, начиная с Darwin 8.x, создание полноценной операционной системы стало все более сложным, так как многие компоненты перешли в закрытый исходный код. В 2015 году проект выпустил предварительную версию на основе Darwin 9 с графическим интерфейсом X11, а затем – бета-версию 17.4, работающую только в командной строке и основанную на Darwin 17.
Прочие производные проекты
XQuartz — это компонент системы X Window, работающий на macOS (Darwin). XDarwin существовал до появления приложения Apple X11. GNUstep — это реализация свободного программного обеспечения фреймворков Cocoa (ранее OpenStep) Objective-C, инструментария виджетов и инструментов разработки приложений для Unix-подобных операционных систем. Window Maker — это менеджер окон, разработанный для эмуляции графического интерфейса NeXT в рамках более широкого проекта GNUstep. MacPorts (ранее DarwinPorts), Fink и Homebrew — это проекты по портированию программ UNIX в операционную систему Darwin и обеспечению управления пакетами. Кроме того, несколько стандартных менеджеров пакетов UNIX, таких как RPM, pkgsrc и Portage, имеют порты для Darwin. Некоторые из них работают в собственном пространстве имен, чтобы не конфликтовать с базовой системой. GNU Darwin — это проект, который портирует пакеты свободного программного обеспечения в Darwin, упаковывая образы ОС аналогично дистрибутиву Linux. Проект Darwine — это порт Wine, позволяющий запускать программное обеспечение Microsoft Windows на Darwin. SEDarwin — это порт фреймворка обязательного контроля доступа TrustedBSD и частей фреймворка SELinux в Darwin, который был включен в Mac OS X 10.5. Проект Darbat — это экспериментальный порт Darwin в семейство микроядер L4, стремящийся к двоичной совместимости с существующими бинарными файлами Darwin. Проект Darling — это уровень совместимости для запуска двоичных файлов macOS на системах Linux, использующий часть исходного кода Darwin. Существуют различные проекты, ориентированные на поддержку драйверов, например, драйверы беспроводной связи, драйверы сетевых карт, драйверы модемов, устройства для чтения карт и файловые системы ext2 и ext3. DarwinBSD Project — это проект Darwin, использующий pkgsrc для пакетов, и является проектом с открытым исходным кодом.