4 Comparando BSD e Linux

Então qual é realmente a diferença entre, digamos, o Debian Linux e o FreeBSD? Pra maioria dos usuários, as diferenças são surpreendentemente pequenas: Ambos são sistemas operacionais UNIX® like. Ambos são desenvolvidos por projetos não comerciais (é claro que isso não se aplica a muitas outras distribuições Linux). Na próxima seção, vamos dar uma olhada no BSD e compará-lo com o Linux. As descrições se aplicam mais ao FreeBSD, que somatiza uma média estimada de 80% das instalações de sistemas BSD, mas as diferenças pro NetBSD, pro OpenBSD e pro DragonFlyBSD são pequenas.

4.1 Quem é dono do BSD?

Nenhuma pessoa ou corporação é dona do BSD. Ele é criado e distribuído por uma comunidade de contribuidores altamente técnicos em todo o mundo. Alguns dos componentes do BSD são projetos Open Source independentes e gerenciados por mantenedores de projetos distintos.

4.2 Como o BSD é desenvolvido e atualizado?

Os kernels do BSD são desenvolvidos e mantidos seguindo o modelo de desenvolvimento do Open Source. Cada projeto mantém uma “árvore de código fonte” publicamente acessível sob o Sistema de Versões Concorrentes (CVS), que contém todos os arquivos fontes do projeto, incluindo documentação e outros arquivos acidentais. O CVS permite que usuários façam “check out” (em outras palavras, extrair uma cópia) de qualquer versão desejada do sistema.

Um grande número de desenvolvedores ao redor do mundo contribui para as melhorias do BSD. Eles são divididos em 3 tipos:

Esse modelo se diferencia do Linux em inúmeras maneiras:

  1. Não existe uma pessoa em especial que controla o conteúdo do sistema. Na prática, essa diferença é sobretaxada, considerando que o Arquiteto Principal pode solicitar que códigos sejam retirados do sistema, e que até mesmo o projeto Linux tem várias pessoas autorizadas a fazer modificações.

  2. Por outro lado, existe um repositório central, um lugar único onde os fontes inteiros do sistema operacional podem ser encontrados, incluindo todas as versões anteriores.

  3. Os projetos BSD mantém um “Sistema Operacional” completo, não apenas o kernel. Essa distinção é marginalmente proveitosa: nem o BSD nem o Linux são úteis sem aplicações. As aplicações usadas sob BSD são frequentemente as mesmas aplicações usadas sob Linux.

  4. Como resultado da manutenção formalizada de uma única árvore CVS do código fonte, o desenvolvimento do BSD é limpo, e é possível acessar qualquer versão do sistema por seu número de lançamento (release) ou por data. O CVS ainda oferece manutenção incremental ao sistema: por exemplo, o repositório do FreeBSD é atualizado em média 100 vezes por dia. A maioria dessas alterações é de pequena ordem.

4.3 Releases BSD

O FreeBSD, o NetBSD e o OpenBSD oferecem o sistema em três “versões (releases)” diferentes. Como no Linux, os releases são identificados por um número, como 1.4.1 ou 3.5. Em adição, o número da versão tem um sufixo, indicando seu propósito:

  1. A versão de desenvolvimento do sistema é chamada de CURRENT. O FreeBSD relaciona um número ao CURRENT, por exemplo, FreeBSD 5.0-CURRENT. O NetBSD usa um esquema de denominação um pouco diferente, adicionando um sufixo com uma letra única que indica modificações nas interfaces internas, por exemplo NetBSD 1.4.3G. O OpenBSD não adiciona números (“OpenBSD-current”). Todo novo desenvolvimento no sistema vai nesse branch.

  2. Em intervalos regulares, entre duas a quatro vezes por ano, os projetos lançam uma nova versão de RELEASE do sistema, que é disponibilizado em CD-ROM e por download gratuíto em sítios de FTP, por exemplo OpenBSD 2.6-RELEASE ou NetBSD 1.4-RELEASE. A versão do RELEASE é destinada a usuários finais e é a versão normal do sistema. O NetBSD oferece ainda patch releases (releases de correções) com um terceiro dígito, por exemplo, NetBSD 1.4.2.

  3. Conforme os problemas são encontrados em uma versão RELEASE, eles são corrigidos, e as correções são adicionadas à árvore CVS. No FreeBSD a versão resultante é chamada de STABLE, enquanto que no NetBSD e no OpenBSD elas continuam sendo chamadas de versão RELEASE. Novas características menores também podem ser adicionadas nesse branch depois do período de testes no CURRENT.

