NextBSD Renasce

O projeto NextBSD, uma das variantes mais interessantes do BSD da década de 2010, voltou à vida sob nova gestão. A equipe de tecnologia do portal está intrigada com essa reviravolta. Além da página inicial, há um repositório no GitHub – mas é importante notar que este é separado do antigo, cujo repositório ainda existe, embora as últimas alterações tenham ocorrido há sete anos. O novo projeto também possui uma história do projeto, dando crédito onde é devido.

O homem por trás da revivescência é Joe Maloney, conhecido no GitHub como pkgdemon. Seu nome soa familiar, pois já o mencionamos anteriormente: ele foi o responsável por montar o desktop Gershwin no GhostBSD. Logo após cobrirmos o Gershwin no GhostBSD, ele pediu aos mantenedores se poderia assumir o projeto NextBSD. Ele teve um papel relativamente menor no original – é possível ver sua lista de contribuições. O projeto original NextBSD foi iniciado por Jordan Hubbard, co-fundador do FreeBSD, em 2015 – o artigo da Wikipedia sobre o assunto contém parte da história. O plano era portar alguns componentes do sistema operacional Darwin da Apple para o FreeBSD. Darwin é a base Unix sobre a qual são construídos o macOS e outros sistemas operacionais da Apple; é de código aberto e o código pode ser obtido diretamente do GitHub. Alguns dos objetivos iniciais são explicados nesta apresentação da equipe original.

A lógica por trás disso é a seguinte: os vários sistemas operacionais da Apple, desde o macOS até o iOS, passando pelo Apple Watch e Apple TV, são todos construídos a partir de um núcleo comum, derivado do NeXTstep. Esse foi construído sobre o Mach e o BSD UNIX, que eram software livre – o termo “código aberto” ainda não existia. Os sistemas operacionais da Apple são sofisticados, altamente desenvolvidos e são utilizados em bilhões de dispositivos que enfrentam os clientes com quase nenhum suporte técnico. Hoje, grande parte dos sistemas operacionais da Apple é de código aberto. Junto com o kernel XNU, que lida com a comunicação entre processos usando o IPC do Mach, há o sistema de inicialização launchd, o IOkit para lidar com dispositivos e drivers, a facilidade de log do sistema da Apple e seu daemon de log syslogd, e muito mais.

Embora a Apple compartilhe grande parte das partes de texto do modo do seu sistema operacional baseado em BSD, as partes de nível mais baixo – o kernel XNU e os drivers – são projetados e construídos exclusivamente para hardware da Apple. Quando o OS X ainda era bastante novo, houve vários esforços para pegar o sistema operacional Darwin e construir versões para hardware de PC. O OpenDarwin começou em 2002, mas terminou em 2006. Foi seguido pelo PureDarwin, que lançou versões em 2015 e 2019, e foi mantido até recentemente, em 2024. Houveram outros, incluindo o GNU Darwin e o DarwinBSD. A dificuldade de fazer tudo funcionar é demonstrada pelo fato de que todos esses projetos acabaram falhando ou terminando. Então, o plano do NextBSD é pegar o kernel do FreeBSD, o mais capaz dos kernels do BSD de código aberto, mas substituir a tradicional e focada em servidores userland do FreeBSD pelas partes relevantes do código da Apple disponível publicamente.

A nova versão do NextBSD, NextBSD-redux, não é baseada em uma bifurcação do código de uma década atrás. O FreeBSD evoluiu substancialmente nesse tempo, e o mesmo aconteceu com o macOS e o Darwin. Este é um novo projeto por um novo desenvolvedor, mas ele retoma o mesmo plano geral, visa montar as mesmas peças do quebra-cabeça e compartilha o mesmo objetivo pretendido. Em alguns lugares, ele utiliza um pouco do mesmo código, embora. O README do NextBSD-redux descreve o que está funcionando até agora, com muitos mais detalhes nas notas de portabilidade. Embora não haja um desktop gráfico ainda, isso também está em andamento. Naturalmente, é o próprio desktop Gershwin de Maloney, e o status atual é descrito no repositório gershwin-on-nextbsd.

Para nós, talvez o aspecto-chave do NextBSD – tanto a versão original quanto o NextBSD-redux – é que não é um esforço para construir algo completamente novo do zero. É um esforço para escolher e combinar elementos de projetos de código aberto separados existentes e montá-los em um todo útil. A inspiração que ele compartilha com o desktop Gershwin de Maloney é clara. O Gershwin combina componentes tirados do Projeto GNUstep, mais o gerenciador de janelas do desktop Xfce, mais outros componentes, visando criar um ambiente de desktop amplamente semelhante ao do Mac.

Fora dos esforços para criar um sistema operacional de código aberto para PC baseado no Darwin da Apple ou um ambiente de desktop semelhante ao do Mac, houve vários outros esforços para criar um sistema operacional semelhante ao do macOS a partir de partes de código aberto existentes. O que é encorajador é que muitos deles compartilham código entre si. O Gershwin no GhostBSD não foi a primeira tentativa de colocar um desktop semelhante ao do Mac em um sistema operacional BSD. Em 2023, relatamos sobre o helloSystem 0.8. Foi o segundo olhar sobre esse sistema operacional prototípico no The Register, após um artigo anterior em 2021. O helloSystem estava sendo montado por Simon “ProbonoPD” Peter, o criador do formato de empacotamento cross-distro AppImage. O helloSystem foi baseado em uma distribuição gráfica do FreeBSD chamada FuryBSD, mas infelizmente esse projeto foi encerrado em 2020. O ProbonoPD mudou para ajudar no desenvolvimento do Gershwin em vez disso.

O helloSystem não foi a primeira incursão do ProbonoPD nesse campo. Antes disso, ele teve um sistema operacional baseado em Linux chamado live desktop, que também visava criar um