Upload
freedom-dayms
View
1.659
Download
0
Embed Size (px)
DESCRIPTION
Desmistificando o Gentoo Linux(Ravi Vilela / CATWORK / Rora)
Citation preview
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