Você está na página 1de 12

Qual BSD escolher?

Há basicamente 3 grandes sistemas operacionais UNIX-like que contém a sigla BSD em seus
nomes: FreeBSD, NetBSD e OpenBSD.
Neste post, vamos compreender as semelhanças e as diferenças entre algumas das distribuições
BSD e os tipos de aplicações em que cada uma se encaixa.
O Berkeley Software Distribution, ou apenas BSD, historicamente, era um sistema operacional
Unix, desenvolvido e distribuído pela Universidade da Califórnia, Berkeley — entre 1977 e 1995.
Object
Object12
10
11
1
2
3
4
5
6
7
8
9

Veja como ele sempre esteve associado a projetos de grande porte, na história da computação.
Foi desenvolvido dentro de um departamento de pesquisas da universidade, chamado Computer
Systems Research Group, ou CSRG. Inicialmente, este departamento tinha a tarefa de se dedicar a
aperfeiçoar o Unix da AT&T, de onde o BSD se originou.

O CSRG era patrocinado pela Defense Advanced Research Projects Agency ou Agência
de Projetos de Pesquisa Avançada de Defesa — ou simplesmente DARPA. Esta agência
foi responsável pelo desenvolvimento da ARPANET, precursora do que, hoje, se
conhece como a Internet.

Atualmente, o termo “BSD” é usado genericamente para se referir a qualquer um dos descendentes
do sistema operacional original — o BSD Unix ou Berkeley Unix.
Seus descendentes formam uma família de sistemas operacionais importantes, de desenvolvimento
ativo e largamente usados.
Historicamente, são ramificações do AT&T Unix, tendo compartilhado seu código e design até o
início da década de 90.
Em função de algumas disputas judiciais e do desejo dos desenvolvedores do BSD em manter seu
código livre (em liberdade), o BSD se separou de sua ascendência. Todo o código proprietário foi
substituído e, em 1992, as primeiras versões livres já estavam sendo disponibilizadas.
A última versão do BSD original, de Berkeley, foi o BSD 4.4-Lite Release 2, em 1995, com a
dissolução CSRG.
A partir daí, as distribuições derivadas adquiriram vida própria e independente, como iremos ver.
Além do FreeBSD, OpenBSD e do NetBSD, outros importantes projetos derivaram da
versão livre do BSD — tais como o Darwin, código TCP/IP usado no Windows NT e
boa parte do código que sustenta os atuais sistemas operacionais da Apple.

Os sistemas da família BSD são muito semelhantes, mas não são iguais. Tem propósitos e propostas
diferentes.
Mesmo no universo GNU/Linux, há amplo espaço para o uso de código BSD, Grandes
distribuições, como a Debian, podem ser baixadas e instaladas com o kernel do FreeBSD ou
NetBSD.
O NetBSD
Muito similar ao FreeBSD, com código em comum, seu maior objetivo é oferecer um sistema
operacional que pode ser instalado em qualquer plataforma de hardware.
O objetivo é obter a máxima portabilidade possível.
Você pode rodar o NetBSD no VAX, dispositivos PocketPC e em servidores de ponta Alpha. A lista
segue com as plataformas de hardware ARM, PA-RISC, 68k, MIPS, PowerPC, SH3, SPARC,
RISC-V, x86 etc.

A portabilidade do NetBSD é auxiliada pelo uso de interfaces de camadas de abstração do


hardware, que dá acesso ao nível mais baixo dos componentes físicos do sistema — tais como bus
de entrada/saída ou a DMA.
O uso desta camada de portabilidade permite que um driver possa ser usado em diversas
plataformas e reduz as horas de trabalho para portar o sistema.
Em outros sistemas operacionais, o código do driver precisa ser reescrito para cada arquitetura
nova.
Na versão 7.x, o NetBSD tem suporte às mais atuais arquiteturas e plataformas de desenvolvimento:

• 256 CPUs da arquitetura 64 bits da AMD


