FreeBSD 
“... advanced computer operating system used to power modern servers...”
Roteiro 
❏ História do FreeBSD e porque utilizá-lo como S.O 
❏ Design e Implementação 
❏ Kernel 
❏ Processos 
❏ Gerenciamento de Memória 
❏ Sistema de Arquivos 
❏ Gerenciamento de pacotes 
❏ Derivados 
❏ Demonstração
Histórico 
❏ Descendente do UNIX em 1993 
❏ Desenvolvido inicialmente pela Universidade de 
Berkeley 
❏ Licença BSD 
❏ Desenvolvido e mantido por uma equipe pequena 
❏ Versões do sistema: 
❏ CURRENT(desenvolvimento) 
❏ RELEASE(versão fechada de tempos em tempos) 
❏ STABLE(versão fechada com correções de bugs)
Porque usar... 
❏ Melhor que windows(como sistema operacional)! 
❏ Descende do mesmo ancestral que o linux, porém, 
muitas vezes possui um desempenho melhor 
❏ Bastante estável uma vez que sua implementação não 
busca suportar todos os dispositivos possíveis(como o 
linux) 
❏ Mantido completamente pelos commiters 
❏ http://www.ocf.berkeley.edu/~reinholz/freebsd/3reasons 
.html
Design e Imple. - Kernel 
❏ No geral, utilizam kernel monolítico(*BSD) 
❏ *Visto como problemático por alguns autores 
❏ Kernel modular e customizável 
❏ Níveis de segurança customizáveis(-1 a 3) 
❏ -1 = segurança a padrão unix 
❏ 0 = modo seguro utilizado no 1º boot 
❏ 1 = sem carregamento a quente, sem escrita direta 
❏ 2 = sem escrita 
❏ 3 = impossível de modificar regras de firewall
Design e Imple. - Kernel 
TABELAS
Design e Impl. - Processos 
❏ Ambiente multitarefa 
❏ Cada tarefa/thread é representado por um processo 
❏ PID 
❏ Sockets ou arquivos para comunicação > single byte 
❏ Segue o parâmetro de prioridade para execução 
❏ Conceito de “Process Group” e “Sessions”
Design e Impl. - Memória 
❏ Cada processo possui seu espaço de memória 
❏ Espaço dividido em texto, dados e pilha 
❏ Texto - instruções de máquina do programa 
❏ Dados - variáveis inicializadas e não inicializadas 
❏ Um processo pode expandir ou reduzir sua área de 
dados
Design e Impl. - Memória 
❏ No início não existia memória compartilhada 
❏ Criação do esquema de memória virtual que poderia 
ser compartilhada resolvendo o problema do 
compartilhamento de arquivos grandes entre processos
Design e Impl. - Sist. Arq. 
❏ UFS - Unix File System ou FFS 
❏ Evolução das implementações iniciais do UNIX 
❏ UFS2 - Unix File System 2 
❏ Versão melhorada do UFS, novos atributos, 
tamanho extendido, snapshots 
❏ ZFS - “Z” File System 
❏ Incluso a partir da versão 9, foco na garantia da 
escrita, criação de pools com várias partições, 
facilidade para arranjos RAID
Gerenciamento de pacotes 
❏ Sistema de ports 
❏ pkgng (similar ao apt-get do debian) para 
instalação de binários
Derivados 
❏ Mac OS X - Sistema operacional proprietário utilizado 
no Mac* 
❏ NetBSD - Livre, compacto e portável 
❏ OpenBSD - Segurança em primeiro lugar 
❏ PC-BSD - FreeBSD criado com foco para usuários 
finais 
❏ DragonFlyBSD 
❏ Outros *BSD
Referências 
❏ http://www.freebsd.org/doc/en/books/design- 
44bsd/overview.html 
❏ http://www.fug.com.br/ 
❏ http://pt.wikipedia.org/wiki/FreeBSD 
❏ http://pt.slideshare.net/flisolmaringa/apresentando-o-freebsd? 
qid=4de302d3-b3d5-4e75-9af3- 
f2f2de541147&v=qf1&b=&from_search=4 
❏ http://www.ocf.berkeley.edu/~reinholz/freebsd/3reasons 
.html
Referências 
❏ http://www.fug.com.br/content/view/99/77/ 
❏ http://pt.wikipedia.org/wiki/UFS_(Unix) 
❏ http://www.bsdnow.tv/tutorials/zfs 
❏ https://www.freebsd.org/doc/handbook/filesystems-zfs. 
html
Demonstração 
DEMO

