Open Source no mundo Apple

Open Source, ou código aberto, como é conhecido no Brasil, é um método de desenvolvimento de software que se vale, em um processo transparente, da possibilidade de revisão coletiva do código por todos os interessados.

Tendo como requisitos, entre outros, a disponibilidade do código para que ele possa ser estudado, modificado e redistribuído por qualquer interessado (assim como ocorre no âmbito do movimento Software Livre), o Open Source busca oferecer maior qualidade e flexibilidade, custo mais baixo, e menores riscos oriundos da dependência em relação ao fornecedor ou desenvolvedor original.

A Apple, em seu site oficial sobre suas iniciativas open source, descreve a si mesma como integrante do grupo das grandes empresas de informática que fazem do desenvolvimento em código aberto uma parte importante da sua estratégia de software, bem como relata que continua a usar e a disponibilizar quantidades significativas de software neste modelo.

 

Darwin e a evolução open source na Apple

Na nossa série comemorativa dos 10 anos do Mac OS X já apresentamos com mais detalhes este personagem interessante do histórico da Apple, até hoje ocupante de lugar relevantíssimo debaixo do capô do Mac OS X e do iOS: o Darwin, lançado pela Apple como código aberto em 2000.

Em si um sistema operacional compatível com o POSIX e com a Single UNIX Specification, o Darwin – que é fortemente baseado em código derivado ou obtido do NeXTSTEP e do FreeBSD - provê o grupo central de componentes nos quais as plataformas atuais da Apple se baseiam.

Os detalhes sobre a arquitetura e o funcionamento do Darwin – kernel, drivers, sistemas de arquivos, serviços de rede, componentes BSD, X11, gerenciamento de processos, gerenciamento de memória, APIs, etc. – podem ser encontrados neste documento da Apple para desenvolvedores interessados no Mac OS X, mas o essencial para o nosso foco de hoje está em outra URL: o código-fonte do Darwin, contendo boa parte dos elementos mais centrais dos produtos da empresa, sob uma variedade de licenças livres: GPL, BSD, Apache, MIT e outras.

 

Via de mão dupla

A Apple se beneficiou de uma série de projetos open source, mas ela também contribui com eles. Um exemplo envolve o FreeBSD, do qual muitos componentes estão presentes no Darwin (e no OS X e iOS, portanto): melhorias e novos componentes desenvolvidos pela Apple costumam ser incorporados ao seu código.

Um exemplo recente é o Grand Central Dispatch (GCD), API para execução concorrente de código que tem uma série de vantagens sobre o modelo tradicional baseado em threads. Introduzido a partir do Mac OS X 10.6 (Snow Leopard) e presente também no iOS, o código do GCD foi aberto já em 2009, e logo em seguida portado para o FreeBSD, no qual está presente desde a versão 8.1 (há port para Linux também).

Não faltam exemplos de outros projetos open source populares em diversas plataformas mas que são mantidos ou custeados pela Apple (para seus próprios interesses, naturalmente).

Vamos a alguns deles:

CUPS: provavelmente o mais popular sistema de impressão entre as distribuições de Linux, o CUPS é um software open source mantido diretamente pela Apple, que o usa desde 2002 e adquiriu os direitos sobre seu código em 2007 (quando ele já era extremamente popular no segmento), permanecendo livre (GPL/LGPL) para usuários de outros sistemas e um componente fundamental do OpenPrinting – bem como formando a base do sistema de impressão dos produtos da Apple, naturalmente.

 

WebKit: O engine HTML do navegador Safari, do OS X e iOS, também está presente no navegador Chrome, no sistema de jogos Steam, nos navegadores do BlackBerry e do Android, no Plasma do KDE, no WebOS da HP e em vários outros projetos.  Trata-se de um projeto de código aberto mantido pela Apple e derivado originalmente do componente KHTML (do KDE), mas que conseguiu dar a volta completa, sendo hoje adotado no próprio desktop livre que lhe deu origem.

 

