Darwin forma o conjunto central de componentes sobre os quais macOS (anteriormente OS X e Mac OS X), iOS, watchOS, tvOS e iPadOS são baseados. Sua maioria é compatível com POSIX, mas nunca, por si só, foi certificado como compatível com qualquer versão do POSIX. Começando com o Mac OS X Leopard,o macOS foi certificado como compatível com a versão 3 da Single UNIX Specification (SUSv3).[3][4][5]
História
A herança do Darwin começou com o sistema operacional NeXTSTEP da NeXT (mais tarde, desde a versão 4.0, conhecida como OPENSTEP), lançada pela primeira vez em 1989. Depois que a Apple comprou a NeXT em 1997, anunciou que basearia seu próximo sistema operacional no OPENSTEP. Este foi desenvolvido no Rhapsody em 1997, Mac OS X Server 1.0 em 1999, Mac OS X Public Beta em 2000, e Mac OS X 10.0 em 2001. Em 2000, os principais componentes do sistema operacional Mac OS X foram lançados como software de código aberto a Licença de Fonte Pública da Apple (APSL) como Darwin; os componentes de alto nível, como as estruturas do Cocoa e Carbon, permaneceram como software proprietário. O nome é um tributo ao naturalista britânico Charles Darwin.
O Darwin atualmente inclui suporte para a variante de 64-bitx86-64 dos processadores Intel x86 usados em Macs e os processadores ARM de 64 bits usados no iPhone 5S, o iPod Touch de 6ª geração, o iPad Air, a quarta geração Apple TV, modelos originais HomePod, e posteriores, bem como os processadores ARM de 32 bits usados no iPhone 5C e mais antigos, gerações anteriores do iPod Touch, o iPad até a quarta geração, e a segunda e terceira geração da Apple TV. Existe uma porta de código aberto do kernel XNU que suporta Darwin nas plataformas Intel e AMD x86 não suportadas oficialmente pela Apple, embora não pareça ter sido atualizada desde 2009. Uma porta de código aberto do kernel XNU também existe para plataformas ARM. Versões mais antigas suportavam alguns ou todos os PowerPC de 32 bits, PowerPC de 64 bits e 32 bits x86.
Ele suporta a API POSIX por meio de sua linhagem BSD (em grande parte FreeBSD userland) e um grande número de programas escritos para vários outros sistemas UNIX-like podem ser compilados em Darwin sem alterações no código-fonte.
Darwin não inclui muitos dos elementos definidores do macOS, como as APIs Carbon e Cocoa ou a interface de usuário Quartz Compositor e Aqua, e, portanto, não pode executar aplicativos Mac. Ele, no entanto, suporta uma série de características menos conhecidas do macOS, como o mDNSResponder, que é o respondente DNSmulticast e um componente central da tecnologia de rede Bonjour; e launchd uma avançada framework de gerenciamento de serviços.
Licença
Em julho de 2003, a Apple lançou o Darwin sob a versão 2.0 da Licença de Fonte Pública da Apple (APSL), que a Free Software Foundation (FSF) classifica como uma licença de software gratuita incompatível com a Licença Pública Geral GNU. Versões anteriores foram lançadas sob uma versão anterior da licença APSL, que não atendeu à definição FSF de software livre, embora tenha cumprido os requisitos da Definição de Código Aberto.
Versões
Tabela de grandes lançamentos do Darwin e suas datas e lançamentos no macOS.[7] Observe que a versão correspondente do macOS pode ter sido lançada em uma data diferente; consulte as páginas do macOS para essas datas.
Darwin
Lançamento
Versão do MacOS
0.1
16 de março de 1999
Lançamento do Mac OS X Server 1.0
0.2
14 de abril de 1999
Lançamento do Mac OS X Server 1.0
0.3
5 de agosto de 1999
Lançamento do Mac OS X Server 1.0
1.0
12 de abril de 2000
Developer preview 3
1.1
5 de abril de 2000
Developer preview 4
1.2.1
15 de novembro de 2000
Beta público do Mac OS X "Kodiak"
1.3.1
13 de abril de 2001
Mac OS X 10.0 Cheetah
1.4.1
2 de outubro de 2001
Mac OS X 10.1 Puma
5.1
Mac OS X 10.1.1
5.5
Mac OS X 10.1.5
6.0.1
23 de setembro de 2002
Mac OS X 10.2 Jaguar
6.8
Mac OS X 10.2.8
7.0
24 de outubro de 2003
Mac OS X 10.3 Panther
7.9
Mac OS X 10.3.9
8.0
29 de abril de 2005
Mac OS X 10.4 Tiger
8.11
Mac OS X 10.4.11
9.0
26 de outubro de 2007
Mac OS X 10.5 Leopard
9.8
Mac OS X 10.5.8
10.0
28 de agosto de 2009
Mac OS X 10.6 Snow Leopard
10.8
Mac OS X 10.6.8
11.0.0
20 de julho de 2011
Mac OS X 10.7 Lion
11.4.2
Mac OS X 10.7.5
12.0.0
16 de fevereiro de 2012
OS X 10.8 Mountain Lion
12.6.0
OS X 10.8.5
13.0.0
11 junho de 2013
OS X 10.9 Mavericks
13.4.0
OS X 10.9.5
14.0.0
18 de setembro 2014
OS X 10.10 Yosemite
14.5.0
OS X 10.10.5
15.0.0
13 de agosto de 2015
OS X 10.11.0
15.6.0
OS X 10.11.6
16.0.0
13 de setembro de 2016
macOS 10.12 Sierra
16.5.0
macOS 10.12.4
17.0.0
19 de setembro de 2017
macOS 10.13 High Sierra
17.5.0
macOS 10.13.4
17.6.0
macOS 10.13.5
17.7.0
macOS 10.13.6
18.0.0
24 de setembro de 2018
macOS 10.14 Mojave
18.2.0
macOS 10.14.1
19.0.0
19 de setembro de 2019
macOS 10.15 Catalina
19.2.0
macOS 10.15.2
19.3.0
macOS 10.15.3
19.4.0
24 de março de 2020
macOS 10.15.4
O salto nos números de versão de Darwin 1.4.1 para 5.1 com o lançamento do Mac OS X v10.1.1 foi projetado para ligar Darwin à versão Mac OS X e ao sistema de numeração de compilação, que por sua vez é herdado do NeXTSTEP. No sistema de numeração de compilação do macOS, cada versão tem um número de compilação inicial único, que identifica a versão inteira do macOS que faz parte. Mac OS X v10.0 tinha números de compilação começando com 4, 10.1 tinha números de compilação começando com 5, e assim por diante (números de compilação anteriores representavam lançamentos de desenvolvedores).[8]
O comando uname -r no Terminal mostrará o número da versão de Darwin, e o comando uname -v mostrará a string de versão de compilação XNU, que inclui o número da versão de Darwin.
Projetos derivados
Devido à natureza do software livre de Darwin, houve projetos que visam modificar ou melhorar o sistema operacional.
OpenDarwin
OpenDarwin era um sistema operacional baseado no sistema Darwin. Foi fundada em abril de 2002 pela Apple Inc. e pela Internet Systems Consortium. Seu objetivo era aumentar a colaboração entre os desenvolvedores da Apple e a comunidade de software livre. A Apple se beneficiou do projeto porque as melhorias no OpenDarwin seriam incorporadas aos lançamentos do Darwin; e a comunidade de código livre/aberto beneficiou-se de ter controle total sobre seu próprio sistema operacional, que poderia então ser usado em distribuições de software livre, como GNU-Darwin.[9]
Em 25 de julho de 2006, a equipe OpenDarwin anunciou que o projeto estava sendo encerrado, pois eles achavam que OpenDarwin tinha "se tornado uma mera instalação de hospedagem para projetos relacionados ao Mac OS X", e que os esforços para criar um sistema operacional Darwin independente haviam falhado. Eles também afirmam: "Disponibilidade de recursos, interação com representantes da Apple, dificuldade de construção e rastreamento de recursos e falta de interesse da comunidade contribuíram para isso." [10] O último lançamento estável foi a versão 7.2.1, lançada em 16 de julho de 2004.[11]
PureDarwin
PureDarwin é um projeto para criar uma imagem bootável de sistema operacional do código-fonte Darwin lançado pela Apple.[12] Desde o encarramento do OpenDarwin e o lançamento de imagens bootáveis desde Darwin 8.x, tem sido cada vez mais difícil criar um sistema operacional completo à medida que muitos componentes se tornaram de codigo fechado. O projeto conseguiu criar uma versão de Natal baseada em Darwin 9 com uma GUI X11[13] e uma com apenas linha de comando, a 17.4 Beta baseada em Darwin 17.[14]
Outros projectos derivados
MacPorts (anteriormente DarwinPorts), Fink e Homebrew são projetos bem conhecidos para portar programas UNIX para o sistema operacional Darwin e fornecer gerenciamento de pacotes. Além disso, vários gerenciadores de pacotes padrão UNIX , como RPM, pkgsrc e Portage, têm portas Darwin. Alguns deles operam em seu próprio namespace para não interferir com o sistema base.
GNU-Darwin é um projeto que porta pacotes de software livre para Darwin. Eles empacotam imagens do Sistema Operacional de forma semelhante a uma distribuição Linux.
O projeto Darbat é um porto experimental de Darwin para a família de micronúcleos L4. Ele tem como objetivo ser binário compatível com os binários darwinianos existentes.[17]
O projeto Darling é uma camada de compatibilidade para a execução de binários macOS em sistemas Linux. Usa algum código fonte de Darwin.[18]
Existem vários projetos que se concentram no suporte ao driver: por exemplo, drivers wireless,[19][20] drivers para NIC,[21][22][23] drivers de modem,[24] leitores de cartão,[25] e os sistemas de arquivos ext2 e ext3.[26][26]