Darwin


Darwin — это открытая POSIX-совместимая операционная система, выпущенная Apple Inc. в 2000 году. Она совмещает код, написанный самой Apple, с полученным от NeXTSTEP (система выпущена в 1989), FreeBSD (выпущена в 1993) и прочих свободных проектов. Система Darwin представляет собой набор основных компонентов, используемых в macOS и iOS. Она совместима с третьей версией спецификации единой UNIX (SUSv3) и POSIX-приложениями и утилитами.

История

Darwin — наследник разработанной в NeXT операционной системы NeXTSTEP, первая версия которой вышла в 1989 году. После того, как Apple поглотила NeXT в 1997 году, она объявила, что сделает свою следующую операционную систему на основе OpenSTEP API системы NeXTSTEP. Эта система разрабатывалась в рамках проекта Rhapsody с 1997 года и в 1999 году вышел основанный на этих разработках Mac OS X Server 1.0. В 2000 году Rhapsody был выделен в Darwin, выпущенный как свободное программное обеспечение в рамках публичной лицензии на исходный код Apple (APSL) и компоненты Darwin присутствуют в Mac OS X по сей день.

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

Устройство

Ядро

Darwin построен на основе XNU — гибридного ядра, включающего микроядро Mach 3, некоторые части ОС семейства BSD (такие как модель процессов, сетевой стек, виртуальная файловая система) и I/O Kit — объектно-ориентированный API для написания драйверов.

Некоторые преимущества от выбора такого ядра составляет использование формата Mach-O, позволяющего в одном исполняемом файле (включая само ядро) поддерживать несколько архитектур процессоров и возможности SMP в ядре. Гибридный дизайн ядра — это компромисс между гибкостью микроядер и производительностью монолитных решений.

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

На данный момент Darwin поддерживает 32- и 64-битные процессоры PowerPC и Intel x86, используемые в Macintosh, а также 32- и 64-битные процессоры ARM, используемые в iPhone, iPod touch, iPad, Apple TV и Mac.

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

Darwin и Mac OS X используют I/O Kit в своих драйверах, поддерживая одно и то же оборудование, файловые системы и прочее. Apple распространяет Darwin с проприетарными драйверами для своих сетевых карт AirPort.

Darwin не включает в себя многие элементы Mac OS X, такие как Carbon и Cocoa API или композитор Quartz и пользовательский интерфейс Aqua, поэтому он не может запускать приложения для Mac.

Хронология версий

  • 1.3.1 — Mac OS X 10.0, 10.0.1, 10.0.2, 10.0.3, 10.0.4
  • 1.4.1 — Mac OS X 10.1
  • 5.1 — Mac OS X 10.1.1
  • 5.2 — Mac OS X 10.1.2
  • 5.3 — Mac OS X 10.1.3
  • 5.4 — Mac OS X 10.1.4
  • 5.5 — Mac OS X 10.1.5
  • 6.0 — Mac OS X 10.2 (Jaguar)
  • 6.1 — Mac OS X 10.2.1 (Jaguar)
  • 6.2 — Mac OS X 10.2.2 (Jaguar)
  • 6.3 — Mac OS X 10.2.3 (Jaguar)
  • 6.4 — Mac OS X 10.2.4 (Jaguar)
  • 6.5 — Mac OS X 10.2.5 (Jaguar)
  • 6.6 — Mac OS X 10.2.6 (Jaguar)
  • 6.7 — Mac OS X 10.2.7 (Jaguar)
  • 6.8 — Mac OS X 10.2.8 (Jaguar)
  • 7.0 — Mac OS X 10.3 (Panther)
  • 7.1 — Mac OS X 10.3.1 (Panther)
  • 7.2 — Mac OS X 10.3.2 (Panther)
  • 7.3 — Mac OS X 10.3.3 (Panther)
  • 7.4 — Mac OS X 10.3.4 (Panther)
  • 7.5 — Mac OS X 10.3.5 (Panther)
  • 7.6 — Mac OS X 10.3.6 (Panther)
  • 7.7 — Mac OS X 10.3.7 (Panther)
  • 7.8 — Mac OS X 10.3.8 (Panther)
  • 7.9 — Mac OS X 10.3.9 (Panther)
  • 8.0 — Mac OS X 10.4 (Tiger)
  • 9.2.0 — Mac OS X 10.5.2 (Leopard)
  • 9.3.0 — Mac OS X 10.5.3 (Leopard)
  • 9.5.0 — Mac OS X 10.5.5 (Leopard)
  • 9.6.0 — Mac OS X 10.5.6 (Leopard)
  • 9.7.0 — Mac OS X 10.5.7 (Leopard)
  • 9.8.0 — Mac OS X 10.5.8 (Leopard)
  • 10.0.0 — Mac OS X 10.6 (Snow Leopard)
  • 10.1.0 — Mac OS X 10.6.1 (Snow Leopard)
  • 10.2.0 — Mac OS X 10.6.2 (Snow Leopard)
  • 10.3.0 — Mac OS X 10.6.3 (Snow Leopard)
  • 10.4.0 — Mac OS X 10.6.4 (Snow Leopard)
  • 10.5.0 — Mac OS X 10.6.5 (Snow Leopard)
  • 10.6.0 — Mac OS X 10.6.6 (Snow Leopard)
  • 10.7.0 — Mac OS X 10.6.7 (Snow Leopard)
  • 10.8.0 — Mac OS X 10.6.8 (Snow Leopard)
  • 11.0.0 — Mac OS X 10.7 (Lion)
  • 12.0.0 — OS X 10.8 (Mountain Lion)
  • 13.0.0 — OS X 10.9 (Mavericks)
  • 14.0.0 — OS X 10.10 (Yosemite)
  • 15.0.0 — OS X 10.11 (El Capitan)
  • 16.0.0 — macOS 10.12 (Sierra)
  • 17.0.0 — macOS 10.13 (High Sierra)
  • 18.0.0 — macOS 10.14 (Mojave)
  • 19.0.0 — macOS 10.15 (Catalina)
  • 20.0.0 — macOS 11 (Big Sur)
  • 21.0.0 — macOS 12 (Monterey)

Производные проекты

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

OpenDarwin

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

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

PureDarwin

PureDarwin — это проект по созданию загрузочного образа операционной системы, основанного на исходном коде Darwin. После прекращения поддержки OpenDarwin и выпуска загрузочных образов, начиная с Darwin 8.x, становилось всё труднее создавать полноценную операционную систему, поскольку многие компоненты становились закрытыми. В 2015 году в рамках проекта был создан предварительный выпуск на основе Darwin 9 с графическим интерфейсом X11, за которым последовала только бета-версия командной строки 17.4 на основе Darwin 17.

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

  • GNU-Darwin — проект по переносу пакетов свободного программного обеспечения на операционные системы OS X и Darwin. Образ ОС создаётся и распространяется аналогично Linux-дистрибутивам.