FreeBSD para leigos

  • 1.
    FreeBSD “... advancedcomputer operating system used to power modern servers...”
  • 2.
    Roteiro ❏ Históriado FreeBSD e porque utilizá-lo como S.O ❏ Design e Implementação ❏ Kernel ❏ Processos ❏ Gerenciamento de Memória ❏ Sistema de Arquivos ❏ Gerenciamento de pacotes ❏ Derivados ❏ Demonstração
  • 3.
    Histórico ❏ Descendentedo UNIX em 1993 ❏ Desenvolvido inicialmente pela Universidade de Berkeley ❏ Licença BSD ❏ Desenvolvido e mantido por uma equipe pequena ❏ Versões do sistema: ❏ CURRENT(desenvolvimento) ❏ RELEASE(versão fechada de tempos em tempos) ❏ STABLE(versão fechada com correções de bugs)
  • 4.
    Porque usar... ❏Melhor que windows(como sistema operacional)! ❏ Descende do mesmo ancestral que o linux, porém, muitas vezes possui um desempenho melhor ❏ Bastante estável uma vez que sua implementação não busca suportar todos os dispositivos possíveis(como o linux) ❏ Mantido completamente pelos commiters ❏ http://www.ocf.berkeley.edu/~reinholz/freebsd/3reasons .html
  • 5.
    Design e Imple.- Kernel ❏ No geral, utilizam kernel monolítico(*BSD) ❏ *Visto como problemático por alguns autores ❏ Kernel modular e customizável ❏ Níveis de segurança customizáveis(-1 a 3) ❏ -1 = segurança a padrão unix ❏ 0 = modo seguro utilizado no 1º boot ❏ 1 = sem carregamento a quente, sem escrita direta ❏ 2 = sem escrita ❏ 3 = impossível de modificar regras de firewall
  • 6.
    Design e Imple.- Kernel TABELAS
  • 7.
    Design e Impl.- Processos ❏ Ambiente multitarefa ❏ Cada tarefa/thread é representado por um processo ❏ PID ❏ Sockets ou arquivos para comunicação > single byte ❏ Segue o parâmetro de prioridade para execução ❏ Conceito de “Process Group” e “Sessions”
  • 8.
    Design e Impl.- Memória ❏ Cada processo possui seu espaço de memória ❏ Espaço dividido em texto, dados e pilha ❏ Texto - instruções de máquina do programa ❏ Dados - variáveis inicializadas e não inicializadas ❏ Um processo pode expandir ou reduzir sua área de dados
  • 9.
    Design e Impl.- Memória ❏ No início não existia memória compartilhada ❏ Criação do esquema de memória virtual que poderia ser compartilhada resolvendo o problema do compartilhamento de arquivos grandes entre processos
  • 10.
    Design e Impl.- Sist. Arq. ❏ UFS - Unix File System ou FFS ❏ Evolução das implementações iniciais do UNIX ❏ UFS2 - Unix File System 2 ❏ Versão melhorada do UFS, novos atributos, tamanho extendido, snapshots ❏ ZFS - “Z” File System ❏ Incluso a partir da versão 9, foco na garantia da escrita, criação de pools com várias partições, facilidade para arranjos RAID
  • 11.
    Gerenciamento de pacotes ❏ Sistema de ports ❏ pkgng (similar ao apt-get do debian) para instalação de binários
  • 12.
    Derivados ❏ MacOS X - Sistema operacional proprietário utilizado no Mac* ❏ NetBSD - Livre, compacto e portável ❏ OpenBSD - Segurança em primeiro lugar ❏ PC-BSD - FreeBSD criado com foco para usuários finais ❏ DragonFlyBSD ❏ Outros *BSD
  • 13.
    Referências ❏ http://www.freebsd.org/doc/en/books/design- 44bsd/overview.html ❏ http://www.fug.com.br/ ❏ http://pt.wikipedia.org/wiki/FreeBSD ❏ http://pt.slideshare.net/flisolmaringa/apresentando-o-freebsd? qid=4de302d3-b3d5-4e75-9af3- f2f2de541147&v=qf1&b=&from_search=4 ❏ http://www.ocf.berkeley.edu/~reinholz/freebsd/3reasons .html
  • 14.
    Referências ❏ http://www.fug.com.br/content/view/99/77/ ❏ http://pt.wikipedia.org/wiki/UFS_(Unix) ❏ http://www.bsdnow.tv/tutorials/zfs ❏ https://www.freebsd.org/doc/handbook/filesystems-zfs. html
  • 15.