LLVM: esta suíte de ferramentas open source de desenvolvimento (o compilador Clang, linker, debugger e mais) surgiu no meio acadêmico mas desde 2005 é patrocinada pela Apple, que a incluiu como parte integrante do conjunto de ferramentas de desenvolvimento oficiais de sua linha de produtos. Desde meados de 2010 o Clang passou a ser integrante do FreeBSD (que já pode ser completamente compilado com ele), e no momento este compilador, ainda em desenvolvimento, já alcançou um estágio em que é capaz de compilar uma versão funcional do kernel Linux, bem como uma máquina virtual Java, tarefas certamente não-triviais.

Outro exemplo ilustrativo é o do launchd, que desde 2005 é o sucessor, no Mac OS X, de vários componentes históricos do Unix: init, inetd, atd e crond, entre outros. Devido à sua robustez, entre outras vantagens, em 2006 a distribuição Ubuntu pensou em adotá-lo, mas deixou de fazê-lo devido a questões de licenciamento. Logo em seguida à divulgação do fato, a Apple anunciou que, “de forma a encorajar a adoção em outras plataformas”, mudou a licença deste componente, deixando para trás a APSL que o Ubuntu rejeitou e adotando a licença Apache.

 

Listão dos aprovados

A Apple mantém ainda uma longa lista de projetos open source que são adotados e distribuídos por ela.

Esta lista de projetos open source na Apple é longa, e seu preâmbulo é especialmente interessante por trazer um forte argumento para a adoção do código aberto: “A Apple acredita que o uso da metodologia Open Source faz do Mac OS X um sistema operacional mais robusto e seguro, pois seus componentes centrais foram submetidos ao extenuante teste da revisão pelos pares ao longo de décadas. Qualquer problema encontrado com estes softwares pode ser imediatamente identificado e resolvido pela Apple e pela comunidade Open Source”.

A lista de projetos Open Source incluídos no OS X e no iOS também é bastante variada: tem componentes do BSD, do GNU, projetos independentes e mais. Alguns exemplos ilustrativos:

  • Apache, Samba, Tomcat
  • Bsdmake, gnumake, autoconf, gcc
  • Bzip2, gzip, zip
  • Curl, netcat
  • OpenSSH, OpenSSL
  • Emacs, vim, nano
  • SQLite, BerkeleyDB
  • Perl, PHP, Python, Bash, Awk, Tcl

 

Mas é tudo open source?

Certamente que não: a Apple é uma empresa opaca e proprietária em muitos aspectos, incluindo boa parte dos seus aplicativos e outros componentes de software, suas relações tortuosas com DRM e suas extensas coleções de patentes de software.

Mas há um diferencial entre a sua forma de agir em relação ao código aberto e o de outros concorrentes: a Apple coloca o código aberto perto do núcleo de seus produtos, e constrói a sua vantagem competitiva ao redor – e beneficiar-se do poder de desenvolvimento e revisão de código da comunidade open source oferece a ela o incentivo para contribuir ativamente em uma série de projetos que são úteis também aos usuários de outras plataformas.

Tendo de enfrentar, na arena do desktop da virada deste século, um concorrente quase monopolista, a adoção e o incentivo ao uso de padrões abertos e de software open source fez todo o sentido como uma forma de impulsionar a estratégia da Apple e tornar mais nivelado o campo de batalha – ou seja, longe de ser uma decisão altruísta, trata-se de uma escolha consciente pelo modelo melhor adequado para a situação.

Hoje a Apple colhe os frutos desta decisão, e tanto os seus usuários quanto as comunidades dos projetos de software com os quais ela contribui se beneficiam. Torcemos para que este relacionamento frutífero perdure, e que as partes em que a Apple é bem menos do que open se tornem menos numerosas no futuro!

 

Veja também:

Comentar

Comentários arquivados

Artigos recentes: