stringtranslate.com

Дарвин (операционная система)

Darwin — это основная Unix-подобная операционная система macOS , iOS , watchOS , tvOS , iPadOS , audioOS , visionOS и bridgeOS . Ранее она существовала как независимая операционная система с открытым исходным кодом , впервые выпущенная Apple Inc. в 2000 году. Она состоит из кода , полученного из NeXTSTEP , FreeBSD , [3] других операционных систем BSD , [6] Mach и кода других проектов свободного программного обеспечения , а также кода, разработанного Apple.

Darwin в основном совместим с POSIX , но сам по себе никогда не был сертифицирован как совместимый с какой-либо версией POSIX. Начиная с Leopard , macOS был сертифицирован как совместимый с Single UNIX Specification версии 3 (SUSv3). [7] [8] [9]

История

Упрощенная история Unix-подобных операционных систем

Наследие 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 году.

В 1999 году Apple объявила, что выпустит исходный код микроядра Mach 2.5, ОС BSD Unix 4.4 и компонентов веб-сервера Apache для Mac OS X Server. [10] В то время временный генеральный директор Стив Джобс сослался на британского натуралиста Чарльза Дарвина , заявив: «Потому что речь идет об эволюции». [11] В 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 в качестве отдельной операционной системы. [12] Незначительные обновления выпускались в виде пакетов, которые устанавливались отдельно. Darwin теперь доступен только в виде исходного кода. По состоянию на январь 2023 года Apple больше не упоминает Darwin по имени на своем веб-сайте Open Source и публикует только неполную коллекцию проектов с открытым исходным кодом, относящихся к macOS и iOS.

Дизайн

Схема архитектуры macOS

Ядро

Ядром Darwin является XNU , гибридное ядро , которое использует OSFMK 7.3 [13] (Open Software Foundation Mach Kernel ) из OSF , различные элементы FreeBSD (включая модель процесса, сетевой стек и виртуальную файловую систему ) [14] и API объектно-ориентированного драйвера устройства, называемый I/O Kit . [15] Гибридная конструкция ядра обеспечивает гибкость микроядра [ 16] [ проверка не пройденасм. обсуждение ] и производительность монолитного ядра [17] .

Поддержка оборудования и программного обеспечения

Последняя загрузочная полная версия 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 , таких как Mac Apple M1 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.

Он поддерживает 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 , которую Free Software Foundation (FSF) классифицирует как лицензию свободного программного обеспечения, несовместимую с GNU General Public License . [23] Предыдущие версии были выпущены под более ранней версией лицензии APSL, которая не соответствовала определению свободного программного обеспечения FSF, хотя и соответствовала требованиям Open Source Definition . [24]

История релизов

Ниже приведена таблица основных релизов 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

GNOME работает на GNU-Darwin

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]

Другие производные проекты

Создатель окон в XDarwin

Смотрите также