• placas de múltiplos processadores ARM
• dentre as placas ARM: Raspberry Pi 2, ODROID-C1, BeagleBoard, BeagleBone,
BeagleBone Black, MiraBox, Allwinner A20,
A31: (Cubieboard2, Cubietruck (Cubieboard3), Banana Pi etc.), Freescale i.MX50, i.MX51:
(Kobo Touch, Netwalker), Xilinx Zynq: (Parallella, ZedBoard) etc.
• kernel scripting em Lua
• GCC 4.8.4
• O NetBSD tomou emprestado do OpenBSD os sysctls, para impedir ataques DoS sob
protocolo IPv6
• tomou emprestado o port do Linux 3.15 DRM/KM5, para adicionar suporte a dispositvos
gráficos atuais da Intel e da AMD (Radeon)
Enfim o NetBSD, de acordo com o site oficial, deve a segunda parte de seu nome ao BSD 4.4-Lite e
ao lendário BSD386. A primeira parte é uma referência a Internet, como infraestrutura fundamental
para seu crescimento.

O OpenBSD
O foco deste membro da família é a segurança, o que inclui ter um código o mais correto possível.
As políticas de segurança da distribuição manda revelar publicamente as falhas descobertas — o
que permite às instituições que dependem dele tomar decisões para neutralizar as potenciais
ameaças o mais rápido possível.

Esta política é conhecida como full disclosure e inclui outras práticas:

• auditorias exaustivas do código, em busca de bugs e possíveis falhas que possam


comprometer a segurança
• recursos de segurança variados, como a tecnologia de proteção de página W^X e uso pesado
de randomização
• uma filosofia de segurança por padrão ou segurança desde o início (ou secure by default),
que mantém desligados todos os serviços não essencial para o funcionamento do sistema. As
configurações iniciais são as mais básicas e enxutas possível
• criptografia integrada

O projeto OpenBSD deu origem a outros projetos importantes, tais como o OpenSSH, OpenNTPD,
OpenBGPD, OpenSMTPD, PF, CARP, e LibreSSL. Muitos destes, projetados para substituir
alternativas restritivas.

O DragonFly BSD
O principal objetivo do projeto DragonFly é oferecer suporte nativo ao clustering dentro kernel.
Este tipo de funcionalidade requer um framework sofisticado de gestão do cache para espaços de
nomes do sistema de arquivos, além de espaços de arquivos e espaços de máquinas virtuais.
O DragonFly BSD tem a habilidade de permitir que programas altamente interativos rodem em
múltiplas máquinas com garantia de coerẽncia de cache em todos os aspectos.

Em outras palavras, o foco é a obtenção de máxima escalabilidade — o que inclui ser fácil de
entender e permitir o desenvolvimento para infraestruturas de multiprocessadores.
O projeto é um fork do FreeBSD 4.8. A esta época, os desenvolvedores desejavam promover
mudanças radicais na arquitetura do kernel e introduzir suporte a plataformas de
multiprocessamento simétrico.
Como objetivo de longo prazo, prover imagem transparente single system em ambientes de clusters.
Originalmente, havia suporte a plataformas IA-32, x86-64 (ou AMD64). Contudo, a partir da versão
4.0, o DragonFlyBSD abandonou o suporte a IA-32 para se concentrar apropriadamente em
implementações SMP.
Trata-se de um dos mais novos membros da família, estabelecido em 2004.
O FreeBSD
Este é o BSD mais conhecido, atualmente. O foco desta distribuição é a performance. Ao mesmo
tempo, ela se equilibra entre a portabilidade entre múltiplas plataformas, a segurança e a facilidade
de uso.

Se “qualquer BSD” está bom para você e não houver necessidades específicas, esta é uma ótima
distribuição.
Há muitas vantagens em fazer uso de sistemas operacionais ou distribuições genéricas —
principalmente quando se é novato.
O fato de ser o BSD mais documentado, também ajuda no aprendizado e na implementação de
projetos envolvendo esta plataforma.

O PC-BSD
Derivado direto do FreeBSD, esta é uma versão voltada para quem gostaria de ter uma interface
mais facilitada de instalação e que prefere usar o ambiente gráfico.
O PC-BSD pode ser uma opção mais interessante para quem deseja aprender a usar o sistema
operacional BSD, mas não quer abrir do ambiente gráfico desde o início.

Como o nome dá a entender, é voltado para instalação em PCs — desktops e notebooks, por
exemplo.
Embora você possa tê-lo instalado com o KDE, XFCE, Mate ou qualquer outro ambiente com o
qual você já esteja acostumado no Linux. As próximas versões oferecem o Lumina, como padrão.