Em contraste, o Linux mantém duas árvores de código separadas: a versão estável e a versão de desenvolvimento. A versão estável tem ainda um número menor de versão, como 2.0, 2.2 ou 2.4. Versões em desenvolvimento tem o número menor ímpar, como 2.1, 2.4 e 2.5. Em cada caso, a versão é ainda seguida de um número posterior designando o release exato. Em adição, cada vendedor de Linux coloca suas próprias aplicações e utilitários à nível de usuário, portanto o nome de sua distribuição também é importante. Cada distribuição do vendedor ainda é acrescida de seu próprio número, então a descrição completa seria algo parecido com “TurboLinux 6.0 com kernel 2.2.14”

4.4 Quais são as versões disponíveis do BSD?

Em contraste com as numerosas distribuições Linux, existem apenas quatro BSDs de código livre. Cada projeto BSD mantém sua própria árvore de código fonte e seu próprio kernel. Na prática, as divergências entre o código à nível de usuário parece ser ainda menor entre os projetos BSD do que entre os vários Linux.

É difícil categorizar os objetivos de cada projeto: as diferenças são bastante subjetivas. Basicamente,

Existem ainda dois sistemas operacionais BSD UNIX adicionais que não são de código livre, o BSD/OS e o Mac OS® X da Apple:

4.5 Como a licença BSD se diferencia da licença Pública GNU?

O Linux está disponível sob a Licença Pública Geral GPL (GPL), que foi planejada para eliminar o software proprietário (de fonte fechada). Em particular, qualquer trabalho derivado de um produto lançado sob a GPL também deve oferecer seu código fonte, caso seja requerido. Em contraste, a licença BSD é menos restritiva: distribuições apenas binárias são permitidas. Isso é particularmente atrativo para aplicações acopladas (embedded).

4.6 O que mais eu deveria saber?

Considerando que um número menor de aplicações está disponível para o BSD do que para o Linux, os desenvolvedores do BSD criaram um pacote de compatibilidade Linux, que permite que programas Linux sejam executados sob BSD. O pacote inclui modificações no kernel, de forma a possibilitar as corretas chamadas de sistemas Linux, e arquivos de compatibilidade Linux, como a biblioteca C. Não existe diferença notável na velocidade de execução entre aplicações Linux rodando em uma máquina Linux e aplicações Linux rodando em uma máquina BSD de mesma velocidade.

A natureza “tudo do mesmo fornecedor” dos sistemas BSD implica na maior facilidade de atualização do que frequentemente acontece no caso do Linux. Os BSD oferecem atualizações de versões de bibliotecas oferecendo módulos de compatibilidade com versões mais antigas de bibliotecas, dessa forma é possível rodar binários que existem há vários anos sem o menor problema.

4.7 Qual eu devo usar, BSD ou Linux?

O que isso tudo significa na prática? Quem deve usar BSD? Quem deve usar Linux?

Essa é uma pergunta muito difícil para se responder. Aqui estão algumas considerações:

4.8 Quem oferece suporte, serviços e treinamento para o BSD?

A BSDI / FreeBSD Mall, Inc. têm fornecido contratos de suporte FreeBSD no mercado a quase uma década.

Em adição, cada um dos projetos tem uma lista de consultores que podem ser contratados: FreeBSD, NetBSD, e OpenBSD.

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.