Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Darwin - это Unix-подобная операционная система с открытым исходным кодом, впервые выпущенная Apple Inc. в 2000 году. Она состоит из кода, разработанного Apple, а также кода, полученного из NeXTSTEP , BSD , Mach и других проектов бесплатного программного обеспечения .

Дарвин формирует основной набор компонентов, на которых основаны macOS (ранее OS X и Mac OS X), iOS , watchOS , tvOS и iPadOS . Он в основном совместим с POSIX , но сам по себе никогда не был сертифицирован как совместимый с какой-либо версией POSIX. Начиная с Leopard , macOS сертифицирована как совместимая с единой спецификацией UNIX версии 3 (SUSv3). [4] [5] [6]

История [ править ]

Наследие Дарвина началось с NeXT «s NeXTSTEP операционной системы (позже, начиная с версии 4.0, известной как OPENSTEP), первый выпущенный в 1989 году после Apple , купил NeXT в 1997 году, она объявила , что она будет строить свою следующую операционную систему на 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. [7] В то время исполняющий обязанности генерального директора Стив Джобс сослался на британского натуралиста Чарльза Дарвина , заявив, что «потому что речь идет об эволюции». [8] В 2000 году основные компоненты операционной системы Mac OS X были выпущены как программное обеспечение с открытым исходным кодом под лицензией Apple Public Source License (APSL) как Darwin; компоненты более высокого уровня, такие как фреймворки Cocoa и Carbon , оставались закрытыми .

До Darwin 8.0.1 Apple выпускала двоичный установщик (в виде ISO-образа ) после каждого основного выпуска Mac OS X, который позволял устанавливать Darwin в системах PowerPC и Intel x86 в качестве автономной операционной системы. [9] Незначительные обновления были выпущены в виде пакетов, которые устанавливались отдельно. Дарвин теперь доступен только в виде исходного кода.

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

Дизайн [ править ]

Схема архитектуры Mac OS X

Ядро [ править ]

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

Аппаратная и программная поддержка [ править ]

В настоящее время Darwin включает поддержку 64-разрядного варианта x86-64 процессоров Intel x86 , используемых в компьютерах Mac на базе Intel, и 64-разрядных процессоров ARM , используемых в iPhone 5S и более поздних версиях, iPod Touch 6 - го поколения, iPad 7-го поколения и позже, семейство iPad Air , iPad Mini 2 и более поздние версии, семейство iPad Pro , четвертое поколение и более поздние модели Apple TV , семейство HomePod и компьютеры Mac с Apple Silicon, такие как Apple M1 2020 года.Mac. Существует порт с открытым исходным кодом для ядра XNU, который поддерживает Darwin на платформах Intel и AMD x86, официально не поддерживаемых Apple, хотя, похоже, он не обновлялся с 2009 года. [15] Порт с открытым исходным кодом ядра XNU также существует для платформ ARM. [16] Старые версии поддерживали некоторые или все 32-битные PowerPC , 64-битные PowerPC, 32-битные x86 и 32-битные ARM.

Он поддерживает POSIX API посредством своей родословной BSD (в основном пользовательская среда FreeBSD ), и большое количество программ, написанных для различных других UNIX-подобных систем, можно скомпилировать на Darwin без изменений исходного кода .

Darwin не включает многие из определяющих элементов macOS, таких как API-интерфейсы Carbon и Cocoa или пользовательский интерфейс Quartz Compositor и Aqua , и поэтому не может запускать приложения Mac. Однако он поддерживает ряд менее известных функций macOS, таких как mDNSResponder, который является многоадресным DNS- ответчиком и основным компонентом сетевой технологии Bonjour , а также launchd , расширенную структуру управления услугами .

Лицензия [ править ]

В июле 2003 года Apple выпустила Darwin в соответствии с версией 2.0 лицензии Apple Public Source License (APSL), которую Фонд свободного программного обеспечения (FSF) классифицирует как лицензию свободного программного обеспечения, несовместимую с Стандартной общественной лицензией GNU . [17] Предыдущие версии были выпущены под более ранней версией лицензии APSL, которая не соответствовала определению свободного программного обеспечения FSF, хотя и соответствовала требованиям Определения открытого исходного кода . [18]

