Gentoo
Upcoming SlideShare
Loading in...5
×
 

Gentoo

on

  • 2,556 views

Desmistificando o Gentoo Linux

Desmistificando o Gentoo Linux

(Ravi Vilela / CATWORK / Rora)

Statistics

Views

Total Views
2,556
Views on SlideShare
2,552
Embed Views
4

Actions

Likes
1
Downloads
48
Comments
0

1 Embed 4

http://www.slideshare.net 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Gentoo Gentoo Presentation Transcript

  • Palestrante: Ravi Vilela Rauber
  • Tópicos ● WTF? ● Histórico ● Filosofia ● Portage ● Inicialização ● Segurança ● Comunidade ● Quem usa? ● Instalação
  • 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
  • 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...
  • 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
  • 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
  • Gentoo
  • Gentoo ● Espécie de pingüim mais veloz ● Pega 2 fêmeas a mais por ano que os pingüins as outras espécies
  • Gentoo
  • O que é? ● Compilação? ● Otimização de código?
  • 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)
  • Compilação
  • Compilação
  • Otimização de código ● Um código otimizado faz a mesma coisa que o original ● Em menos tempo ● Gastando menos memória
  • Portage ● Inspirado no Ports do FreeBSD ● Coração do Gentoo ● 2 partes: – sistema de ebuilds – emerge
  • 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
  • Ebuild
  • 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
  • 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
  • Utilização do emerge ● Dois conjuntos: system e world ● Atualizar um conjunto – # emerge -u world ● Considerar árvore de dependências – # emerge -uD world
  • Utilização do emerge
  • 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
  • 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
  • Overlays ● É possível usar árvores de pacotes alternativas à árvore oficial do Portage ● Lista de overlays “oficiais” ● Você pode montar o seu!
  • Overlays
  • 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
  • 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
  • Segurança ● Suporte a profiles ● Profile hardened ● Projeto hardened – Pesquisa, implementação e manutenção de políticas de segurança
  • 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
  • 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
  • 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
  • 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...) – (...)
  • Quem usa? ● Hosting e datacenters – Linode – Bytemark hosting – Genesi ● Peel Fresco Music Lounge – Bar em Hong Kong – Hospedagem do site
  • Quem usa? ● Zymeta Video Jukebox
  • Quem usa? ● Hyves – Rede social européia – 6 milhões de usuários registrados – 150+ milhões de acessos diários – 1800 servidores ● NASA
  • Quem usa? ● Eu!
  • Quem usa? ● Você!
  • Instalação ● Passos gerais: ● Bootar live cd ● Criar partição / ● Criar sistema de arquivos ● Montar partição ● Descompactar stage na partição ● Descompactar portage
  • 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!
  • 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