Conclusão
Há ainda muito o que se falar sobre cada uma destas ramificações do BSD. Cada qual tem sua
história.
O próprio BSD e o UNIX têm histórias muito ricas e densas.
Para ser justo, ainda há outros BSD disponíveis e que vale a pena conhecer.
Entre os que são voltados para o mesmo público do PC-BSD, citam-se o GhostBSD e o
DesktopBSD.
Há o caçula da família, o Bitrig (2014) — com “foco em ferramentas e plataformas modernas”.
O BSD é grande e, tal como o Linux, não cabe em um único artigo ou verbete de enciclopédia.
Não esqueça de dar uma olhada nos links (no texto e na seção de referências, abaixo), para se
aprofundar mais e conhecer melhor o universo BSD.

Referências
https://en.wikipedia.org/wiki/Berkeley_Software_Distribution.
https://en.wikipedia.org/wiki/Comparison_of_BSD_operating_systems.
http://www.netbsd.org/about/.
https://www.openbsd.org/goals.html.
https://www.dragonflybsd.org/history/.
http://www.pcbsd.org/.
https://lumina-desktop.org/screenshots/.

Mitos sobre o FreeBSD


O FreeBSD e seus derivados não são tão conhecidos quanto algumas distribuições GNU/Linux, tal
como o Ubuntu, Debian, Opensuse etc.
A falta de informações, às vezes, pode nos levar a acreditar em ou a disseminar fatos que não são
verdadeiros sobre um determinado assunto.
Pensando nisto, elaborei este texto (baseado em outros textos) para lançar uma luz mais realista
sobre este excelente sistema operacional, chamado FreeBSD.
Vamos abordar alguns dos mitos mais frequentes sobre o sistema operacional FreeBSD.

O FreeBSD não é UNIX


Para a resposta não soar tão ambígua quanto à questão, vamos esclarecer um fato sobre a palavra
UNIX: é uma marca registrada e você precisa de autorização de seus detentores para usá-la
comercialmente ou não.
Sob o ponto de vista legal, nós não podemos chamar o FreeBSD de UNIX, portanto.
Já sob o ponto de vista tecnológico/técnico, o FreeBSD é tão unix quanto o Solaris, o HP UX etc.

O FreeBSD é ótimo para servidores, mas ruim para desktops e


notebooks
Quando falamos de uso no desktop, queremos um sistema que tenha capacidade, entre outras coisas,
de executar aplicativos e arquivos multimídia.
O fato é que o FreeBSD tem um subsistema de som pleno de recursos.
Seu kernel permite que múltiplas aplicações façam uso dos recursos de áudio simultaneamente e
independentemente, sem qualquer configuração preliminar.
A instalação padrão do FreeBSD já inclui o X.org — o mesmo usado largamente nas várias
distribuições Linux. Portanto, se você já é usuário do KDE, GNOME ou outro ambiente desktop,
nada impede que você os continue usando. Basta instalar.
O PC-BSD é um sistema derivado do FreeBSD que já vem melhor preparado para usuários
iniciantes e possui um sistema de instalação muito mais fácil de usar e, opcionalmente, dispõe de
suporte comercial.

O modelo de desenvolvimento do FreeBSD é fechado


São mais de 400 desenvolvedores ao redor do mundo que detém acesso commit ao repositório.
Muitos destes recebem patches de terceiros (programadores independentes ou que trabalham em
grandes empresas etc.)
É possível ter uma idéia da enorme quantidade de patches e de pessoas que trabalharam e trabalham
para submetê-los fazendo uma busca por “submitted by” nos logs do commit — o número supera 20
mil pessoas.
O projeto tem uma dinâmica democrática. As decisões são tomadas pelas pessoas que trabalham
nele.
Em caso de discordâncias, há um grupo de desenvolvedores que decide o rumo a ser tomado. Este
grupo é eleito a cada 2 anos. Todo mundo que trabalha, enviando código para o projeto pode votar.

O FreeBSD é apenas um OS X sem a parte boa…


Isto é tão falso quanto dizer que o OS X é apenas o FreeBSD com uma GUI bonitinha.
O fato é que os dois sistemas operacionais têm muito código (e desenvolvedores) em comum.