Ссылки

  1. ^ "Обзор архитектуры ядра". Kernel Programming Guide . Архивировано из оригинала 9 мая 2019 г. Получено 27 мая 2019 г.
  2. ^ "darwin-xnu/README.md at master". GitHub . Архивировано из оригинала 31 марта 2019 г. Получено 21 ноября 2019 г.
  3. ^ ab "Apple BSD Overview". Apple. 2002. Архивировано из оригинала 7 ноября 2018 г. Получено 1 января 2002 г.
  4. ^ "Apple - Public Source - Darwin FAQ". Архивировано из оригинала 19 ноября 2004 г. Получено 9 августа 2021 г.
  5. ^ "Двоичные драйверы, необходимые для PureDarwin". Архивировано из оригинала 18 ноября 2009 г. Получено 20 июля 2009 г.
  6. ^ "1. Обзор системы". NeXTstep Concepts . NeXT . Архивировано из оригинала 21 ноября 2021 г. . Получено 26 марта 2021 г. .
  7. ^ "Mac OS X Leopard - Технология - UNIX". Обзор технологии Leopard . Apple Inc. Архивировано из оригинала 27 декабря 2008 г. Leopard теперь является зарегистрированным продуктом Open Brand UNIX 03, соответствующим спецификациям SUSv3 и POSIX 1003.1 для C API, Shell Utilities и Threads.
  8. The Open Group (18 мая 2007 г.). «Сертификация Mac OS X версии 10.5 Leopard на компьютерах Macintosh на базе Intel». Архивировано из оригинала 25 октября 2019 г. Получено 11 февраля 2013 г.
  9. ^ "macOS версии 10.13 High Sierra на компьютерах Mac на базе Intel". The Open Group. Архивировано из оригинала 28 сентября 2017 г. Получено 19 ноября 2017 г.
  10. ^ Уолш, Джефф (22 марта 1999 г.). «Apple переходит на открытый исходный код ключевых компонентов ОС». InfoWorld . Том 21, № 12. IDG InfoWorld. стр. 40. Получено 17 февраля 2020 г.
  11. ^ Кани, Леандер. «Apple Opens OS Code». Wired . Condé Nast. Архивировано из оригинала 17 февраля 2020 г. Получено 17 февраля 2020 г.
  12. ^ "Каталог загрузки Apple ISO". Архивировано из оригинала 7 октября 2016 г.
  13. Джим Маги. WWDC 2000, сессия 106 — Mac OS X: ядро. 14 минут. Архивировано из оригинала 11 декабря 2021 г.
  14. ^ "Обзор технологий Mac: уровень ядра и драйверов устройств". Apple Developer Connection . Архивировано из оригинала 9 марта 2014 г. Получено 11 февраля 2013 г.
  15. ^ Сингх, Амит (7 января 2004 г.). "XNU: The Kernel". Архивировано из оригинала 2 июня 2020 г. Получено 11 февраля 2013 г.
  16. ^ Рох, Бенджамин. «Монолитное ядро ​​против микроядра». CiteSeerX 10.1.1.89.9877 . 
  17. ^ "Дополнительные возможности". Портирование приложений UNIX/Linux на OS X . Apple Inc. Архивировано из оригинала 14 ноября 2017 г. Получено 13 ноября 2017 г.
  18. ^ "Darwin 8.0.1 Release Notes". 29 апреля 2005 г. Архивировано из оригинала 28 октября 2023 г. Получено 16 августа 2023 г.
  19. ^ "XNU board config for BCM2837". GitHub . 16 декабря 2021 г. Архивировано из оригинала 5 декабря 2021 г. Получено 5 декабря 2021 г.
  20. ^ "Raspberry Pi 3 Model B". Архивировано из оригинала 5 декабря 2021 г. Получено 5 декабря 2021 г. Четырехъядерный 1,2 ГГц Broadcom BCM2837
  21. ^ "Voodoo XNU Kernel Source". Архивировано из оригинала 30 сентября 2015 г. Получено 25 апреля 2014 г.Требуется клиент Apache SVN.
  22. ^ "XNU на ARMv7". GitHub . 25 января 2022 г.
  23. ^ "Мнение FSF о лицензии Apple Public Source License (APSL) 2.0". Архивировано из оригинала 4 мая 2020 г. Получено 22 июля 2016 г.
  24. ^ "Проблемы со старыми версиями Apple Public Source License (APSL)". Архивировано из оригинала 19 апреля 2020 г. Получено 22 июля 2016 г.
  25. ^ "Open Source Releases". Apple Developer Connection . Получено 11 февраля 2013 г.
  26. ^ "Техническая записка TN2029: Mac OS X v10.1". Apple Developer Connection . Архивировано из оригинала 14 ноября 2001 г.
  27. Siracusa, John (5 сентября 2002 г.). "Mac OS X 10.2 Jaguar". Ars Technica . Получено 31 мая 2008 г.
  28. Siracusa, John (9 ноября 2003 г.). "Mac OS X 10.3 Panther". Ars Technica . Получено 31 мая 2008 г.
  29. Siracusa, John (28 апреля 2005 г.). "Mac OS X 10.4 Tiger". Ars Technica . Получено 30 мая 2008 г.
  30. ^ Прабхакар, Эрни (9 ноября 2001 г.). "Версия Darwin - Новая схема в обновлении программного обеспечения 1". darwin-development (список рассылки). Архивировано из оригинала 14 января 2009 г. Получено 2 июня 2008 г.
  31. Сиракуза, Джон (28 октября 2007 г.). «Mac OS X 10.5 Leopard: обзор Ars Technica». Ars Technica . Получено 30 мая 2008 г.
  32. Siracusa, John (31 августа 2009 г.). «Mac OS X 10.6 Snow Leopard: обзор Ars Technica». Ars Technica . Получено 29 ноября 2009 г. .
  33. ^ Как обнаружено на взломанном iPhone 4S
  34. ^ «Системные расширения и DriverKit — WWDC19 — Видео».
  35. ^ "SystemExtensions". Документация для разработчиков Apple .
  36. ^ "DriverKit". Документация разработчика Apple .
  37. ^ Системные расширения и DriverKit. Документация для разработчиков Apple .
  38. ^ "OpenDarwin". Проект OpenDarwin. Архивировано из оригинала 6 января 2006 года.
  39. Шофилд, Джек (26 июля 2006 г.). «OpenDarwin Shutting Down». The Guardian . Получено 18 марта 2023 г.
  40. OpenDarwin Core Team and Administrators (25 июля 2006 г.). "OpenDarwin Shutting Down". OpenDarwin Project. Архивировано из оригинала 4 августа 2006 г.
  41. ^ "OpenDarwin 7.2.1 Released". 5 августа 2004 г. Архивировано из оригинала 5 августа 2004 г. Получено 7 октября 2019 г.
  42. ^ "PureDarwin". Архивировано из оригинала 1 апреля 2024 г. Получено 1 апреля 2024 г.
  43. PureDarwin Xmas Архивировано 3 декабря 2019 г. в Wayback Machine (2015)
  44. ^ "PureDarwin 17.4 Beta". GitHub . PureDarwin. 30 ноября 2019 г. Архивировано из оригинала 13 декабря 2019 г. Получено 11 января 2020 г.
  45. ^ "Security Enhanced Darwin". SE Darwin. 22 января 2007 г. Архивировано из оригинала 5 октября 2011 г.
  46. ^ "Что нового в Mac OS X: Mac OS X v10.5". Справочная библиотека Mac OS X. Apple Inc. 13 ноября 2009 г. Архивировано из оригинала 8 декабря 2009 г.
  47. ^ "L4/Darwin (aka Darbat)". Ertos.nicta.com.au. 9 мая 2007 г. Архивировано из оригинала 19 декабря 2013 г.
  48. ^ "Darling: macOS translation layer for Linux". www.darlinghq.org . Архивировано из оригинала 21 апреля 2020 г. . Получено 11 января 2020 г. .
  49. ^ yuriwho (5 мая 2002 г.). "Домашняя страница WirelessDriver". Wirelessdriver.sourceforge.net. Архивировано из оригинала 28 июля 2020 г. Получено 12 июля 2010 г.
  50. ^ "iwi2200 Darwin". SourceForge . 27 марта 2009 г. Архивировано из оригинала 18 августа 2009 г. Получено 13 июня 2010 г.
  51. ^ "Перенос драйвера(ов) Tulip BSD в Darwin OS | Бесплатная загрузка программного обеспечения Port BSD Tulip драйвера(ов) Tulip в Darwin OS на сайте". SourceForge.net. Архивировано из оригинала 16 июля 2010 г. Получено 12 июля 2010 г.
  52. ^ "Сетевой драйвер RealTek для Mac OS X/Darwin". SourceForge . 15 марта 2006 г. Архивировано из оригинала 24 июля 2010 г. Получено 3 июня 2010 г. Проект неактивен с 15 марта 2006 года.
  53. ^ fansui; et al. (1 августа 2007 г.). "RTL8150LMEthernet". SourceForge. Архивировано из оригинала 7 сентября 2008 г. Получено 13 июня 2010 г.
  54. ^ "Драйверы модема ZyXEL для OS X/Darwin | Загрузите бесплатное программное обеспечение драйверов модема ZyXEL для OS X/Darwin на сайте". SourceForge.net. 14 мая 2002 г. Архивировано из оригинала 7 января 2009 г. Получено 12 июля 2010 г.
  55. ^ "Mac OS X PC Card ATA Driver". Pccardata.sourceforge.net. 20 декабря 2001 г. Архивировано из оригинала 5 августа 2020 г. Получено 12 июля 2010 г.
  56. ^ "Mac OS X Ext2 Filesystem | Загрузите программное обеспечение Mac OS X Ext2 Filesystem бесплатно на сайте". SourceForge.net. 14 октября 2002 г. Архивировано из оригинала 22 июля 2010 г. Получено 12 июля 2010 г.
  57. ^ "файловая система ext2 в пространстве пользователя". SourceForge . 14 июля 2008 г. Архивировано из оригинала 26 июля 2010 г. Получено 13 июня 2010 г.
  58. ^ "DarwinBSD". darwinbsd.tk . Архивировано из оригинала 23 марта 2023 г. Получено 7 апреля 2023 г.

Внешние ссылки