
Muitas comparações se têm feito entre os BSD e o Linux. Nas linhas seguintes, falarei das principais diferenças entre estes dois sistemas.
Este artigo é inspirado em FreeBSD vs Linux: 20 Things To Know About Both The System.
1. FreeBSD é um Sistema Operativo; Linux, não.
Esta é a principal diferença entre o FreeBSD e o Linux.
Enquanto que o FreeBSD é um sistema operativo completo (contém um kernel e ferramentas). O Linux não é. O Linux é apenas um kernel; só so “torna” um sistema operativo depois de incluído numa distribuição (é este o nome técnico). Existem várias distribuições de Linux, nomeadamente, Red Hat, Debian, Arch, etc., que incluem diferentes utilitários e aplicações.
O FreeBSD, por outro lado, é fornecido sempre com as mesmas ferramentas e métodos de configuração.
2. Origens
Conforme foi detalhado nas minhas publicações anteriores sobre a história do FreeBSD (Breve História do FreeBSD: parte 1 e Breve História do FreeBSD: parte 2), as origens do FreeBSD remontam a 1977.
Foi nesse ano que Bill Joy liderou a equipa que desenvolveu o primeiro BSD (iniciais de Berkeley Software Distribution).
O BSD sofreu várias actualizações e, após alguns atropelos com direitos de autor (detidos pela AT&T), foi lançada a versão 4.4BSD-Lite2, que não sofria de nenhum problema. Enquanto que o FreeBSD 1.0 era baseado no 386BSD, por sua vez, baseado no 4.4BSD, o FreeBSD 2.0 foi baseado no 4.4BSD-Lite2.
Já o Linux foi desenvolvido por Linus Torvalds, um estudante de Informática na Universidade de Helsínquia, na altura, com base no MINIX, um clone do UNIX, compatível a nível de chamadas ao sistema operativo com o Seventh Edition UNIX). Inicialmente foi pensado como sendo apenas um projecto académico (nem mesmo o próprio Linus Torvalds suspeitava o êxito que o Linux veria a ter), mas rapidamente, graças à colaboração da comunidade, viria a espalhar-se e a tornar-se um dos sistemas operativos mais usados nos dias que correm.
No entanto, o Linux é apenas um kernel, pelo que precisa de ferramentas; para complementar o Linux, Torvalds escolheu as ferramentas do projecto GNU. O projecto GNU que, embora, nos primórdios do Linux, tinha ferramentas, mas não tinha um kernel. A junção das ferramentas GNU com o kernel Linux resultaram no GNU/Linux.
3. Desenvolvimento
O desenvolvimento do Linux é, hoje em dia, da responsabilidade da Linux Foundation. Até há poucos meses, o desenvolvimento era feito por várias pessoas da comunidade e as alterações aprovadas, ou não, por Linus Torvalds.
O desenvolvimento do FreeBSD é feito por uma equipa interna à FreeBSD Foundation que, ocasionalmente, aceita sugestões da comunidade. De tempos a tempos, é lançada uma nova versão do FreeBSD completo com todas as suas ferramentas.
4. Licença
Também a licença de uso do FreeBSD e do Linux são diferentes.
O Linux, como dito atrás, usa a GNU General Public License (texto completo aqui, em inglês).
O FreeBSD usa a chamada Licença BSD, muito mais simples e muito menos restritiva que a GPL.
Muito resumidamente, ambas promovem a distribuição do código fonte das aplicações e a concepção de produtos derivados; no entanto, enquanto a GPL obriga a que trabalhos derivados sejam licenciados também com a GPL, a licença BSD não obriga à distribuição do código fonte derivado.
É maioritariamente por esta razão que existem tantos produtos baseados no FreeBSD que muita gente nem sabe, como, por exemplo, a Sony Playstation, o macOS, os routers Juniper, etc.
5. Pacotes de software
Também neste aspecto, como não podia deixar de ser, os dois são diferentes.
No Linux, o software é instalado de formas diferentes, dependendo da distribuição. As distribuições Debian e derivadas (Ubuntu, Mint, etc.) usam o Debian Package Manager (dpkg); as distribuições baseadas em Red Hat (Red Hat Enterprise Linux, Oracle Linux, SuSE, CentOS, Fedora, etc.) usam o Red Hat Package Manager (rpm)
O FreeBSD, por outro lado, usa dois métodos diferentes para instalar software, apesar da gestão do software instalado ser feita com o mesmo utilitário (pkg). Um desses métodos de instalação consiste em pacotes de software pré-compilados; o outro é a árvore de ports. A árvore de ports permite a fácil instalação de software externo ao FreeBSD, mas com a vantagem de ser compilado a partir do código fonte. Isto permite que se instalem os pacotes de software com as configurações que queremos, ao invés de usar as opções de quem criou o pacote pré-compilado.
6. Shell
Desde quase o início, as distribuições de Linux são fornecidas com a shell BASH.
Já o FreeBSD instala por omissão a tcsh (T C Shell) para o utilizador root e a sh para os utilizadores normais. A sh é a evolução da Bourne Shell, a shell que foi criada com o sistema UNIX.
7. File system
Apesar de, mais uma vez, ser muito semelhante, a organização dos ficheiros no disco apresenta algumas diferenças.
O FreeBSD adopta uma organização muito igual ao BSD original, e divide o sistema base dos pacotes de terceiros; os binários do sistema base ficam instalado em /usr/bin e os pacotes de terceiros, em /usr/local.
No Linux, não costuma haver essa distinção, precisamente porque mesmo o sistema base não faz parte do Linux, propriamente dito.
8. Estabilidade
Em termos de estabilidade do sistema, aqui ganha o FreeBSD. Como este é desenvolvido por uma equipa fechada, e inclui o sistema operativo completo, é mais estável, na generalidade, que qualquer distribuição de Linux.
Além disso, o FreeBSD mantém a filosofia do BSD, privilegiando a estabilidade do sistema em detrimento de novas funcionalidades.
9. ZFS
Este é mais um ponto em que o FreeBSD ganha ao Linux.
Devido ao licenciamento do ZFS, é mais fácil integrá-lo no FreeBSD que no Linux. Aliás, o FreeBSD já tem suporte para este file system desde a versão 7.0.
O suporte do Linux para o ZFS é conseguido à custa de módulos externos ao kernel, e, como tal, não está tão bem integrado como em FreeBSD.
10. Documentação
A documentação costuma ser o ponto fraco do software open source. No entanto, a documentação do FreeBSD é muito completa e actualizada. Aliás, a documentação é actualizada ao mesmo tempo que o sistema, sendo que a documentação é parte integral de cada versão do FreeBSD.
Já no Linux, esta documentação formal é mais escassa, mais dispersa e mais desorganizada.
11. Comunidade
Um dos receios de quem não conhece ou conhece mal tanto o Linux como o FreeBSD é a possível falta de suporte da comunidade. Na realidade, apesar de, aparentemente, haver mais páginas na Internet dedicadas a Linux, a verdade é que a comunidade dos BSD (dos três principais, nomeadamente, o FreeBSD, NetBSD e OpenBSD) é bastante grande.
A comunidade de utilizadores de Linux é ainda maior, mas o número de diferentes distribuições de Linux torna essa comunidade mais fragmentada que a do FreeBSD.
12. Segurança
Tendo sido concebidos de raiz de acordo com os conceitos do UNIX, tanto o Linux como o FreeBSD são bastante seguros.
Aliás, é mais fácil encontrar problemas de segurança com software que não faz parte do sistema base, no FreeBSD, que no próprio sistema operativo.
Conclusões
De um modo geral, o Linux é muito semelhante ao FreeBSD, tanto mais que se baseiam na filisofia do UNIX.
O FreeBSD tem uma herança mais madura, visto que deriva directamente do UNIX e do BSD original.
Já o Linux (o sistema operativo, não apenas o kernel) foi derivado do MINIX, as suas ferramentas, do projecto GNU, por isso, não há uma tão boa integração entre o kernel e o sistema base.
No entanto, qualquer um deles tem particularidades que lhes permite responder às exigências do Mundo da Internet.