Your SlideShare is downloading. ×
0
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Gentoo
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Gentoo

1,652

Published on

Desmistificando o Gentoo Linux …

Desmistificando o Gentoo Linux

(Ravi Vilela / CATWORK / Rora)

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,652
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
49
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Palestrante: Ravi Vilela Rauber
  • 2. Tópicos ● WTF? ● Histórico ● Filosofia ● Portage ● Inicialização ● Segurança ● Comunidade ● Quem usa? ● Instalação
  • 3. WTF? ● Sistema operacional livre ● Baseado no Linux ou no FreeBSD ● Portage – Gerenciador de pacotes ● METAdistribução – quem monta o SO é o usuário ● Comunidade – Gentoo Foundation
  • 4. E qualé a diferença? ● É extremamente configurável ● Quem tem controle é o usuário, e não o criador dos pacotes ● Gera pacotes com otimização de código e com apenas as características que você desejar ● Pacotes atualizados ● Pode ser usado como servidor, estação de desenvolvimento, máquina para jogos, cluster, o que você quiser ● Portável – roda em várias arquiteturas (: ● x86-64, x86, powerpc, ps3...
  • 5. Filosofia ● Permitir ao usuário desfrutar da riqueza da comunidade e flexibilidade do software livre ● Permitir que o usuário trabalhe do jeito que seja mais confortável pra ele ● Ferramenta não deve impor nada ao usuário ● Deve permitir ao usuário fazer o que ele quiser ● Se uma ferramenta não fica no caminho e não é notada → trabalho bem feito ● Objetivo do Gentoo: ser uma ferramenta que possa acomodar as necessidades de muitos tipos diferentes de usuário
  • 6. História ● Criado por Daniel Robbins ● Nome original: Enoch ● Distribuição que fosse compilada a partir do código fonte ● Correção no gcc: binários pelo menos 10% mais rápidos ● Famosa pela sua velocidade ● Troca de nome para Gentoo
  • 7. Gentoo
  • 8. Gentoo ● Espécie de pingüim mais veloz ● Pega 2 fêmeas a mais por ano que os pingüins as outras espécies
  • 9. Gentoo
  • 10. O que é? ● Compilação? ● Otimização de código?
  • 11. Compilação ● Processo de transformar algo escrito em uma linguagem em algo escrito em outra linguagem ● Ex: português → neo-miguxês: ● Original: “compilação de código é uma coisa que o gentoo faz bastante” ● Compilado: “KomPiLaXXAUM dI kOdIgu eh 1 KOiZaH KI u GENtOw fAixXx BAStaNti” ● C++ → linguagem de máquina (a que o computador fala)
  • 12. Compilação
  • 13. Compilação
  • 14. Otimização de código ● Um código otimizado faz a mesma coisa que o original ● Em menos tempo ● Gastando menos memória
  • 15. Portage ● Inspirado no Ports do FreeBSD ● Coração do Gentoo ● 2 partes: – sistema de ebuilds – emerge
  • 16. Ebuild ● Arquivo de texto, e não um pacote ● Contém – Url do programa a ser instalado – Instruções de como instalá-lo ● Separados por categorias ● Um ebuild por versão do programa ● Sistema de slots – várias versões do mesmo programa instaladas simultaneamente
  • 17. Ebuild
  • 18. Emerge ● Instala e gerencia os ebuilds ● Calcula dependências entre pacotes ● Atualiza os pacotes ● Seta as USE flags dos pacotes ● Regula as otimizações do compilador
  • 19. Utilização do emerge ● Atualizando os ebuilds: # emerge --sync ● Sincroniza os ebuilds com o repositório central do gentoo ● Instalação de pacotes: # emerge nome-do-pacote ● Instalar versão específica # emerge =categoria/nome-do-pacote-1.2.3 ● Instalar versão maior ou igual 1.2.3 # emerge >=categoria/nome-do-pacote-1.2.3 ● Desinstalar todos os menores que a versão 1.2.3 # emerge -C <categoria/nome-do-pacote-1.2.3
  • 20. Utilização do emerge ● Dois conjuntos: system e world ● Atualizar um conjunto – # emerge -u world ● Considerar árvore de dependências – # emerge -uD world
  • 21. Utilização do emerge
  • 22. Configuração ● /etc/make.conf ● CFLAGS e CXXFLAGS – Controlam quais otimizações do gcc/g++ serão usadas ● CHOST – Define a arquitetura do processador: ● I686, x86-64, ... ● USE – Define a funcionalidade que será incluída nos pacotes – Ex: ● Se a USE flag “mysql” existir, todos os programas serão compilados com suporte a mysql
  • 23. Pacotes bloqueados ● Pacotes considerados estáveis não são bloqueados ● Pacotes que ainda não foram completamente testados mas que é sabido que funcionem bem são “mascarados” (masked) ● Pacotes que não estão estáveis ainda são marcados como “hard masked” ● É possível ter pacotes estáveis e instáveis instalados num mesmo sistema ● Controle feito por arquivos de configuração: – /etc/portage/package.unmask – /etc/portage/package.keywords – /etc/portage/package.mask
  • 24. Overlays ● É possível usar árvores de pacotes alternativas à árvore oficial do Portage ● Lista de overlays “oficiais” ● Você pode montar o seu!
  • 25. Overlays
  • 26. Inicialização ● Parecido com o System V ● Scripts baseados em dependência ● Run-levels com nomes (ao invés de números) ● Originalmente escrito em bash ● Baselayout-2 desenvolvido ● Escrito em C ● Portável ● Mais rápido
  • 27. rc-update ● Gerencia serviços por runlevel ● Adicionar um serviço # rc-update add sshd default ● Listar serviços # rc-update status ● Iniciar um serviço # /etc/init.d/mysql start
  • 28. Segurança ● Suporte a profiles ● Profile hardened ● Projeto hardened – Pesquisa, implementação e manutenção de políticas de segurança
  • 29. Segurança ● Subprojetos – SELinux e grsecurity ● Política de segurança baseada em listas de acesso para todos os processos – PaX ● Proteção contra buffer overflow – Hardened toolchain ● Compiladores com capabilidades do PaX – Hardened sources ● Kernel com patches de segurança
  • 30. GLSA ● Gentoo Linux Security Advisory ● Boletim periódico ● Alerta sobre falhas de segurança e vulnerabilidades ● glsa-check – Detecta vulnerabilidades no seu sistema – Instala correções automaticamente
  • 31. Comunidade ● Gentoo Foundation ● Mais de 300 desenvolvedores ● Documentação ● Site, fóruns, listas, desenvolvimento, lançamento de live cds... ● Conselho do Gentoo eleito anualmente ● Reuniões mensais no irc ● Decisões sobre questões envolvendo múltiplos projetos ● Dias de caça a bugs
  • 32. Documentação ● Gentoo Handbook – Passo a passo muito detalhado da instalação ● Documentação oficial ● Wiki ● Guias de – Configuração do sistema – Otimização – Localização – Configuração do kernel – Computação distribuída – Servidor (e-mail, samba, banco de dados...) – (...)
  • 33. Quem usa? ● Hosting e datacenters – Linode – Bytemark hosting – Genesi ● Peel Fresco Music Lounge – Bar em Hong Kong – Hospedagem do site
  • 34. Quem usa? ● Zymeta Video Jukebox
  • 35. Quem usa? ● Hyves – Rede social européia – 6 milhões de usuários registrados – 150+ milhões de acessos diários – 1800 servidores ● NASA
  • 36. Quem usa? ● Eu!
  • 37. Quem usa? ● Você!
  • 38. Instalação ● Passos gerais: ● Bootar live cd ● Criar partição / ● Criar sistema de arquivos ● Montar partição ● Descompactar stage na partição ● Descompactar portage
  • 39. Instalação ● chroot pra dentro da partição ● Configurar make.conf ● Montar proc e dev ● Instalar: – Kernel – Grub/lilo/outro (carregador de boot) – Syslog (log do sistema) – Cron (agendador do sistema) ● Configurar: – fstab – Serviços – Rede – Configurar senha do superusuário – Reboot!
  • 40. Referências ● http://www.gentoo.org ● http://www.gentoo-wiki.com ● http://en.wikipedia.org/wiki/Portage_(software) ● http://en.wikipedia.org/wiki/Gentoo_Linux ● http://www.aurelio.net

×