Notas do Editor

  • #2 Saudação, explicação do slogan Apesar de sua grande utilização ser na área dos servidores, o freeBSD visto como um sistema operacional é muito mais completo e estável que outras opções disponíveis no mercado, realmente, talvez o usuário que vá utilizá-lo precise de um conhecimento a mais, ou talvez uma “vontade maior”, porém uma vez depois que foi feito isso, o usuário pode desfrutar de um SO estável, seguro e extremamente rápido. A nível de servidores, a notícia mais recente que tenho é a whatsapp que utiliza o freebsd em sua arquitetura para entrega de mensagens
  • #3 No roteira da apresentação, inicialmente vamos falar um pouco da história do FreeBSD, porque utilizá-lo como SO Logo após, falar da implementação básica de algumas partes do SO, tais como, Kernel, Processos, Gerenciamento de Memória e Sistemas de Arquivos Depois falar um pouco do gerenciamento de pacotes, alguns derivados do FreeBSD e mostrar uma demo do funcionamento do SO e sua instalação básica
  • #4 No histórico do BSD temos sua criação em 1993, o mesmo foi desenvolvido na universidade de Berkeley. Inicialmente era chamado de 386BSD só que estava com seu desenvolvimento parado porque tinha apenas um mantenedor, foi quando três caras pegaram o projeto e colocaram o SO para andar, sobre a licença do SO, o mesmo é baseado na BSD que permite a alteração e a utilização comercial do software sem restrições, porém garante que nenhuma parte poderá ser responsabilizada. Atualmente a sua comunicadade está organizada em contribuidores e commiters, onde os contribuidores, participam dos testes, e da documentação do projeto e apenas os commiters tem a possibilidade de fazer alterações e no geral eles quem decidem o rumo do projeto Sobre as versões, geralmente são lançadas 3 versões anuais ditas estáveis, temos a linha de desenvolvimento, chamada de CURRENT, de tempos em tempos eles lançam uma release e após um tempo de lançamento de uma release, com a correções de possíveis bugs que possam aparecer eles vão chegando a uma versão estável do produto.
  • #5 - De fato, inicialmente como sistema operacional o mesmo é superior ao windows em quesitos de segurança e estabilidade do sistema operacional, o que também é o foco dele. - Em relação ao linux, o mesmo descende da mesma raiz e é unix-like porém muitas vezes apresenta um melhor desempenho em condições similares de hardware, óbvio que quando o mesmo é compatível.
  • #6 - No geral, utilizam kernel monolítico, porém alguns de seus descendentes como o Mac* e o DragonFly-BSD utilizam kernel híbrido - Kernel modular e customizável, devido ao primeiro motivo, podemos adicionar e remover módulos do kernel e com isso ganhar performance e/ou automatizar o carregamento de módulos no boot do sistema - Visto como problemático por alguns autores devido a existência de um único ponto de falha o que pode derrubar o sistema como um todo(assim como alguns concorrentes, Linux, Windows, Solaris) - Níveis de segurança customizáveis, o freebsd por padrão vem com o nível de segurança -1 o que pode ser mudado para 3(mais seguro), em algumas distribuições filhas vem com 3 com o intuito de ser mais seguro por padrão -1 = sem segurança 0 = utilizando no primeiro boot 1 = sem carregamento de módulos à quente, só recompilando o mesmo. Nenhum programa escreve diretamente na memória, discos que não foram montados não podem ser escritos diretamente nem é possível formatação ou cópia com dd. Gerenciadores do X não podem ser carregados, devido a não ter a possibilidade de escrever diretamente na memória 2 = todas do nível 1 com a impossibilidade de escrever em discos montados ou não, e a hora só pode ser alterada de 1 em 1 segundo 3 = todas do nível 2 com a impossível modificar regras de firewall - Rodando o FreeBSD podemos rodar binários do linux e do unix
  • #8 - Assim como demais sistemas operacionais concorrentes, o FreeBSD é multitarefa - Em sua implementação cada tarefa/thread é representada por um processo, o mesmo vai possuir um PID como nos demais sistemas operacionais - A comunuicação entre os processos é realizada via sockets quando a mesma precisa enviar mais de um byte - Assim como outros sistemas operacionais, os processos vão possuir um parâmetro com a sua prioridade. - No contexto dos processos temos o conceito de grupo e sessões, onde grupos seriam um relacionamento de processos interdepentes e sequencias, podemos citar um exemplo a execução de um comando que passa a sua saída como entrada para um outro, os dois programas estariam no mesmo grupo e sendo esses comandos executados em um terminal ou emulador de terminal, o grupo estaria associado a esse terminal. A utilização de grupos e terminais seria para isolamento de ações no ambiente.
  • #11 - Derivado da versão inicial do UNIX, os sistemas BSD utilizavam o UFS, porém devido as suas limitações no tamanho de espaço de endereçamento(o projeto inicial era ideal para pequenos discos), foram realizadas mudanças e o mesmo passou a ser chamado de FFS, com a criação de grupos e blocos de discos e dessa maneira, cada um desses já tinha sua própria tabela de alocação permitindo dessa forma gerenciar um maior espaço - Já sua evolução, o mesmo já suporta um maior tamanhos de discos(até 8 zetabytes), também foi incluído pelo pessoal do FreeBSD a capacidade de tirar snapshots, tanto para UFS/FFS quanto para o UFS2