История выпусков [ править ]

Ниже приводится таблица основных выпусков Darwin с датами их выпуска и соответствующими выпусками macOS . [19] Обратите внимание, что соответствующий выпуск macOS мог быть выпущен в другую дату; см. соответствующие даты на страницах macOS.

Переход номеров версий от Darwin 1.4.1 к 5.1 с выпуском Mac OS X v10.1.1 был разработан для привязки Дарвина к версии Mac OS X и системе нумерации сборок, которая, в свою очередь, унаследована от NeXTSTEP. В системе нумерации сборок macOS каждая версия имеет уникальный начальный номер сборки, который определяет, частью какой целой версии macOS она является. Mac OS X v10.0 имела номера сборки, начинающиеся с 4, 10.1 - номера сборки, начинающиеся с 5, и так далее (более ранние номера сборки представляли версии для разработчиков). [31]

Команда uname -r в Терминале покажет номер версии Darwin, а команда uname -v покажет строку версии сборки XNU , которая включает номер версии Darwin.

Производные проекты [ править ]

Из-за природы Дарвина бесплатного программного обеспечения, были проекты, направленные на изменение или улучшение операционной системы.

OpenDarwin [ править ]

GNOME работает на OpenDarwin.

OpenDarwin - это операционная система под руководством сообщества, основанная на системе Дарвина. Он был основан в апреле 2002 года Apple Inc. и Internet Systems Consortium . Его целью было расширение сотрудничества между разработчиками Apple и сообществом свободного программного обеспечения . Apple выиграла от этого проекта, потому что улучшения OpenDarwin будут включены в выпуски Darwin; Сообщество свободного / открытого исходного кода выиграло от того, что ему был предоставлен полный контроль над его собственной операционной системой, которую затем можно было использовать в таких дистрибутивах, как GNU-Darwin. [32]

25 июля 2006 года команда OpenDarwin объявила, что проект закрывается, так как они чувствовали, что OpenDarwin «превратился в простой хостинг для проектов, связанных с Mac OS X», и что попытки создать автономную операционную систему Darwin потерпели неудачу. Они также заявляют: «Этому способствовали доступность источников, взаимодействие с представителями Apple, сложность создания и отслеживания источников, а также отсутствие интереса со стороны сообщества». [33] Последним стабильным выпуском была версия 7.2.1, выпущенная 16 июля 2004 г. [34]

PureDarwin [ править ]

PureDarwin - это проект по созданию загрузочного образа операционной системы из выпущенного Apple исходного кода Дарвина. [35] После прекращения использования OpenDarwin и выпуска загрузочных образов, начиная с Darwin 8.x, становится все труднее создавать полноценную операционную систему, поскольку многие компоненты становятся закрытыми. Проекту удалось создать рождественский выпуск на основе Darwin 9 с графическим интерфейсом пользователя X11 [36] и только бета- версией командной строки 17.4 на основе Darwin 17. [37]

Другие производные проекты [ править ]

  • MacPorts (ранее DarwinPorts), Fink и Homebrew - хорошо известные проекты по переносу программ UNIX в операционную систему Darwin и обеспечению управления пакетами . Кроме того, несколько стандартных менеджеров пакетов UNIX, такие как RPM , pkgsrc и Portage, имеют порты Darwin. Некоторые из них работают в собственном пространстве имен, чтобы не мешать базовой системе.
  • GNU-Darwin - это проект, который переносит пакеты бесплатного программного обеспечения на Дарвин. Они упаковывают образы ОС аналогично дистрибутиву Linux .
  • Darwine проект был порт из вина , что позволяет запускать Microsoft Windows программное обеспечение на Дарвине.
  • SEDarwin - это перенос платформы обязательного контроля доступа TrustedBSD и частей платформы SELinux для Darwin. [38] Он был включен в Mac OS X 10.5. [39]
  • Проект Darbat - это экспериментальный порт Дарвина для семейства микроядер L4 . Он нацелен на двоичную совместимость с существующими двоичными файлами Дарвина. [40]
  • Проект Darling - это уровень совместимости для запуска двоичных файлов macOS в системах Linux. Он использует некоторый исходный код Дарвина. [41]
  • Существуют различные проекты, которые сосредоточены на поддержке драйверов: например, драйверы беспроводной связи, [42] [43] драйверы проводных сетевых адаптеров [44] [45] [46] драйверы модема, [47] устройства чтения карт, [48] и ext2 и ext3 файловые системы. [49] [50]

