FreeBSD é um sistema operacional livre, desenvolvido inicialmente na Universidade da California, em Berkeley.
Com uma licença menos restritiva do que a GPL, a licença BSD acaba sendo muito atrativo para empresas.
A apresentação visa fazer uma introdução ao que é o FreeBSD, bem como explicar alguns conceitos, fatos e algumas comparações e paralelos com o Linux.
Material de evangelização ;)
2. 2/51
About me
Juliano Atanazio
● Graduated in Computer Science for Business Management (Informática para Gestão de
Negócios), FATEC Zona Sul, São Paulo – SP;
● PostgreSQL DBA;
● Linux admin;
● Instructor (PostgreSQL);
● LPIC-1, LPIC-2 Certified;
● Linux user since 2000;
● Free Software enthusiast;
● Favorite technologies: PostgreSQL, Linux, Python, Shell Script, FreeBSD, etc...;
● Headbanger :) m/
3. 3/51
Sobre o FreeBSD
● FreeBSD é um sistema operacional avançado para várias
plataformas que foca em recursos, velocidade e estabilidade;
● É derivado do BSD, a versão de UNIX® desenvolvida na
Universidade da Califórnia, em Berkeley;
● Código-fonte aberto;
● Sistema operacional para propósitos gerais, mas com maior
direcionamento para servidores;
4. 4/51
Sobre o FreeBSD
● Lema: “O Poder para Servir” (“The Power to Serve”);
● É desenvolvido e mantido por uma grande comunidade;
● Kernel monolítico com módulos carregáveis dinamicamente;
● Sistema operacional completo, ou seja kernel e userland.
5. 5/51
Sistema Operacional Completo
● O FreeBSD é um sistema operacional completo, pois não é
somente seu kernel, mas sim seu kernel e toda sua *userland;
● Seu kernel e sua userland são mantidos pelo
FreeBSD Core Team.
* “Userland refere-se a um espaço de aplicações.
Típico de sistemas operacionais Unix ou tipo Unix, sendo um ambiente externo ao núcleo e protegido. Mais
especificamente pode referir-se a um conjunto de bibliotecas providas pelo sistema operacional para
executar entrada/saída ou outra interação com o núcleo e é usada geralmente dentro do escopo do espaço
ou ambiente de usuário. Pode referir-se também a componentes de sistema não relacionados com o
núcleo, como shell ou outros utilitários para manipular o sistema de arquivos.”
Wikipedia. Disponível em: <https://pt.wikipedia.org/wiki/Userland>.
Acesso em 17 de agosto de 2016.
6. 6/51
Licença
A licença adotada pelo FreeBSD é a BSD, que significa Berkeley
Software Distribution.
É um modelo de licença que tem a seguinte estrutura:
● Avisos de direitos autorais;
● 3 cláusulas;
● Aviso Legal;
Há um template no site opensource.org que pode ser usado
para quem resolver adotar esse tipo de licença.
7. 7/51
Licença
As 3 (três) Cláusulas da Licença BSD
1) “As redistribuições do código-fonte devem manter o aviso de
direitos autorais (copyright) acima, esta lista de condições e o
seguinte aviso legal.”
2) “Redistribuições em forma binária deve reproduzir o aviso de
direitos autorais (copyright) acima, esta lista de condições e o
seguinte aviso legal na documentação e / ou outros materiais
fornecidos com a distribuição.”
3) “Nem o nome do detentor dos direitos autorais nem os nomes
de suas contribuições podem ser usados para endossar ou
promover produtos derivados deste software sem permissão
prévia por escrito.”
8. 8/51
Comunidade
Sites Principais
Site Oficial: https://www.freebsd.org/
FreeBSD Foundation: https://www.freebsdfoundation.org/
Informações Gerais da Comunidade:
https://www.freebsd.org/community.html
Listas de Discussão
Global: http://www.freebsd.org/community/mailinglists.html
Comunidade Brasileira e Fórum: http://www.fug.com.br
9. 9/51
Comunidade
Eventos
BSDCan: conferência anual em Ottawa, Canadá:
http://www.bsdcan.org/
EuroBSDCon: conferência anual na Europa:
http://www.eurobsdcon.org/
AsiaBSDCon: conferência anual na Ásia:
http://asiabsdcon.org/
10. 10/51
FreeBSD Foundation
Organização com sede nos EUA, sem fins lucrativos dedicada a
apoiar e promover o Projeto FreeBSD e a comunidade mundial.
A Fundação compra hardware para melhorar e manter a
infraestrutura FreeBSD e publica artigos e materiais FreeBSD
para promover, educar e advogar para o projeto FreeBSD.
Representa o projeto FreeBSD na execução de contratos,
acordos de licença e outras questões legais que requerem uma
entidade legal reconhecida.
https://www.freebsdfoundation.org/
11. 11/51
Outros BSDs
NetBSD – Prima por portabilidade. É o sistema operacional que
tem a maior gama de arquiteturas de hardware suportadas.
http://netbsd.org/
OpenBSD – Seu maior objetivo como sistema operacional é
oferecer segurança acima de tudo. O time de desenvolvimento
OpenBSD escreveu o ssh e o pf, que foram ambos portados
para o FreeBSD.
http://www.openbsd.org/
DragonFly BSD – Prima por desempenho. É um fork do
FreeBSD 4.8 que tem sido desenvolvido muitos recursos
interessantes para si, incluindo o sistema de arquivos
HAMMER. Diferente do FreeBSD, seu kernel é híbrido.
http://www.dragonflybsd.org/
13. 13/51
Suporte
Assim como ocorre em muitos projetos de Software Livre, o
FreeBSD tem suporte da comunidade e suporte comercial.
Suporte da Comunidade
Funciona por meio de listas de discussão, fóruns, grupos de
notícias, grupos de usuários, canais IRC, a própria documentação
e etc.
https://www.freebsd.org/community.html
14. 14/51
Suporte
Suporte Comercial
São empresas de várias naturezas que podem ser contratadas
para dar suporte pago ao FreeBSD.
Consultorias;
Fornecedores de Hardware;
Provedores de Serviços de Internet;
Fornecedores de Software;
Fornecedores diversos.
https://www.freebsd.org/commercial/
15. 15/51
Documentação
A documentação do FreeBSD é simplesmente uma das melhores
documentações de software que existe. Pode conferir e
comparar! ;)
https://www.freebsd.org/docs.html
FreeBSD Handbook
É a documentação do FreeBSD em forma de tópicos e muito bem
organizada encontrada nas versões:
● Online: https://www.freebsd.org/doc/handbook/
● PDF: http://ftp.freebsd.org/pub/FreeBSD/doc/handbook/book.pdf
16. 16/51
Beastie, o Mascote
Como outros projetos open source, o FreeBSD
tem seu mascote, que é o BSD Daemon, também
conhecido como Beastie, uma pronúncia
distorcida de BSD (em inglês).
Foi criado por Poul-Henning Kamp e por muito
tempo foi utilizado como logo do projeto.
No contexto de sistemas UNIX®, daemons são processos que
rodam em background atendendo várias tarefas sem intervenção
humana.
No sentido geral, daemon é uma forma mais antiga da palavra
demon.
17. 17/51
Beastie, o Mascote
Polêmica
No livro Unix System Administration Handbook, Evi Nemeth
diz sobre daemons:
“Muitas pessoas igualam a palavra ‘daemon’ com a palavra
‘demon’ implicando algum tipo de conexão satânica entre UNIX
e o submundo. Esse é um grande equívoco. ‘Daemon’ é
atualmente uma forma mais velha de ‘demon’; daemons não têm
viés para o bem ou para o mal, mas sim servir para ajudar a
definir o caráter ou a personalidade de uma pessoa. O conceito
grego antigo de ‘daemon pessoal’ foi similiar ao moderno
conceito de ‘anjo da guarda’. ‘Eudaemonia’ é o estado de ser
auxiliado ou protegido por um espírito gentil.” (p 403)
18. 18/51
Beastie, o Mascote
No site brasileiro Mundo FreeBSD há um artigo muito
interessante sobre o tema que vale a pena a leitura para devidas
elucidações e curiosidades para explicar melhor o tema:
O Mascote do FreeBSD é um Demônio?
http://mundofreebsd.com.br/o-mascote-do-freebsd-e-um-demonio/
19. 19/51
O Logo
O atual logo do FreeBSD foi resultado de um
concurso feito em 2005, que o vencedor foi
Anton K. Gural.
O logo FreeBSD e a frase “The Power to
Serve” são marcas registradas da FreeBSD
Foundation.
Todas imagens listadas sob o título “Resource” está disponível
para uso sob a licença da FreeBSD Foundation.
Para maiores informações em como obter permissão para usar o
logo, consulte as diretrizes de uso do logo do FreeBSD (FreeBSD
Logo Usage Guidelines) no site da FreeBSD Foundation.
https://www.freebsd.org/logo.html
20. 20/51
Recursos e Características
● Principais sistemas de arquivos: UFS2 e ZFS (nativo);
● SU+J (Soft Updates with Journaling): Opção de montagem para
UFS2 que deixa o sistema de arquivos mais rápido. Elimina a
necessidade de um fsck em background mesmo em
desligamentos abruptos. Ou seja, desempenho sem abrir mão
de segurança e confiabilidade;
● Instalações no sistema podem ser feitas via compilação (ports)
ou pacotes binários (pkgng);
● Firewalls: Uma completa e poderosa solução provida por 3 (três)
diferentes firewalls que são eles; IPFW, IPFilter e PF. IPFW e
PF destacam-se respectivamente para regras de filtragem e
NAT;
21. 21/51
Recursos e Características
● Emulação Linux: Uma camada de tradução de chamadas de
sistema que permite que binários Linux (sem modificar) rodem
no FreeBSD;
● DTrace: Fornece uma estrutura para rastrear e solucionar
problemas de performance de aplicações ou de kernel no
momento de carga.
● Jails: Virtualização em contêiner nativa, extremamente leve e
performática;
● bhyve: Promissor hipervisor de virtualização total similar ao
KVM;
22. 22/51
Recursos e Características
● Unicidade do projeto: apesar de haver distros baseadas no
FreeBSD os comandos são sempre os mesmos. Sistemas de
empacotamentos (ports e pkgng) funcionam da mesma forma
em qualquer distro derivada;
● CARP (Common Address Redundancy Protocol: Protocolo de
Redundância de Endereço Comum): Permite que múltiplos
hosts compartilhem o mesmo endereço IP e VHID (Virtual Host
ID) para se ter alta disponibilidade para um ou mais serviços.
24. 24/51
Sistema Ports
Ports ou também conhecido como Ports Collection é um sistema
de instalação a partir da compilação do código-fonte.
Dentre seus pontos mais fortes tem-se o desempenho do
software instalado.
Essa instalação é feita de forma padronizada, organizada e com
resolução de dependências.
Através do sistema Ports podemos instalar a versão mais recente
de um determinado aplicativo.
Cada item disponível para esse tipo de instalação é chamado de
port. Atualmente estão disponíveis 26151 ports.
https://www.freebsd.org/ports/
25. 25/51
pkgng
pkg é o atual sistema de gerenciamento de instalação de
pacotes do FreeBSD.
Gerenciamento de pacotes binários com suporte a resolução de
dependências com simples comandos.
Os pacotes têm a extensão .txz que usam a compressão XZ.
https://www.freebsd.org/doc/handbook/pkgng-intro.html
26. 26/51
Shell
O csh é o shell padrão, mas também é possível optar por outros
shells.
Os shells pré instalados são: csh, tsch e sh.
É possível instalar outros shells como: bash, ksh, zsh, fish, etc...
27. 27/51
FreeBSD como Desktop
Apesar de seu direcionamento ser
fortemente direcionado a
servidores, não faltam opções de
interfaces para uso como
desktop:
● Mate;
● Cinnamon;
● KDE;
● Gnome;
● XFCE;
● Lumina;
● Etc...
28. 28/51
FreeBSD & Linux
FreeBSD != Linux
O FreeBSD é descendente do BSD original (386BSD)
desenvolvido na Universidade da California em Berkeley e o
Linux em Helsinki, Finlândia, por Linus Torvalds.
Ainda há quem ache que o FreeBSD é uma distribuição Linux.
São sistemas operacionais Unix like sim, mas sistemas
operacionais distintos.
Cada um tem seu próprio kernel.
29. 29/51
FreeBSD & Linux
O FreeBSD é capaz de rodar binários Linux, por meio de
emulação, não para todos devido a algumas chamadas de
sistema específicas. O Linux não pode executar binários do
FreeBSD.
O Linux é licenciado sob a licença GPL, enquanto o FreeBSD,
como o próprio nome indica, a licença BSD que é mais
permissiva do que a licença GPL.
Devido à mudança de licença do gcc (de GPL v2 para GPL v3),
o FreeBSD utiliza o clang como seu principal compilador, antes
disso ambos utilizavam o gcc, no entanto, é possível instalar o
gcc, se assim for desejado.
30. 30/51
FreeBSD & Linux
Há muito mais organizações / empresas que desenvolvem o
Linux, o que faz com que dentre outras coisas ele tenha uma
abrangência maior para suporte de hardware.
O código e o desenvolvimento do FreeBSD de maneira geral é
mais organizado e conciso, o que resulta em um sistema
operacional mais confiável, seguro e estável.
De forma geral (há exceções) pode-se dizer que para servidores
o FreeBSD é melhor, enquanto que para desktop o Linux é
superior.
31. 31/51
FreeBSD & Linux
Comandos e Tarefas Rotineiras de Sistema
Há muita coisa parecida e muitos comandos que funcionam
exatamente igual em ambos por serem sistemas operacionais
“Unix like”.
No entanto, há conceitos diferentes para se executar comandos
em cada um deles para se ter o mesmo resultado (o desejado,
mas muitas vezes em tela de forma distinta).
32. 32/51
FreeBSD & Linux
Informações de Memória
● Linux
O comando free é o mais utilizado para verificar informações de
memória no Linux:
# free -m
total used free shared buff/cache available
Mem: 7938 4807 2055 44 1074 2843
Swap: 7628 0 7628
33. 33/51
FreeBSD & Linux
Informações de Memória
● FreeBSD
O comando vmstat dá informações gerais:
# vmstat
procs memory page disks faults cpu
r b w avm fre flt re pi po fr sr da0 cd0 in sy cs us sy id
1 0 0 386M 1.8G 333 0 2 0 423 6 0 0 8 1873 134 0 1 99
swapinfo traz informações exclusivas de swap:
# swapinfo -h
Device 1K-blocks Used Avail Capacity
/dev/da0p3 1023956 0B 1.0G 0%
34. 34/51
FreeBSD & Linux
Informações de Memória
● FreeBSD
O utilitário freecolor exibe quanto tem de memória livre:
# freecolor -m
Physical : [#################################..] 96% (1887/1963)
Swap : [###################################] 100% (999/999)
freecolor também pode ter uma saída igual ao free do Linux:
# freecolor -m -o
total used free shared buffers cached
Mem: 1963 75 1887 0 0 0
Swap: 999 0 999
35. 35/51
FreeBSD & Linux
Informações de Memória
● FreeBSD
Utilizando um pouco de shell script para descobrir quanto se tem
de RAM em Gigabytes ☺:
# echo "scale = 2; `sysctl hw.physmem | cut -f2 -d :`/1024/1024/1024" | bc
1.96
36. 36/51
FreeBSD & Linux
Informações de CPU
● Linux
Em /proc/cpuinfo há uma série de informações:
# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
stepping : 7
microcode : 0x23
cpu MHz : 1670.609
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 0
. . .
37. 37/51
FreeBSD & Linux
Informações de CPU
Quais são as flags do processador?:
● FreeBSD
Modelo, quantos núcleos e arquitetura:
# dmesg | egrep '^ *Features'
Features=0x1783fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PA
T,PSE36,MMX,FXSR,SSE,SSE2,HTT>
. . .
# sysctl hw.{model,ncpu,machine_arch}
hw.model: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
hw.ncpu: 2
hw.machine_arch: amd64
38. 38/51
FreeBSD & Linux
Módulos do Kernel
Carregar um módulo:
● Linux
Exibir módulos carregados:
# modprobe foo
# lsmod
Module Size Used by
vboxpci 24576 0
. . .
Descarregar um módulo:
# rmmod foo
39. 39/51
FreeBSD & Linux
Módulos do Kernel
Carregar um módulo:
● FreeBSD
Exibir módulos carregados:
# kldload foo
# kldstat
Id Refs Address Size Name
1 17 0xffffffff80200000 1f98760 kernel
2 1 0xffffffff82219000 1ff90b zfs.ko
. . .
Descarregar um módulo:
# kldunload foo
40. 40/51
Distros FreeBSD
Repetindo: O FreeBSD é um só!
P: Mas mesmo assim existem distros FreeBSD?
R: Sim, há ha distro raiz que é o projeto principal e há distros que
têm a mesma base, mas direcionamentos diferentes. Ou seja,
uma distro baseada no FreeBSD é otimizada para propósitos
distintos, seja como servidor, firewall ou desktop.
Todas distros FreeBSD têm a mesma hierarquia de diretório,
mesmos comandos, o que muda apenas é o direcionamento, a
ênfase no propósito.
47. 47/51
Curiosidades
Em 2014 o Facebook contratou uma equipe de
programadores para fazer a pilha de rede do Linux
ser tão boa quanto à do FreeBSD para uma maior
performance. No entanto, até o presente momento
ainda não conseguiram…
Darwin, o sistema operacional open source da
Apple, que forma a base do MacOS X é baseado
no FreeBSD;
Orbis OS, o sistema operacional do PlayStation 4 é
baseado no FreeBSD.
48. 48/51
Conclusão
O FreeBSD é uma sistema operacional seguro, estável e open
source.
É uma ótima alternativa ao Linux superando-o em muitas
coisas.
Vale a pena conhecê-lo para poder aplicar o que ele tem de
melhor a oferecer como solução.