gentoo

41
Palestrante: Ravi Vilela Rauber

Upload: freedom-dayms

Post on 14-Jun-2015

1.659 views

Category:

Technology


0 download

DESCRIPTION

Desmistificando o Gentoo Linux(Ravi Vilela / CATWORK / Rora)

TRANSCRIPT

Page 1: Gentoo

Palestrante:Ravi Vilela Rauber

Page 2: Gentoo

Tópicos

● WTF?

● Histórico

● Filosofia

● Portage

● Inicialização

● Segurança

● Comunidade

● Quem usa?

● Instalação

Page 3: Gentoo

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

Page 4: Gentoo

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...

Page 5: Gentoo

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

Page 6: Gentoo

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

Page 7: Gentoo

Gentoo

Page 8: 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

Page 9: Gentoo

Gentoo

Page 10: Gentoo

O que é?

● Compilação?● Otimização de código?

Page 11: Gentoo

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)

Page 12: Gentoo

Compilação

Page 13: Gentoo

Compilação

Page 14: Gentoo

Otimização de código

● Um código otimizado faz a mesma coisa que o original

● Em menos tempo

● Gastando menos memória

Page 15: Gentoo

Portage

● Inspirado no Ports do FreeBSD● Coração do Gentoo● 2 partes:

– sistema de ebuilds

– emerge

Page 16: Gentoo

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

Page 17: Gentoo

Ebuild

Page 18: Gentoo

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

Page 19: Gentoo

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

Page 20: Gentoo

Utilização do emerge

● Dois conjuntos: system e world

● Atualizar um conjunto

– # emerge -u world● Considerar árvore de dependências

– # emerge -uD world

Page 21: Gentoo

Utilização do emerge

Page 22: Gentoo

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

Page 23: Gentoo

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

Page 24: Gentoo

Overlays

● É possível usar árvores de pacotes alternativas à árvore oficial do Portage

● Lista de overlays “oficiais”

● Você pode montar o seu!

Page 25: Gentoo

Overlays

Page 26: Gentoo

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

Page 27: Gentoo

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

Page 28: Gentoo
Page 29: Gentoo

Segurança

● Suporte a profiles● Profile hardened● Projeto hardened

– Pesquisa, implementação e manutenção de políticas de segurança

Page 30: Gentoo

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

Page 31: Gentoo

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

Page 32: Gentoo

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

Page 33: Gentoo

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

– (...)

Page 34: Gentoo

Quem usa?

● Hosting e datacenters– Linode

– Bytemark hosting

– Genesi

● Peel Fresco Music Lounge– Bar em Hong Kong

– Hospedagem do site

Page 35: Gentoo

Quem usa?

● Zymeta Video Jukebox

Page 36: Gentoo

Quem usa?

● Hyves– Rede social européia

– 6 milhões de usuários registrados

– 150+ milhões de acessos diários

– 1800 servidores

● NASA

Page 37: Gentoo

Quem usa?

● Eu!

Page 38: Gentoo

Quem usa?

● Você!

Page 39: Gentoo

Instalação

● Passos gerais:● Bootar live cd● Criar partição /● Criar sistema de arquivos● Montar partição● Descompactar stage na partição● Descompactar portage

Page 40: Gentoo

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!

Page 41: Gentoo

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