Разработчик | Apple Inc. |
---|---|
Написано в | C , C++ , Objective-C , язык ассемблера |
Семейство ОС | Unix-подобные , [1] [2] FreeBSD , [3] BSD [4] |
Рабочее состояние | Текущий |
Исходная модель | в настоящее время с открытым исходным кодом и проприетарными компонентами [ требуется ссылка ] , ранее с открытым исходным кодом |
Первоначальный выпуск | 15 ноября 2000 г. ( 2000-11-15 ) |
Последний релиз | 24.0.0 / 16 сентября 2024 г. ( 2024-09-16 ) |
Репозиторий | github.com/apple-oss-distributions/distribution-macOS |
Платформы | Текущие: x86-64 , 64-бит ARM , 32-бит ARM (поддержка 32-бит ARM закрыта) Исторические: PowerPC (32-бит и 64-бит), IA-32 |
Тип ядра | Гибрид ( XNU ) |
Под влиянием | NeXTSTEP , FreeBSD , BSD |
Пользовательский интерфейс по умолчанию | Интерфейс командной строки ( оболочка Unix ) |
Лицензия | В основном Apple Public Source License (APSL) с драйверами с закрытым исходным кодом [5] |
Официальный сайт | opensource.apple.com |
Часть серии статей о |
macOS |
---|
Darwin — основная Unix-подобная операционная система macOS , iOS , watchOS , tvOS , iPadOS , audioOS , visionOS и bridgeOS . Ранее она существовала как независимая операционная система с открытым исходным кодом , впервые выпущенная Apple Inc. в 2000 году. Она состоит из кода, полученного из NeXTSTEP , FreeBSD , [ 3] других операционных систем BSD , [6] Mach и кода других проектов свободного программного обеспечения , а также кода, разработанного Apple. Официальным талисманом Darwin является утконос Гексли. [7]
Darwin в основном совместим с POSIX , но сам по себе никогда не был сертифицирован как совместимый с какой-либо версией POSIX. Начиная с Leopard , macOS был сертифицирован как совместимый с Single UNIX Specification версии 3 (SUSv3). [8] [9] [10]
Наследие 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. [11] В то время временный генеральный директор Стив Джобс сослался на британского натуралиста Чарльза Дарвина , заявив: «потому что речь идет об эволюции». [12] В 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 в качестве отдельной операционной системы. [13] Незначительные обновления выпускались в виде пакетов, которые устанавливались отдельно. Darwin теперь доступен только в виде исходного кода. По состоянию на январь 2023 года Apple больше не упоминает Darwin по имени на своем веб-сайте Open Source и публикует только неполную коллекцию проектов с открытым исходным кодом, относящихся к macOS и iOS.
Ядром Darwin является XNU , гибридное ядро , которое использует OSFMK 7.3 [14] (Open Software Foundation Mach Kernel ) из OSF , различные элементы FreeBSD (включая модель процесса, сетевой стек и виртуальную файловую систему ) [15] и API объектно-ориентированного драйвера устройства, называемый I/O Kit . [16] Гибридная конструкция ядра обеспечивает гибкость микроядра [ 17] [ проверка не пройдена – см. обсуждение ] и производительность монолитного ядра [18] .
Последняя загрузочная полная версия Darwin поддерживала 32- и 64-разрядные системы Apple PowerPC и 32-разрядные ПК Intel. [19]
В настоящее время 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. [20] [21] Существует открытый исходный код ядра XNU , который поддерживает Darwin на платформах Intel и AMD x86, официально не поддерживаемых Apple, хотя, по-видимому, он не обновлялся с 2009 года. [22] Открытый исходный код ядра XNU также существует для платформ ARM, хотя он не обновлялся с 2016 года. [23] Более старые версии поддерживали некоторые или все из 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 . [24] Предыдущие версии были выпущены под более ранней версией лицензии APSL, которая не соответствовала определению свободного программного обеспечения FSF, хотя и соответствовала требованиям Open Source Definition . [25]
Ниже приведена таблица основных релизов Darwin с датами их выпуска и производных релизов операционных систем. [26] Обратите внимание, что соответствующие релизы могли быть выпущены в разные даты.
Версия | Дата | Соответствующие релизы | Примечания |
---|---|---|---|
0.1 | 16 марта 1999 г. | Выпуски Mac OS X Server 1.0 |
|
0.2 | 14 апреля 1999 г. | Mac OS X Сервер 1.0.1 | |
0.3 | 5 августа 1999 г. | На основе Рапсодии 5.5
| |
1.0 | 12 апреля 2000 г. | Предварительный просмотр разработчика 3
| |
1.1 | 5 апреля 2000 г. | Предварительный просмотр разработчика 4 | |
1.2.1 | 15 ноября 2000 г. | Mac OS X Public Beta (кодовое название «Kodiak») | |
1.3.1 | 13 апреля 2001 г. | Mac OS X v10.0 (кодовое название «Cheetah») |
|
1.4.1 | 2 октября 2001 г. | Mac OS X v10.1 (кодовое название «Puma») | |
5.1 | 12 ноября 2001 г. | Mac OS X версии 10.1.1
| |
5.5 | 5 июня 2002 г. | Mac OS X версии 10.1.5 | |
6.0.1 | 23 сентября 2002 г. | Mac OS X v10.2 (кодовое название «Jaguar») |
|
6.8 | 3 октября 2003 г. | Mac OS X версии 10.2.8 | |
7.0 | 24 октября 2003 г. | Mac OS X Пантера | Mac OS X версии 10.3.0
|
7.9 | 15 апреля 2005 г. | Mac OS X версии 10.3.9 | |
8.0 | 29 апреля 2005 г. |
| Mac OS X версии 10.4.0
|
8.11 | 14 ноября 2007 г. | Mac OS X версии 10.4.11 |
Скачок в номерах версий с 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, и так далее (более ранние номера сборок представляли выпуски для разработчиков). [31]
Версия | Дата | Соответствующие релизы | Примечания |
---|---|---|---|
9.0 | 26 октября 2007 г. | Mac OS X версии 10.5.0
| |
9.8 | 5 августа 2009 г. | Mac OS X версии 10.5.8 |
Версия | Дата | Соответствующие релизы | Примечания |
---|---|---|---|
10.0 | 28 августа 2009 г. | Mac OS X версии 10.6.0
| |
10.8 | 23 июня 2011 г. | Mac OS X версии 10.6.8 | |
11.0.0 | 20 июля 2011 г. |
| Mac OS X версии 10.7.0
|
11.4.2 | 4 октября 2012 г. | Mac OS X v10.7.5 (дополнительная) |
Версия | Дата | Соответствующие релизы | Примечания |
---|---|---|---|
12.0.0 | 16 февраля 2012 г. | OS X Горный лев | ОС X версии 10.8.0
|
12.6.0 | 27 января 2015 г. | OS X v10.8.5 (с обновлением безопасности 2015-001) | |
13.0.0 | 11 июня 2013 г. | OS X версии 10.9.0
| |
13.4.0 | 17 сентября 2014 г. | OS X версии 10.9.5 | |
14.0.0 | 18 сентября 2014 г. | OS X версии 10.10.0 | |
14.5.0 | 13 августа 2015 г. | OS X версии 10.10.5 | |
15.0.0 | 16 сентября 2015 г. | OS X v10.11.0 и iOS 9.0
| |
15.6.0 | 18 июля 2016 г. | OS X v10.11.6 и iOS 9.3.3 |
Версия | Дата | Соответствующие релизы | Примечания |
---|---|---|---|
16.0.0 | 13 сентября 2016 г. | macOS v10.12.0 и iOS 10.0.1 (первоначальная версия выпуска)
| |
16.5.0 | 27 марта 2017 г. | macOS v10.12.4 и iOS 10.3 | |
16.6.0 | 19 июля 2017 г. | macOS v10.12.6 и iOS 10.3.3 | |
17.0.0 | 19 сентября 2017 г. |
| |
17.5.0 | 29 марта 2018 г. | macOS 10.13.4
| |
17.6.0 | 1 июня 2018 г. | macOS версии 10.13.5 | |
17.7.0 | 9 июля 2018 г. | macOS v10.13.6 и iOS 11.4.1 | |
18.0.0 | 24 сентября 2018 г. | ||
18.2.0 | 30 октября 2018 г. | macOS v10.14.1 и iOS 12.1
| |
19.0.0 | 19 сентября 2019 г. | ||
19.2.0 | 10 декабря 2019 г. | macOS 10.15.2 и iOS 13.3 | |
19.3.0 | 28 января 2020 г. | macOS 10.15.3 и iOS 13.3.1
| |
19.4.0 | 24 марта 2020 г. | ||
19.5.0 | 30 апреля 2020 г. | macOS 10.15.5 и iOS 13.5 | |
19.6.0 | 1 июня 2020 г. | macOS 10.15.6 бета 2 и iOS 13.6.0 бета 2 |
Версия | Дата | Соответствующие релизы | Примечания |
---|---|---|---|
20.0.0 | 22 июня 2020 г. | macOS 11.0 бета 1 и iOS 14.0 бета 1 | |
20.1.0 | 3 сентября 2020 г. | macOS 11.0 и iOS 14.0 | |
20.2.0 | 12 ноября 2020 г. | macOS 11.1 и iOS 14.3 | |
20.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.6 | |
20.6.0 | 2 июня 2021 г. | macOS 11.5 бета 2 и iOS 14.7 бета 2 | |
21.0.0 | 7 июня 2021 г. | macOS 12.0 бета 1 и iOS 15.0 бета 1 | |
21.0.1 | 25 октября 2021 г. | macOS 12.0 | |
21.1.0 | 25 октября 2021 г. | macOS 12.0.1 и iOS 15.0 | |
21.2.0 | 7 декабря 2021 г. | macOS 12.1 и iOS 15.2 | |
21.3.0 | 26 января 2022 г. | macOS 12.2 и iOS 15.3 | |
21.4.0 | 14 марта 2022 г. | macOS 12.3 и iOS 15.4 | |
21.5.0 | 24 июня 2022 г. | macOS 12.4 и iOS 15.5 | |
21.6.0 | 20 июля 2022 г. | macOS 12.5 и iOS 15.6 | |
22.0 | 6 июня 2022 г. | macOS 13.0 beta 1, iOS 16.0, watchOS 9.0 и tvOS 16.0 | |
22.1.0 | 24 октября 2022 г. | macOS 13.0, iOS 16.1, iPadOS 16.1, watchOS 9.1 и tvOS 16.1 | |
22.2.0 | 13 декабря 2022 г. | macOS 13.1, iOS 16.2, iPadOS 16.2, watchOS 9.2 и tvOS 16.2 | |
22.3.0 | 23 января 2023 г. | macOS 13.2, iOS 16.3, iPadOS 16.3, watchOS 9.3 и tvOS 16.3 | |
22.4.0 | 27 марта 2023 г. | macOS 13.3, iOS 16.4, iPadOS 16.4, watchOS 9.4 и tvOS 16.4 | |
22.5.0 | 18 мая 2023 г. | macOS 13.4, iOS 16.5, iPadOS 16.5, watchOS 9.5 и tvOS 16.5 | |
22.6.0 | 24 июля 2023 г. | macOS 13.5, iOS 16.6, iPadOS 16.6, watchOS 9.6 и tvOS 16.6 | |
23.0.0 | 18 сентября 2023 г. | macOS 14.0, iOS 17.0, iPadOS 17.0, watchOS 10.0 и tvOS 17.0 | |
23.1.0 | 25 октября 2023 г. | macOS 14.1, iOS 17.1, iPadOS 17.1, watchOS 10.1 и tvOS 17.1 | |
23.2.0 | 15 ноября 2023 г. | macOS 14.2, iOS 17.2, iPadOS 17.2, watchOS 10.2 и tvOS 17.2 | |
23.3.0 | 22 января 2024 г. | macOS 14.3, iOS 17.3, iPadOS 17.3, watchOS 10.3 и tvOS 17.3 | |
23.4.0 | 5 марта 2024 г. | macOS 14.4, iOS 17.4, iPadOS 17.4, watchOS 10.4 и tvOS 17.4 | |
23.5.0 | 13 мая 2024 г. | macOS 14.5, iOS 17.5, iPadOS 17.5, watchOS 10.5 и tvOS 17.5 | |
24.0.0 | 16 сентября 2024 г. | macOS 15.0, iOS 18.0, iPadOS 18.0, watchOS 11.0 и tvOS 18.0 |
Примечание: таблицы выше содержат даты выпуска соответствующих релизов ОС. Даты сборки для версий Darwin не являются общедоступными; команды ниже дают только дату сборки для ядра XNU.
Команда uname -r в Терминале покажет номер версии Darwin ("20.3.0"), а команда uname -v покажет строку версии сборки XNU , которая включает номер версии Darwin. Команда sw_vers покажет соответствующее ProductName ("macOS"), номер ProductVersion ("11.2.3") и строку BuildVersion ("20D91").
Поскольку Darwin является свободным программным обеспечением, появились проекты, направленные на изменение или улучшение операционной системы.
OpenDarwin была операционной системой, созданной сообществом на основе системы Darwin. Она была основана в апреле 2002 года Apple Inc. и Internet Systems Consortium . Ее целью было расширение сотрудничества между разработчиками Apple и сообществом свободного программного обеспечения . Apple выиграла от проекта, поскольку улучшения OpenDarwin будут включены в выпуски Darwin; а сообщество свободного/открытого исходного кода выиграло от предоставления полного контроля над собственной операционной системой, которая затем могла использоваться в дистрибутивах свободного программного обеспечения, таких как GNU-Darwin. [39]
25 июля 2006 года команда OpenDarwin объявила о закрытии проекта, поскольку они посчитали, что OpenDarwin «стал всего лишь хостинговым сооружением для проектов, связанных с Mac OS X», и что попытки создать отдельную операционную систему Darwin провалились. [40] Они также заявляют: «Доступность исходников, взаимодействие с представителями Apple, трудности с созданием и отслеживанием исходников, а также отсутствие интереса со стороны сообщества — все это способствовало этому». [41] Последним стабильным релизом была версия 7.2.1, выпущенная 16 июля 2004 года. [42]
PureDarwin — это проект по созданию загрузочного образа операционной системы из выпущенного Apple исходного кода для Darwin. [43] После остановки OpenDarwin и выпуска загрузочных образов с Darwin 8.x, стало все сложнее создавать полноценную операционную систему, поскольку многие компоненты стали закрытыми исходниками. В 2015 году проект создал предварительный релиз на основе Darwin 9 с графическим интерфейсом X11, [44] за которым последовала только командная строка 17.4 Beta на основе Darwin 17. [45]
Leopard теперь является зарегистрированным продуктом Open Brand UNIX 03, соответствующим спецификациям SUSv3 и POSIX 1003.1 для C API, Shell Utilities и Threads.
Четырехъядерный 1,2 ГГц Broadcom BCM2837