Darwin в основном совместим с POSIX , но сам по себе никогда не был сертифицирован как совместимый с какой-либо версией POSIX. Начиная с Leopard , macOS был сертифицирован как совместимый с Single UNIX Specification версии 3 (SUSv3). [7] [8] [9]
История
Наследие Darwin началось с производных Unix, дополненных аспектами операционной системы NeXTSTEP от NeXT (позже, начиная с версии 4.0, известной как OPENSTEP), впервые выпущенной в 1989 году. После того, как Apple купила NeXT в 1996 году, она объявила, что будет основывать свою следующую операционную систему на OPENSTEP. Это было разработано в Rhapsody в 1997 году, Mac OS X Server 1.0 в 1999 году, Mac OS X Public Beta в 2000 году и Mac OS X 10.0 в 2001 году.
Вплоть до Darwin 8.0.1, выпущенного в апреле 2005 года, Apple выпускала двоичный установщик (в виде образа ISO ) после каждого крупного релиза Mac OS X, который позволял устанавливать Darwin на системах PowerPC и Intel x86 в качестве отдельной операционной системы. [12] Незначительные обновления выпускались в виде пакетов, которые устанавливались отдельно. Darwin теперь доступен только в виде исходного кода. С января 2023 года Apple больше не упоминает Darwin по имени на своем веб-сайте Open Source и публикует только неполную коллекцию проектов с открытым исходным кодом, относящихся к macOS и iOS.
Последняя загрузочная полная версия Darwin поддерживала 32- и 64-разрядные системы Apple PowerPC и 32-разрядные ПК Intel. [18]
В настоящее время 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 четвертого поколения и более поздних моделях , семействе HomePod и компьютерах Mac с чипсетом Apple , таких как Apple M1 Mac 2020 года, а также Raspberry Pi 3B. [19] [20] Существует открытый исходный код ядра XNU , который поддерживает Darwin на платформах Intel и AMD x86, официально не поддерживаемых Apple, хотя, по-видимому, он не обновлялся с 2009 года. [21] Открытый исходный код ядра XNU также существует для платформ ARM, хотя он не обновлялся с 2016 года. [22] Более старые версии поддерживали некоторые или все из 32-разрядных PowerPC , 64-разрядных PowerPC, 32-разрядных x86 и 32-разрядных ARM.
Ниже приведена таблица основных релизов Darwin с датами их выпуска и производными от них релизами операционных систем. [25] Обратите внимание, что соответствующие релизы могли быть выпущены в разные даты.
Darwin 0–8 и соответствующие выпуски Mac OS X
Скачок в номерах версий с Darwin 1.4.1 до 5.1 с выпуском Mac OS X v10.1.1 был разработан, чтобы связать Darwin с версией Mac OS X и системой нумерации сборок, которая, в свою очередь, унаследована от NeXTSTEP. В системе нумерации сборок macOS каждая версия имеет уникальный начальный номер сборки, который идентифицирует, частью какой версии macOS она является. Mac OS X v10.0 имела номера сборок, начинающиеся с 4, 10.1 имела номера сборок, начинающиеся с 5, и так далее (более ранние номера сборок представляли выпуски для разработчиков). [30]
Darwin 9; представлена iPhone OS
Darwin 10-11; iPhone OS переименована в iOS
Darwin 12–15; Mac OS X переименована в OS X
Darwin 16–19; OS X переименована в macOS
Дарвин 20 и далее
Примечание: таблицы выше содержат даты выпуска соответствующих релизов ОС. Даты сборки для версий Darwin не являются общедоступными; команды ниже дают только дату сборки для ядра XNU.
Команда uname -r в Терминале покажет номер версии Darwin ("20.3.0"), а команда uname -v покажет строку версии сборки XNU , которая включает номер версии Darwin. Команда sw_vers покажет соответствующее ProductName ("macOS"), номер ProductVersion ("11.2.3") и строку BuildVersion ("20D91").
Производные проекты
В связи с тем, что Darwin является свободным программным обеспечением, появились проекты, направленные на изменение или улучшение операционной системы.
OpenDarwin
OpenDarwin была операционной системой, созданной сообществом на основе системы Darwin. Она была основана в апреле 2002 года Apple Inc. и Internet Systems Consortium . Ее целью было расширение сотрудничества между разработчиками Apple и сообществом свободного программного обеспечения . Apple выиграла от проекта, поскольку улучшения OpenDarwin будут включены в выпуски Darwin; а сообщество свободного/открытого исходного кода выиграло от предоставления полного контроля над собственной операционной системой, которая затем могла использоваться в дистрибутивах свободного программного обеспечения, таких как GNU-Darwin. [38]
25 июля 2006 года команда OpenDarwin объявила о закрытии проекта, поскольку они посчитали, что OpenDarwin «стал всего лишь хостинговым сооружением для проектов, связанных с Mac OS X», и что попытки создать автономную операционную систему Darwin провалились. [39] Они также заявляют: «Доступность исходников, взаимодействие с представителями Apple, трудности с созданием и отслеживанием исходников, а также отсутствие интереса со стороны сообщества — все это способствовало этому». [40] Последним стабильным релизом была версия 7.2.1, выпущенная 16 июля 2004 года. [41]
ЧистыйДарвин
PureDarwin — это проект по созданию загрузочного образа операционной системы из выпущенного Apple исходного кода для Darwin. [42] После остановки OpenDarwin и выпуска загрузочных образов с Darwin 8.x, стало все сложнее создавать полноценную операционную систему, поскольку многие компоненты стали закрытыми исходниками. В 2015 году проект создал предварительный релиз на основе Darwin 9 с графическим интерфейсом X11, [43] за которым последовала только командная строка 17.4 Beta на основе Darwin 17. [44]
MacPorts (ранее DarwinPorts), Fink и Homebrew — проекты по переносу программ UNIX в операционную систему Darwin и обеспечению управления пакетами . Кроме того, несколько стандартных менеджеров пакетов UNIX, таких как RPM , pkgsrc и Portage , имеют порты Darwin. Некоторые из них работают в собственном пространстве имен, чтобы не мешать базовой системе.
GNU-Darwin был проектом, который портирует пакеты свободного ПО в Darwin. Они упаковывают образы ОС способом, похожим на дистрибутив Linux .
Проект Darling — это слой совместимости для запуска двоичных файлов macOS на системах Linux. Он использует часть исходного кода Darwin. [48]
Существуют различные проекты, которые фокусируются на поддержке драйверов: например, беспроводные драйверы, [49] [50] проводные драйверы сетевых карт [51] [52] [53] драйверы модемов, [54] кард-ридеры, [55] а также файловые системы ext2 и ext3 . [56] [57]
Проект DarwinBSD — это проект Darwin, использующий pkgsrc для пакетов. Это проект с открытым исходным кодом. [58]
^ "Обзор архитектуры ядра". Kernel Programming Guide . Архивировано из оригинала 9 мая 2019 г. Получено 27 мая 2019 г.
^ "darwin-xnu/README.md at master". GitHub . Архивировано из оригинала 31 марта 2019 г. Получено 21 ноября 2019 г.
^ ab "Apple BSD Overview". Apple. 2002. Архивировано из оригинала 7 ноября 2018 г. Получено 1 января 2002 г.
^ "Apple - Public Source - Darwin FAQ". Архивировано из оригинала 19 ноября 2004 г. Получено 9 августа 2021 г.
^ "Двоичные драйверы, необходимые для PureDarwin". Архивировано из оригинала 18 ноября 2009 г. Получено 20 июля 2009 г.
^ "1. Обзор системы". NeXTstep Concepts . NeXT . Архивировано из оригинала 21 ноября 2021 г. . Получено 26 марта 2021 г. .
^ "Mac OS X Leopard - Технология - UNIX". Обзор технологии Leopard . Apple Inc. Архивировано из оригинала 27 декабря 2008 г. Leopard теперь является зарегистрированным продуктом Open Brand UNIX 03, соответствующим спецификациям SUSv3 и POSIX 1003.1 для C API, Shell Utilities и Threads.
↑ The Open Group (18 мая 2007 г.). «Сертификация Mac OS X версии 10.5 Leopard на компьютерах Macintosh на базе Intel». Архивировано из оригинала 25 октября 2019 г. Получено 11 февраля 2013 г.
^ "macOS версии 10.13 High Sierra на компьютерах Mac на базе Intel". The Open Group. Архивировано из оригинала 28 сентября 2017 г. Получено 19 ноября 2017 г.
^ Уолш, Джефф (22 марта 1999 г.). «Apple переходит на открытый исходный код с ключевыми компонентами ОС». InfoWorld . Том 21, № 12. IDG InfoWorld. стр. 40. Получено 17 февраля 2020 г.
^ Кани, Линдер. «Apple Opens OS Code». Wired . Condé Nast. Архивировано из оригинала 17 февраля 2020 г. Получено 17 февраля 2020 г.
^ "Apple ISO download directory". Архивировано из оригинала 7 октября 2016 г.
↑ Джим Маги. WWDC 2000, сессия 106 — Mac OS X: ядро. 14 минут. Архивировано из оригинала 11 декабря 2021 г.
^ "Обзор технологий Mac: уровень ядра и драйверов устройств". Apple Developer Connection . Архивировано из оригинала 9 марта 2014 г. Получено 11 февраля 2013 г.
^ Сингх, Амит (7 января 2004 г.). "XNU: The Kernel". Архивировано из оригинала 2 июня 2020 г. Получено 11 февраля 2013 г.
^ "Дополнительные возможности". Портирование приложений UNIX/Linux на OS X . Apple Inc. Архивировано из оригинала 14 ноября 2017 г. Получено 13 ноября 2017 г.
^ "Darwin 8.0.1 Release Notes". 29 апреля 2005 г. Архивировано из оригинала 28 октября 2023 г. Получено 16 августа 2023 г.
^ "XNU board config for BCM2837". GitHub . 16 декабря 2021 г. Архивировано из оригинала 5 декабря 2021 г. Получено 5 декабря 2021 г.
^ "Raspberry Pi 3 Model B". Архивировано из оригинала 5 декабря 2021 г. Получено 5 декабря 2021 г. Четырехъядерный 1,2 ГГц Broadcom BCM2837
^ "Voodoo XNU Kernel Source". Архивировано из оригинала 30 сентября 2015 г. Получено 25 апреля 2014 г.Требуется клиент Apache SVN.
^ "Техническая записка TN2029: Mac OS X v10.1". Apple Developer Connection . Архивировано из оригинала 14 ноября 2001 г.
↑ Сиракузы, Джон (5 сентября 2002 г.). «Mac OS X 10.2 Ягуар». Арс Техника . Проверено 31 мая 2008 г.
↑ Сиракузы, Джон (9 ноября 2003 г.). «Mac OS X 10.3 Пантера». Арс Техника . Проверено 31 мая 2008 г.
↑ Сиракузы, Джон (28 апреля 2005 г.). «Mac OS X 10.4 Тигр». Арс Техника . Проверено 30 мая 2008 г.
^ Прабхакар, Эрни (9 ноября 2001 г.). "Версия Darwin - Новая схема в обновлении программного обеспечения 1". darwin-development (список рассылки). Архивировано из оригинала 14 января 2009 г. Получено 2 июня 2008 г.
↑ Siracusa, John (28 октября 2007 г.). «Mac OS X 10.5 Leopard: обзор Ars Technica». Ars Technica . Получено 30 мая 2008 г.
↑ Siracusa, John (31 августа 2009 г.). «Mac OS X 10.6 Snow Leopard: обзор Ars Technica». Ars Technica . Получено 29 ноября 2009 г. .
^ «Системные расширения и DriverKit - WWDC19 - Видео».
^ "SystemExtensions". Документация для разработчиков Apple .
^ "DriverKit". Документация разработчика Apple .
^ Системные расширения и DriverKit. Документация для разработчиков Apple .
^ "OpenDarwin". Проект OpenDarwin. Архивировано из оригинала 6 января 2006 года.
↑ Шофилд, Джек (26 июля 2006 г.). «OpenDarwin Shutting Down». The Guardian . Получено 18 марта 2023 г.
↑ OpenDarwin Core Team and Administrators (25 июля 2006 г.). "OpenDarwin Shutting Down". OpenDarwin Project. Архивировано из оригинала 4 августа 2006 г.
^ "OpenDarwin 7.2.1 Released". 5 августа 2004 г. Архивировано из оригинала 5 августа 2004 г. Получено 7 октября 2019 г.
^ "PureDarwin". Архивировано из оригинала 1 апреля 2024 г. Получено 1 апреля 2024 г.
↑ PureDarwin Xmas Архивировано 3 декабря 2019 г. в Wayback Machine (2015)
^ "PureDarwin 17.4 Beta". GitHub . PureDarwin. 30 ноября 2019 г. Архивировано из оригинала 13 декабря 2019 г. Получено 11 января 2020 г.
^ "Security Enhanced Darwin". SE Darwin. 22 января 2007 г. Архивировано из оригинала 5 октября 2011 г.
^ "Что нового в Mac OS X: Mac OS X v10.5". Справочная библиотека Mac OS X. Apple Inc. 13 ноября 2009 г. Архивировано из оригинала 8 декабря 2009 г.
^ "L4/Darwin (aka Darbat)". Ertos.nicta.com.au. 9 мая 2007 г. Архивировано из оригинала 19 декабря 2013 г.
^ "Darling: macOS translation layer for Linux". www.darlinghq.org . Архивировано из оригинала 21 апреля 2020 г. . Получено 11 января 2020 г. .
^ yuriwho (5 мая 2002 г.). "Домашняя страница WirelessDriver". Wirelessdriver.sourceforge.net. Архивировано из оригинала 28 июля 2020 г. Получено 12 июля 2010 г.
^ "iwi2200 Darwin". SourceForge . 27 марта 2009 г. Архивировано из оригинала 18 августа 2009 г. Получено 13 июня 2010 г.
^ "Перенос драйвера(ов) Tulip BSD в Darwin OS | Бесплатная загрузка программного обеспечения Port BSD Tulip драйвера(ов) Tulip в Darwin OS на сайте". SourceForge.net. Архивировано из оригинала 16 июля 2010 г. Получено 12 июля 2010 г.
^ "Сетевой драйвер RealTek для Mac OS X/Darwin". SourceForge . 15 марта 2006 г. Архивировано из оригинала 24 июля 2010 г. Получено 3 июня 2010 г.Проект неактивен с 15 марта 2006 года.
^ fansui; et al. (1 августа 2007 г.). "RTL8150LMEthernet". SourceForge. Архивировано из оригинала 7 сентября 2008 г. Получено 13 июня 2010 г.
^ "Драйверы модема ZyXEL для OS X/Darwin | Загрузите бесплатное программное обеспечение драйверов модема ZyXEL для OS X/Darwin на сайте". SourceForge.net. 14 мая 2002 г. Архивировано из оригинала 7 января 2009 г. Получено 12 июля 2010 г.
^ "Mac OS X PC Card ATA Driver". Pccardata.sourceforge.net. 20 декабря 2001 г. Архивировано из оригинала 5 августа 2020 г. Получено 12 июля 2010 г.
^ "Mac OS X Ext2 Filesystem | Загрузите программное обеспечение Mac OS X Ext2 Filesystem бесплатно на сайте". SourceForge.net. 14 октября 2002 г. Архивировано из оригинала 22 июля 2010 г. Получено 12 июля 2010 г.
^ "файловая система ext2 в пространстве пользователя". SourceForge . 14 июля 2008 г. Архивировано из оригинала 26 июля 2010 г. Получено 13 июня 2010 г.
^ "DarwinBSD". darwinbsd.tk . Архивировано из оригинала 23 марта 2023 г. Получено 7 апреля 2023 г.