См. Также [ править ]

  • A / UX
  • mkLinux
  • OSF / 1

Ссылки [ править ]

  1. ^ «Обзор архитектуры ядра» . Руководство по программированию ядра .
  2. ^ "darwin-xnu / README.md у мастера" . Архивировано 31 марта 2019 года . Проверено 21 ноября 2019 года .
  3. ^ «Двоичные драйверы, необходимые для PureDarwin» . Архивировано из оригинального 18 ноября 2009 года . Проверено 20 июля 2009 года .
  4. ^ «Mac OS X Leopard - Технология - UNIX» . Обзор технологий Leopard . Корпорация Apple Архивировано из оригинального 27 декабря 2008 Leopard теперь Открытым Brand UNIX 03 зарегистрированный продукт, в соответствии с SUSv3 и POSIX 1003.1 спецификации для C API, Shell Utilities, и нитками.
  5. Открытая группа (18 мая 2007 г.). «Mac OS X версии 10.5 Leopard для сертификации компьютеров Macintosh на базе Intel» . Проверено 11 февраля 2013 года .
  6. ^ «macOS версии 10.13 High Sierra на компьютерах Mac на базе Intel» . Открытая группа . Проверено 19 ноября 2017 года .
  7. Уолш, Джефф (22 марта 1999 г.). «Apple открывает исходный код для ключевых компонентов ОС» . InfoWorld . Vol. 21 нет. 12. IDG InfoWorld. п. 40 . Проверено 17 февраля 2020 года .
  8. ^ Канни, Леандер. «Apple открывает код ОС» . Проводной . Condé Nast . Проверено 17 февраля 2020 года .
  9. ^ web .archive .org / web / 20161007041552 / https: // openource .apple .com / static / iso /
  10. Джим Маги. WWDC 2000 Сессия 106 - Mac OS X: ядро . 14 минут в.
  11. ^ «Обзор технологий Mac: уровень ядра и драйверов устройств» . Подключение разработчиков Apple . Проверено 11 февраля 2013 года .
  12. Сингх, Амит (7 января 2004 г.). «XNU: Ядро» . Проверено 11 февраля 2013 года .
  13. ^ Рох, Бенджамин. «Монолитное ядро ​​против микроядра». CiteSeerX 10.1.1.89.9877 .  Цитировать журнал требует |journal=( помощь )
  14. ^ «Дополнительные возможности» . Портирование UNIX / Linux приложений в OS X . Apple Inc.
  15. ^ "Источник ядра Voodoo XNU" . Требуется клиент Apache SVN.
  16. ^ «XNU на ARMv7» .
  17. ^ «Мнение FSF о лицензии Apple Public Source License (APSL) 2.0» .
  18. ^ «Проблемы со старыми версиями Apple Public Source License (APSL)» .
  19. ^ «Релизы с открытым исходным кодом» . Подключение разработчиков Apple . Проверено 11 февраля 2013 года .
  20. ^ «Техническое примечание TN2029: Mac OS X v10.1» . Подключение разработчиков Apple . Архивировано из оригинального 14 ноября 2001 года.
  21. Сиракуза, Джон (5 сентября 2002 г.). «Mac OS X 10.2 Jaguar» . Ars Technica . Проверено 31 мая 2008 года .
  22. Сиракуза, Джон (9 ноября 2003 г.). «Mac OS X 10.3 Panther» . Ars Technica . Проверено 31 мая 2008 года .
  23. Сиракуза, Джон (28 апреля 2005 г.). «Mac OS X 10.4 Tiger» . Ars Technica . Проверено 30 мая 2008 года .
  24. Сиракуза, Джон (28 октября 2007 г.). «Mac OS X 10.5 Leopard: обзор Ars Technica» . Ars Technica . Проверено 30 мая 2008 года .
  25. Сиракуза, Джон (31 августа 2009 г.). «Mac OS X 10.6 Snow Leopard: обзор Ars Technica» . Ars Technica . Проверено 29 ноября 2009 года .
  26. ^ Как обнаружено на взломанном iPhone 4S
  27. ^ https://developer.apple.com/videos/play/wwdc2019/702/
  28. ^ "SystemExtensions" . Документация для разработчиков Apple .
  29. ^ "DriverKit" . Документация для разработчиков Apple .
  30. ^ Системные расширения и DriverKit . Документация для разработчиков Apple .
  31. Прабхакар, Эрни (9 ноября 2001 г.). «Версия Дарвина - новая схема в обновлении программного обеспечения 1» . darwin-development (Список рассылки). Архивировано из оригинала на 14 января 2009 года . Проверено 2 июня 2008 года .
  32. ^ "OpenDarwin" . OpenDarwin Project. Архивировано из оригинала на 6 января 2006 года .
  33. ^ OpenDarwin Core Team и администраторы (25 июля 2006 г.). «Завершение работы OpenDarwin» . OpenDarwin Project. Архивировано из оригинала на 4 августа 2006 года.
  34. ^ "OpenDarwin 7.2.1 выпущен" . 5 августа 2004 года в архив с оригинала на 5 августа 2004 года . Проверено 7 октября 2019 года .
  35. ^ "PureDarwin" .
  36. ^ PureDarwin Рождество (2015)
  37. ^ "PureDarwin 17.4 Beta" . GitHub . PureDarwin. 30 ноября 2019 . Проверено 11 января 2020 года .
  38. ^ "Дарвин с усиленной безопасностью" . SEDarwin. 22 января, 2007. Архивировано из оригинала на 5 октября 2011 года.
  39. ^ «Что нового в Mac OS X: Mac OS X v10.5» . Mac OS X Reference Library . Корпорация Apple 13 ноября 2009 года Архивировано из оригинала 8 декабря 2009 года.
  40. ^ "L4 / Дарвин (он же Дарбат)" . Ertos.nicta.com.au. 9 мая 2007 года Архивировано из оригинального 19 декабря 2013 года .
  41. ^ «Дорогой: слой перевода macOS для Linux» . www.darlinghq.org . Проверено 11 января 2020 года .
  42. ^ yuriwho (5 мая 2002 г.). «Домашняя страница WirelessDriver» . Wirelessdriver.sourceforge.net . Проверено 12 июля 2010 года .
  43. ^ "iwi2200 Дарвин" . SourceForge . 27 марта 2009 . Проверено 13 июня 2010 года .
  44. ^ «Перенести драйвер тюльпана BSD в ОС Darwin | Загрузите драйвер тюльпана BSD бесплатно на программное обеспечение ОС Darwin» . Sourceforge.net . Проверено 12 июля 2010 года .
  45. ^ "Сетевой драйвер RealTek для Mac OS X / Darwin" . SourceForge . 15 марта 2006 . Проверено 3 июня 2010 года . Проект неактивен с 15 марта 2006 г.
  46. ^ фансуй; и другие. (1 августа 2007 г.). "RTL8150LMEthernet" . SourceForge . Проверено 13 июня 2010 года .
  47. ^ «Драйверы модема ZyXEL для OS X / Darwin | Загрузите драйверы модема ZyXEL для программного обеспечения OS X / Darwin бесплатно на» . Sourceforge.net. 14 мая 2002 . Проверено 12 июля 2010 года .
  48. ^ «Драйвер ATA карты Mac OS X PC Card» . Pccardata.sourceforge.net. 20 декабря 2001 . Проверено 12 июля 2010 года .
  49. ^ "Файловая система Mac OS X Ext2 | Загрузите программное обеспечение файловой системы Mac OS X Ext2 бесплатно на" . Sourceforge.net. 14 октября 2002 . Проверено 12 июля 2010 года .
  50. ^ "Файловая система ext2 в пространстве пользователя" . SourceForge . 14 июля 2008 . Проверено 13 июня 2010 года .

Внешние ссылки [ править ]

  • Дарвин представляет на Apple Developer Connection
  • исходный код отдельных пакетов
  • Хексли, талисман Дарвина
  • PureDarwin.org
  • Музей Apple «Номера сборки MacOS X» на Wayback Machine (архив 25 декабря 2011 г.)