Por exemplo, muitos dos utilitários e a própria biblioteca C, no OS X são derivados de versões
existentes no FreeBSD.
Algumas vezes o fluxo de desenvolvimento do código toma direções diferentes em um sistema
operacional, em relação ao outro.
O FreeBSD 9.1 e suas versões posteriores incluem um stack e um compilador C++ originalmente
desenvolvidos para o OS X. Boa parte deste trabalho foi feito por pessoal da Apple.
Os dois sistemas operacionais são “parentes muito próximos”, tẽm uma quantidade razoável de
colaboração mútua… mas não são a mesma coisa.

A parte boa do FreeBSD vem do Solaris


Bem. O FreeBSD adotou dois recursos espetaculares do OpenSolaris: o DTrace e o ZFS.
O sistema de arquivos ZFS, em particular, tem o foco e a atenção de muitos desenvolvedores
envolvidos com o FreeBSD — o que inclui o pessoal da iXsystems, uma empresa que dá suporte ao
desenvolvimento do FreeNAS e comercializa dispositivos NAS baseados no FreeBSD.
Existe um trabalho muito próximo entre os contribuidores do FreeBSD e os desenvolvedores do
Illumos, um fork de código aberto do sistema operacional Unix Solaris, no sentido de aprimorar
estes dois recursos.
Embora o ZFS seja importante dentro do FreeBSD, ele é uma peça relativamente pequena dentro do
sistema, como um todo.
Veja alguns números.
O ZFS e o DTrace, juntos, não somam 4% de todo o código do kernel — e este não chega a 10% do
código do sistema básico do FreeBSD.
Faça as contas: o código destes recursos relevantes que vieram do Solaris, não chega a 0,4% de todo
o FreeBSD.

No FreeBSD, tenho que compilar tudo do código fonte


A coleção de ports do FreeBSD é uma maneira muito poderosa de instalar softwares e permite que
você personalize opções para uma grande variedade de programas e bibliotecas de terceiros.
Compilar programas a partir do código fonte, pode ser algo muito simples — mas não é o único
jeito de se instalar no FreeBSD.
Você sempre tem a opção de instalar softwares de pacotes binários.
O projeto pkgng tem adicionado novos formatos e ferramentas de empacotamento, o que resulta em
um conjunto moderno de aplicativos e utilitários para gestão de pacotes binários.

O FreeBSD é um UNIX dos anos 90 (ou 80)


Se você acha que o UNIX é velho demais para você, precisa saber a idade de outro sistema
operacional muito usado: os primórdios do Windows datam da década de 60.
Softwares antigos, com desenvolvimento ainda ativo, em geral, são softwares estáveis e
de boa qualidade.
Softwares ganham estabilidade e maturidade com o passar do tempo.
O FreeBSD tem um longa história e é descendente linear do UNIX original, que fazia parte da
Berkeley Software Distribution. E ele tem evoluído durante todo este tempo.
Existem razões importantes para o fato de o UNIX ter se tornado tão popular.
Visualmente, o FreeBSD pode usar a CLI (Command Line Interface) ou uma GUI (Graphics User
Interface) moderna GNOME, KDE etc.

O FreeBSD não tem drivers para todos os dispositivos


Ninguém tem.
O problema de falta de drivers para algum dispositivo é enfrentado por todos os sistemas
operacionais — o que inclui o Windows.
Por outro lado, ninguém liga para a quantidade de drivers disponíveis para seu sistema operacional.
O que importa é que tenha aqueles necessários para fazer funcionar adequadamente o seu hardware.
Alguns fabricantes são omissos para produzir drivers para seus produtos funcionarem no FreeBSD e
no Linux.
O problema poderia ser facilmente resolvido se liberassem as especificações para a comunidade de
desenvolvedores. Até nisso, são omissos e descomprometidos com os clientes.
A divisão de placas gráficas AMD/Radeon é um dos casos mais notórios desta omissão, tanto para
FreeBSD, quanto para Linux.

Existem opções, contudo, de outros fabricantes para placas de vídeo, placas de redes, hardware de
som etc.
Usar o FreeBSD e cobrar os fabricantes a desenvolver drivers para a sua plataforma é a melhor
forma de ajudar.

Depois da versão 4.x o sistema decaiu


