Дарвин (операционная система)
Разработчик | Apple Инк. |
---|---|
Написано в | C , C++ , Objective-C , язык ассемблера |
Семейство ОС | Unix-подобный , [1] [2] FreeBSD , [3] БСД [4] |
Рабочее состояние | Текущий |
Исходная модель | в настоящее время с открытым исходным кодом и проприетарными компонентами [ нужна ссылка ] , ранее с открытым исходным кодом |
Первоначальный выпуск | 15 ноября 2000 г |
Последний выпуск | 23.4.0/5 марта 2024 г |
Репозиторий | github |
Платформы | Текущие: x86-64 , 64-битный ARM , 32-битный ARM (поддержка 32-битного ARM имеет закрытый исходный код). Исторические: PowerPC (32- и 64-разрядные версии), IA-32. |
ядра Тип | Гибрид ( XNU ) |
Под влиянием | NeXTSTEP , FreeBSD , BSD |
По умолчанию пользовательский интерфейс | Интерфейс командной строки ( оболочка Unix ) |
Лицензия | В основном лицензия Apple Public Source License (APSL) с драйверами с закрытым исходным кодом. [5] |
Официальный сайт | открытый исходный код |
Часть серии о |
macOS |
---|
Darwin — это базовая Unix-подобная операционная система для macOS (ранее OS X и Mac OS X), iOS , watchOS , tvOS , iPadOS , audioOS , VisionOS и BridgeOS . Ранее она существовала как независимая операционная система с открытым исходным кодом , впервые выпущенная Apple Inc. в 2000 году. Она состоит из кода, полученного из NeXTSTEP , FreeBSD , [3] другие BSD , операционные системы [6] Mach и код других проектов свободного программного обеспечения , а также код, разработанный Apple.
Darwin в основном совместим с POSIX , но сам по себе никогда не был сертифицирован как совместимый с какой-либо версией POSIX. Начиная с Leopard , macOS сертифицирован как совместимый с единой спецификацией UNIX версии 3 (SUSv3). [7] [8] [9]
История
[ редактировать ]Наследие Дарвина началось с производных Unix, дополненных аспектами NeXT компании операционной системы NeXTSTEP (позже, начиная с версии 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] Незначительные обновления выпускались в виде пакетов, которые устанавливались отдельно. Дарвин теперь доступен только в виде исходного кода. По состоянию на январь 2023 года Apple больше не упоминает Дарвина по имени на своем веб-сайте с открытым исходным кодом и публикует только неполную коллекцию проектов с открытым исходным кодом, касающихся macOS и iOS .
Дизайн
[ редактировать ]Ядро
[ редактировать ]Ядро 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-битного , варианта Intel x86-64 процессоров на базе Intel используемого в компьютерах Mac , и 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. 3Б. [19] [20] Существует порт ядра XNU с открытым исходным кодом , который поддерживает Darwin на платформах Intel и AMD x86, официально не поддерживаемый Apple, хотя, похоже, он не обновлялся с 2009 года. [21] Порт ядра XNU с открытым исходным кодом также существует для платформ ARM, хотя он не обновлялся с 2016 года. [22] Более старые версии поддерживали некоторые или все 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 General Public License . [23] Предыдущие версии были выпущены под более ранней версией лицензии APSL, которая не соответствовала определению свободного программного обеспечения FSF, хотя и соответствовала требованиям определения открытого исходного кода . [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]
Дарвин 9; Представлена ОС iPhone
[ редактировать ]Версия | Дата | Соответствующие выпуски | Примечания |
---|
Дарвин 10–11; ОС iPhone переименована в iOS
[ редактировать ]Версия | Дата | Соответствующие выпуски | Примечания |
---|
Дарвин 12–15; Mac OS X переименована в OS X
[ редактировать ]Версия | Дата | Соответствующие выпуски | Примечания |
---|
Дарвин 16–19; OS X переименована в macOS
[ редактировать ]Версия | Дата | Соответствующие выпуски | Примечания |
---|
Дарвин 20 и далее
[ редактировать ]Версия | Дата | Соответствующие выпуски | Примечания |
---|
Примечание: в таблицах выше указаны даты выпуска соответствующих релизов ОС. Даты сборки версий Darwin недоступны публично; команды ниже дают только дату сборки ядра XNU.
Команда uname -r в Терминале покажет номер версии Darwin («20.3.0»), а команда uname -v покажет строку версии сборки XNU , которая включает номер версии Darwin.Команда sw_vers покажет соответствующее имя продукта («macOS»), номер версии продукта («11.2.3») и строку BuildVersion («20D91»).
Производные проекты
[ редактировать ]Из-за того, что Darwin является свободным программным обеспечением, существовали проекты, направленные на изменение или улучшение операционной системы.
OpenDarwin
[ редактировать ]OpenDarwin была операционной системой под руководством сообщества, основанной на системе Дарвина. Она была основана в апреле 2002 года Apple Inc. и Консорциумом Internet Systems . Его цель заключалась в расширении сотрудничества между разработчиками 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]
Другие производные проекты
[ редактировать ]- XQuartz — это компонент системы X Window , работающий на macOS (Darwin). XDarwin , до появления Apple X11.app.
- GNUstep — это бесплатная программная реализация фреймворка Cocoa (ранее OpenStep ) -C Objective , набора инструментов виджетов и инструментов разработки приложений для Unix-подобных операционных систем .
- Window Maker — оконный менеджер, предназначенный для эмуляции графического интерфейса NeXT в рамках более широкого проекта GNUstep.
- WebKit — это браузерный движок, который в основном используется в от Apple веб-браузере Safari , а также во всех веб-браузерах на iOS и iPadOS .
- MacPorts (ранее DarwinPorts), Fink и Homebrew — это проекты по портированию программ UNIX в операционную систему Darwin и обеспечению управления пакетами . Кроме того, некоторые стандартные менеджеры пакетов UNIX, такие как RPM , pkgsrc и Portage , имеют порты Darwin. Некоторые из них работают в собственном пространстве имен, чтобы не мешать базовой системе.
- GNU-Darwin — проект, портирующий пакеты свободного программного обеспечения на Darwin. Они упаковывают образы ОС аналогично дистрибутиву Linux .
- Проект Darwine представлял собой порт Wine , который позволял запускать программное обеспечение Microsoft Windows на Darwin.
- SEDarwin был портом TrustedBSD системы обязательного контроля доступа и частей платформы SELinux для Darwin. [45] Он был включен в Mac OS X 10.5. [46]
- Проект Darbat представлял собой экспериментальный порт Darwin на семейство микроядер L4 . Он стремится быть двоично совместимым с существующими двоичными файлами Дарвина. [47]
- Проект Darling — это уровень совместимости для запуска двоичных файлов macOS в системах Linux. Он использует некоторый исходный код Дарвина. [48]
- Существуют различные проекты, ориентированные на поддержку драйверов: например, драйверы беспроводной сети, [49] [50] проводной сетевой карты драйверы [51] [52] [53] драйверы модема, [54] картридеры, [55] и файловые системы ext2 и ext3 . [56] [57]
- Проект DarwinBSD — это проект Darwin, использующий pkgsrc для пакетов. Это проект с открытым исходным кодом. [58]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Обзор архитектуры ядра» . Руководство по программированию ядра . Архивировано из оригинала 9 мая 2019 года . Проверено 27 мая 2019 г.
- ^ «darwin-xnu/README.md в мастере» . Гитхаб . Архивировано из оригинала 31 марта 2019 года . Проверено 21 ноября 2019 г.
- ^ Jump up to: а б «Обзор Apple BSD» . Яблоко. 2002. Архивировано из оригинала 7 ноября 2018 года . Проверено 1 января 2002 г.
- ^ «Apple — общедоступный источник — часто задаваемые вопросы о Дарвине» . Архивировано из оригинала 19 ноября 2004 года . Проверено 9 августа 2021 г.
- ^ «Для PureDarwin требуются двоичные драйверы» . Архивировано из оригинала 18 ноября 2009 года . Проверено 20 июля 2009 г.
- ^ «1. Обзор системы» . Концепции NeXTstep . Следующий . Архивировано из оригинала 21 ноября 2021 года . Проверено 26 марта 2021 г.
- ^ «Mac OS X Leopard — Технология — UNIX» . Обзор технологии Leopard . Apple Inc. Архивировано из оригинала 27 декабря 2008 г.
Leopard теперь является зарегистрированным продуктом под открытым брендом UNIX 03, соответствующим спецификациям SUSv3 и POSIX 1003.1 для C API, утилит Shell и потоков.
- ^ Открытая группа (18 мая 2007 г.). «Сертификация компьютеров Macintosh Mac OS X версии 10.5 Leopard на базе процессоров Intel» . Архивировано из оригинала 25 октября 2019 года . Проверено 11 февраля 2013 г.
- ^ «macOS версии 10.13 High Sierra на компьютерах Mac на базе процессоров Intel» . Открытая группа. Архивировано из оригинала 28 сентября 2017 года . Проверено 19 ноября 2017 г.
- ^ Уолш, Джефф (22 марта 1999 г.). «Apple открывает исходный код ключевых компонентов ОС» . Инфомир . Том. 21, нет. 12. IDG InfoWorld. п. 40 . Проверено 17 февраля 2020 г.
- ^ Кейни, Леандер. «Apple открывает код ОС» . Проводной . Конде Наст. Архивировано из оригинала 17 февраля 2020 года . Проверено 17 февраля 2020 г.
- ^ «Каталог загрузки Apple ISO» . Архивировано из оригинала 7 октября 2016 года.
- ^ Джим Мэги. WWDC 2000, сеанс 106 — Mac OS X: ядро . Через 14 минут. Архивировано из оригинала 11 декабря 2021 года.
- ^ «Обзор технологий Mac: уровень ядра и драйверов устройств» . Связь с разработчиками Apple . Архивировано из оригинала 9 марта 2014 года . Проверено 11 февраля 2013 г.
- ^ Сингх, Амит (7 января 2004 г.). «XNU: Ядро» . Архивировано из оригинала 2 июня 2020 года . Проверено 11 февраля 2013 г.
- ^ Рох, Бенджамин. «Монолитное ядро против микроядра». CiteSeerX 10.1.1.89.9877 .
- ^ «Дополнительные возможности» . Портирование приложений UNIX/Linux на OS X. Apple Inc. Архивировано из оригинала 14 ноября 2017 года . Проверено 13 ноября 2017 г.
- ^ «Примечания к выпуску Darwin 8.0.1» . 29 апреля 2005 г. Архивировано из оригинала 28 октября 2023 г. Проверено 16 августа 2023 г.
- ^ «Конфигурация платы XNU для BCM2837» . Гитхаб . 16 декабря 2021 года. Архивировано из оригинала 5 декабря 2021 года . Проверено 5 декабря 2021 г.
- ^ «Малина Пи 3 Модель Б» . Архивировано из оригинала 5 декабря 2021 года . Проверено 5 декабря 2021 г.
Четырехъядерный процессор Broadcom 1,2 ГГц BCM2837
- ^ «Исходный код ядра Voodoo XNU» . Архивировано из оригинала 30 сентября 2015 года . Проверено 25 апреля 2014 г. Требуется клиент Apache SVN.
- ^ «XNU на ARMv7» . Гитхаб . 25 января 2022 г.
- ^ «Мнение FSF о лицензии Apple Public Source License (APSL) 2.0» . Архивировано из оригинала 4 мая 2020 года . Проверено 22 июля 2016 г.
- ^ «Проблемы со старыми версиями лицензии Apple Public Source License (APSL)» . Архивировано из оригинала 19 апреля 2020 года . Проверено 22 июля 2016 г.
- ^ «Релизы с открытым исходным кодом» . Связь с разработчиками Apple . Проверено 11 февраля 2013 г.
- ^ «Техническое примечание TN2029: Mac OS X v10.1» . Связь с разработчиками Apple . Архивировано из оригинала 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 г.
- ^ Сиракузы, Джон (28 октября 2007 г.). «Mac OS X 10.5 Leopard: обзор Ars Technica» . Арс Техника . Проверено 30 мая 2008 г.
- ^ Сиракузы, Джон (31 августа 2009 г.). «Mac OS X 10.6 Snow Leopard: обзор Ars Technica» . Арс Техника . Проверено 29 ноября 2009 г.
- ^ Как обнаружено на взломанном iPhone 4S.
- ^ «Системные расширения и DriverKit — WWDC19 — Видео» .
- ^ «Системные расширения» . Документация разработчика Apple .
- ^ «ДрайверКит» . Документация разработчика Apple .
- ^ Системные расширения и DriverKit . Документация разработчика Apple .
- ^ «Открытый Дарвин» . Проект ОпенДарвин. Архивировано из оригинала 6 января 2006 года.
- ^ Шофилд, Джек (26 июля 2006 г.). «OpenDarwin закрывается» . Хранитель . Проверено 18 марта 2023 г.
- ^ Основная группа OpenDarwin и администраторы (25 июля 2006 г.). «OpenDarwin закрывается» . Проект ОпенДарвин. Архивировано из оригинала 4 августа 2006 года.
- ^ «Выпущен OpenDarwin 7.2.1» . 5 августа 2004 года. Архивировано из оригинала 5 августа 2004 года . Проверено 7 октября 2019 г.
- ^ «Чистый Дарвин» . Архивировано из оригинала 1 апреля 2024 года . Проверено 1 апреля 2024 г.
- ^ PureDarwin Xmas. Архивировано 3 декабря 2019 г. в Wayback Machine (2015).
- ^ «PureDarwin 17.4 Бета» . Гитхаб . Чистый Дарвин. 30 ноября 2019 года. Архивировано из оригинала 13 декабря 2019 года . Проверено 11 января 2020 г.
- ^ «Повышенная безопасность Дарвина» . СЭДарвин. 22 января 2007 г. Архивировано из оригинала 5 октября 2011 г.
- ^ «Что нового в Mac OS X: Mac OS X v10.5» . Справочная библиотека Mac OS X. Apple Inc., 13 ноября 2009 г. Архивировано из оригинала 8 декабря 2009 г.
- ^ «L4/Дарвин (он же Дарбат)» . Ertos.nicta.com.au. 9 мая 2007 г. Архивировано из оригинала 19 декабря 2013 г.
- ^ «Дорогая: уровень перевода macOS для Linux» . www.darlinghq.org . Архивировано из оригинала 21 апреля 2020 года . Проверено 11 января 2020 г.
- ^ yuriwho (5 мая 2002 г.). «Главная страница WirelessDriver» . Wirelessdriver.sourceforge.net. Архивировано из оригинала 28 июля 2020 года . Проверено 12 июля 2010 г.
- ^ «iwi2200 Дарвин» . СоурсФордж . 27 марта 2009 года. Архивировано из оригинала 18 августа 2009 года . Проверено 13 июня 2010 г.
- ^ «Перенос драйверов BSD Tulip для ОС Darwin | Загрузите драйвер(ы) Tulip для порта BSD в программное обеспечение Darwin OS бесплатно на сайте» . SourceForge.net. Архивировано из оригинала 16 июля 2010 года . Проверено 12 июля 2010 г.
- ^ «Сетевой драйвер RealTek для Mac OS X/Darwin» . СоурсФордж . 15 марта 2006. Архивировано из оригинала 24 июля 2010 года . Проверено 3 июня 2010 г. Проект неактивен с 15 марта 2006 года.
- ^ фансуй; и др. (1 августа 2007 г.). «RTL8150LMEthernet» . ИсточникФордж. Архивировано из оригинала 7 сентября 2008 года . Проверено 13 июня 2010 г.
- ^ «Драйверы модема ZyXEL для OS X/Darwin | Загрузите бесплатно драйверы модема ZyXEL для OS X/Darwin» . SourceForge.net. 14 мая 2002 года. Архивировано из оригинала 7 января 2009 года . Проверено 12 июля 2010 г.
- ^ «Драйвер ATA для Mac OS X PC Card» . Pccarddata.sourceforge.net. 20 декабря 2001 г. Архивировано из оригинала 5 августа 2020 г. Проверено 12 июля 2010 г.
- ^ «Файловая система Mac OS X Ext2 | Загрузите программное обеспечение файловой системы Mac OS X Ext2 бесплатно на сайте» . SourceForge.net. 14 октября 2002 года. Архивировано из оригинала 22 июля 2010 года . Проверено 12 июля 2010 г.
- ^ «Файловая система ext2 в пространстве пользователя» . СоурсФордж . 14 июля 2008 года. Архивировано из оригинала 26 июля 2010 года . Проверено 13 июня 2010 г.
- ^ «ДарвинБСД» . darwinbsd.tk . Архивировано из оригинала 23 марта 2023 года . Проверено 7 апреля 2023 г.
Внешние ссылки
[ редактировать ]- Релизы Darwin на Apple Developer Connection
- исходный код отдельных пакетов
- Хексли, талисман Дарвина
- PureDarwin.org
- Музей Apple «Номера сборок MacOS X» в Wayback Machine (архивировано 25 декабря 2011 г.)
- программное обеспечение 2000 года
- Талисманы, представленные в 2000 году.
- Талисманы животных
- Операционные системы Apple Inc.
- Распространение программного обеспечения Беркли
- Вымышленные монотремы
- Свободное программное обеспечение, операционные системы
- Мах (ядро)
- MacOS
- Истории версий программного обеспечения
- Варианты Unix