Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Por que FreeBSD?

Juliano Atanazio
October 27, 2018
31

Por que FreeBSD?

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 ;)

Juliano Atanazio

October 27, 2018
Tweet

Transcript

  1. 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/
  2. 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;
  3. 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.
  4. 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.
  5. 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.
  6. 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.”
  7. 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
  8. 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/
  9. 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/
  10. 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/
  11. 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
  12. 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/
  13. 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
  14. 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.
  15. 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)
  16. 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/
  17. 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
  18. 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;
  19. 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;
  20. 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.
  21. 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/
  22. 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
  23. 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...
  24. 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...
  25. 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.
  26. 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.
  27. 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.
  28. 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).
  29. 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
  30. 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%
  31. 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
  32. 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
  33. 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 . . .
  34. 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
  35. 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
  36. 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
  37. 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.
  38. 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.
  39. 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.