O pessoal do projeto FreeBSD tem muito orgulho da série 4.x. De fato, a estabilidade é uma de suas
marcas.
Mas, o que aconteceu depois?
Muitos a continuaram usando por anos.
As séries 5.x foram marcadas pela introdução de um sistema de multithreading aprimorado.
Esta transição envolveu a substituição de dispositivos de trava ao redor do kernel — uma tarefa
complexa, entre outras coisas.
Este foi um tipo de trabalho que, além de muito intenso, é fácil dar errado.
Paralelamente, a série 5.x foi lançada com duas implementações de threading
As primeiras duas releases da série eram “developers only“, ou seja, não estavam prontas para
sistemas em produção.

Já a versão 5.2 foi lançada para um público mais amplo e falhou em satisfazer as expectativas da
base de usuários do FreeBSD.
O resultado é que um grande número de usuários se manteve na (ou voltou para a) série 4.x,
enquanto outros optaram por diferentes sistemas operacionais.
Esta versão representa uma lição dolorosa para o projeto, da qual houve um importante
aprendizado.
A série seguinte, 6.x, recobrou a estabilidade pela qual a 4.x ficou conhecida.
Na série 7.x recuperou-se ganhos de performance em sistemas de processamento único.
Já na série 8.x, os benchmarks de terceiros mostravam que o FreeBSD escalava melhor que outros
SOs em sistemas multiprocessados.
Desde então, a estabilidade e a performance permanecem como objetivos principais dos
desenvolvedores. O que não tem impedido as substanciais melhorias nos subsistemas de som, no
ZFS, no DTrace, no journaling do UFS, entre outros.

Falta aplicativos para FreeBSD


A ports collection do FreeBSD contém, atualmente, mais de 23.500 peças de software.
Boa parte destes softwares roda nativamente sobre o FreeBSD.
O importante é que tenha os softwares que você precisa.

Outros softwares são OS-agnostic ou seja, não “se importam muito” com o sistema operacional
sobre o qual estão rodando e, às vezes, pedem poucas mudanças para funcionar adequadamente.
Há aplicativos que são executados sobre algum tipo de emulação. Por exemplo, os binários para
Linux podem ser executados sobre uma camada Linux ABI, onde as system calls do Linux são
traduzidas para suas equivalentes no FreeBSD.
O versão Linux do plugin Flash roda sobre um browser nativo do FreeBSD, usando o
NSPluginWrapper.
Você pode, ainda usar o WINE para rodar aplicativos Windows.

O FreeBSD não tem suporte a virtualização


O FreeBSD 9 tem suporte, quando executado como hóspede Xen, tanto na arquitetura x86, quanto
na x86-64 — o que inclui o Amazon EC2.
Após trabalho conjunto da Microsoft, NetApp e Citrix, passou a ser possível rodar o FreeBSD sobre
o hypervisor Microsoft Hyper-V.
Há várias versões do FreeBSD disponíveis na lista do VMware ou do Virtualbox — e você pode
rodar o próprio Virtualbox de dentro do FreeBSD.
• Experimente o FreeBSD no QEMU

O FreeBSD 10 age como sistema operacional hospedeiro para bhyve ou BSD Hypervisor, o que dá
uma variedade maior de opções de máquinas virtuais para você.
Finalmente, se você não precisa de virtualização completa, ainda pode usar o jail subsystem para
rodar userlands isolados do FreeBSD — ou, mesmo, userlands Linux, através da camada Linux
ABI, tudo sobre um único kernel FreeBSD.

A licença BSD permite que as empresas usem seu código e não


contribuam de volta
A licença permite que pegue código do FreeBSD e faça o que quiser com ele, contato que não os
processe de volta ou faça de conta que o código é seu.
Sem a obrigação legal de compartilhar, é possível usar o código em qualquer lugar que você quiser.
Muitas empresas, de fato, tiram código do FreeBSD em benefício próprio e nunca dão nada em
troca. São livres para fazer isto.
Muitas outras empresas não tem este comportamento, contudo.

Conclusão
Espero, com estes fatos, lançar uma luz sobre o projeto e a maravilhosa comunidade do FreeBSD.
Espero, ainda, ajudar a desconstruir mitos bobos que impedem que alguns usuários experimentem
esta belíssima plataforma e a empreguem e seus projetos.

Referências
https://wiki.freebsd.org/Myths.
https://www.freebsd.org/advocacy/myths.html.

Você também pode gostar