Darwin (sistema operacional)

Darwin é um kernel de código aberto lançado pela Apple Inc. em 2000. É composto por código desenvolvido pela Apple, bem como código derivado do NeXTSTEP, BSD, Mach, e outros projetos de software livre.

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).

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.

Kernel
O núcleo do Darwin é o XNU, um kernel híbrido que usa OSFMK 7.3 (Open Software Foundation Mach Kernel) da OSF, vários elementos do FreeBSD (incluindo o modelo de processo, pilha de rede, sistema de arquivos virtuais), e um driver de dispositivo orientado a objetos API chamado Kit I/O. O design do kernel híbrido fornece a flexibilidade de um microkernel e o desempenho de um kernel monolítico.

Suporte a hardware e software 
O Darwin atualmente inclui suporte para a variante de 64-bit x86-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 DNS multicast 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. 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.

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).

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.

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."  O último lançamento estável foi a versão 7.2.1, lançada em 16 de julho de 2004.

PureDarwin 
PureDarwin é um projeto para criar uma imagem bootável de sistema operacional do código-fonte Darwin lançado pela Apple. 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 e uma com apenas linha de comando, a 17.4 Beta baseada em Darwin 17.

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 Darwine foi uma portabilidade do wine que permite executar o software Microsoft Windows em Darwin.
 SEDarwin é uma porta de estrutura de controle de acesso obrigatório TrustedBSD e partes da estrutura SELinux para Darwin. Foi incorporado ao Mac OS X 10.5.
 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.
 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.
 Existem vários projetos que se concentram no suporte ao driver: por exemplo, drivers wireless, drivers para NIC, drivers de modem, leitores de cartão, e os sistemas de arquivos ext2 e ext3.

Ver também 

 A/UX
 mkLinux
 OSF/1

Ligações externas 
Darwin Releases na Apple Developer Connection
Darwin Build Number List
Darwin Source Repository na SourceForge
Hexley, the Darwin mascot
PureDarwin.org

Apple
BSD