macOS é UNIX? Desvendando a Verdade por Trás do Sistema!

A questão se o macOS é um sistema UNIX, apenas similar ou uma variante do UNIX, é recorrente. Vamos explorar essa discussão, abordando conceitos como POSIX e SUS.

macOS: Uma Análise da Sua Essência UNIX

A origem e a natureza do macOS suscitam diversas indagações. Qual a sua genealogia? Quanto da sua herança original ainda está presente no sistema atual? E, mais importante, isso realmente importa? Para compreendermos se o macOS é UNIX, similar a UNIX ou apenas se assemelha a um sistema UNIX, precisamos entender o significado desses termos e quem estabelece os critérios para tal classificação.

Recuemos à sua origem.

O UNIX nasceu há meio século nos Bell Labs, um centro de pesquisa da AT&T. Em 1973, a versão 4 do UNIX foi reescrita na linguagem C, o que o tornou mais portátil e adaptável a diferentes plataformas de hardware. Nesse mesmo ano, Ken Thompson e Dennis Ritchie, seus principais criadores, apresentaram um artigo sobre sistemas operacionais e logo receberam pedidos do sistema.

Devido a um acordo de consentimento de 1956, a AT&T não podia atuar em outros negócios que não o de comunicação. O UNIX não se enquadrava nesse ramo. Assim, a empresa tomou uma decisão incomum para a época: disponibilizou o código-fonte do UNIX com uma licença liberal, cobrando apenas os custos de envio e uma taxa simbólica.

A Disseminação de Sistemas Baseados em UNIX

O UNIX era distribuído “como está”, sem suporte. Isso motivou a criação de uma comunidade de usuários que se uniam para auxiliar e aprimorar o sistema. Era possível obter o código-fonte, alterá-lo e receber ajuda da comunidade – um conceito familiar. Assim surgiram várias versões do UNIX, adaptadas às necessidades de cada organização.

Bob Fabry, professor de ciência da computação na UC Berkeley, participou do Simpósio sobre Princípios de Sistemas Operacionais de 1973, onde assistiu à apresentação de Thompson e Ritchie sobre o sistema UNIX.

Fabry solicitou uma cópia do sistema, e em 1974, o UNIX foi instalado em um PDP/11 no Grupo de Pesquisa em Ciência da Computação (CSRG) da UC Berkeley. Ken Thompson passou um ano lá, contribuindo para o que se tornaria a versão UNIX da universidade. As modificações e adições da UC Berkeley foram distribuídas sob o nome de Berkeley Software Distribution (BSD), evoluindo para distribuições completas de um sistema UNIX, ainda conhecido como BSD, com lançamentos identificados por números como 4.2BSD.

Em 1984, a AT&T foi liberada das restrições do acordo de consentimento, podendo comercializar seu sistema operacional. Ele incluía código BSD, como TCP/IP, vi e o shell C, csh. Apesar da colaboração, o licenciamento era complexo, pois o BSD continha código da AT&T, que não era de código aberto, embora os elementos do BSD o fossem.

Para contornar esses problemas, foi desenvolvida uma versão do BSD sem código da AT&T. No entanto, ao remover o código proprietário, faltava cerca de 20% do kernel. William Jolitz completou as partes faltantes, e essa versão do UNIX foi lançada como 386BSD. Embora o projeto 386BSD tenha estagnado, em 1993, seu código-fonte originou os projetos NetBSD e FreeBSD.

Isso nos apresenta uma peça do quebra-cabeça: FreeBSD.

O Próximo Passo

Após ser demitido da Apple em 1985, Steve Jobs fundou a NeXT, Inc. Para seu sistema operacional de estações de trabalho, a NeXT desenvolveu o NeXTSTEP. Ele utilizou o BSD como base, mas introduziu um kernel completamente novo.

O NeXTSTEP usou uma versão modificada do microkernel Mach e 4.3BSD para criar o sistema. O Mach foi desenvolvido na Carnegie Mellon para facilitar a pesquisa em computação distribuída e paralela, usando o BSD como sistema operacional e substituindo o kernel.

O Kernel XNU

Em 1996, a Apple adquiriu a NeXT, Inc. e, consequentemente, o NeXTSTEP. A Apple iniciou o desenvolvimento do sistema operacional que viria a ser o macOS através do Mac OS X. Ela atualizou o kernel Mach e o substituiu pela versão mais avançada desenvolvida pela Open Software Foundation e usada no sistema operacional OSF/1. A Apple também incorporou componentes BSD atualizados e aprimorados da distribuição FreeBSD.

A Apple trouxe elementos do kernel BSD de volta ao kernel Mach, desenvolvendo um kernel híbrido que combinava características de arquiteturas monolíticas e microkernel.

O I/O Kit, desenvolvido pela Apple com base no DriverKit do NeXTSTEP, também foi incluído, permitindo adicionar drivers ao kernel sem precisar modificá-lo a cada vez.

O XNU representa a terceira parte essencial desse quebra-cabeça.

Os Padrões POSIX e SUS

Em 1996, duas organizações de padrões – X/Open e a Open Software Foundation – se uniram para formar O Grupo Aberto.

O Grupo Aberto é o certificador.