SlideShare a Scribd company logo
1 of 41
Download to read offline
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

More Related Content

What's hot

Imei módulo3 sistema operativo
Imei   módulo3 sistema operativoImei   módulo3 sistema operativo
Imei módulo3 sistema operativo
teacherpereira
 
Criação do pendrive bootável
Criação do pendrive bootávelCriação do pendrive bootável
Criação do pendrive bootável
Francis Torres
 
Hardware
HardwareHardware
Hardware
leiladb
 

What's hot (20)

Linux para leigos
Linux para leigos Linux para leigos
Linux para leigos
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e Software
 
Formatando o computador
Formatando o computadorFormatando o computador
Formatando o computador
 
Linux Module Programming
Linux Module ProgrammingLinux Module Programming
Linux Module Programming
 
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime RipardKernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
Kernel Recipes 2017 - An introduction to the Linux DRM subsystem - Maxime Ripard
 
Informatica basica
Informatica basicaInformatica basica
Informatica basica
 
Arch linux
Arch linux Arch linux
Arch linux
 
Imei módulo3 sistema operativo
Imei   módulo3 sistema operativoImei   módulo3 sistema operativo
Imei módulo3 sistema operativo
 
Apostila Informática Básica - Completa.pdf
Apostila Informática  Básica - Completa.pdfApostila Informática  Básica - Completa.pdf
Apostila Informática Básica - Completa.pdf
 
Aula 5 manipulacao de arquivos e pastas
Aula 5   manipulacao de arquivos e pastasAula 5   manipulacao de arquivos e pastas
Aula 5 manipulacao de arquivos e pastas
 
Aula 01 aplicativos informatizados para modelagem (tarde e noite)
Aula 01   aplicativos  informatizados para modelagem (tarde e noite)Aula 01   aplicativos  informatizados para modelagem (tarde e noite)
Aula 01 aplicativos informatizados para modelagem (tarde e noite)
 
Checklist-formatação do computador
Checklist-formatação do computadorChecklist-formatação do computador
Checklist-formatação do computador
 
Raspberry PiのUSB OTGを試す
Raspberry PiのUSB OTGを試すRaspberry PiのUSB OTGを試す
Raspberry PiのUSB OTGを試す
 
Criação do pendrive bootável
Criação do pendrive bootávelCriação do pendrive bootável
Criação do pendrive bootável
 
Evolução do windows
Evolução do windowsEvolução do windows
Evolução do windows
 
Linux
LinuxLinux
Linux
 
Informática Básica - Aula 03 - Hardware
Informática Básica - Aula 03 - HardwareInformática Básica - Aula 03 - Hardware
Informática Básica - Aula 03 - Hardware
 
Webgincana
WebgincanaWebgincana
Webgincana
 
Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoria
 
Hardware
HardwareHardware
Hardware
 

Viewers also liked (11)

Você consegue responder
Você consegue responderVocê consegue responder
Você consegue responder
 
Trabalho sobre linux-Denise Guimarães
Trabalho sobre linux-Denise GuimarãesTrabalho sobre linux-Denise Guimarães
Trabalho sobre linux-Denise Guimarães
 
Sistema linux – kurumin
Sistema linux – kuruminSistema linux – kurumin
Sistema linux – kurumin
 
Mandriva 2010 One CD -> Slides Install / instalação
Mandriva 2010 One CD ->  Slides Install / instalação Mandriva 2010 One CD ->  Slides Install / instalação
Mandriva 2010 One CD -> Slides Install / instalação
 
Linux Mint - Visão Geral
Linux Mint - Visão GeralLinux Mint - Visão Geral
Linux Mint - Visão Geral
 
Apresentação do Curso de GNU/Linux Mint Desktop
Apresentação do Curso de GNU/Linux Mint DesktopApresentação do Curso de GNU/Linux Mint Desktop
Apresentação do Curso de GNU/Linux Mint Desktop
 
Os pinguins
Os pinguinsOs pinguins
Os pinguins
 
Pinguim Imperador
Pinguim ImperadorPinguim Imperador
Pinguim Imperador
 
Mini curso de Linux
Mini curso de LinuxMini curso de Linux
Mini curso de Linux
 
Flisol 2016
Flisol 2016Flisol 2016
Flisol 2016
 
Linux mint slide
Linux mint slideLinux mint slide
Linux mint slide
 

Similar to Gentoo

Funtoo escla
Funtoo esclaFuntoo escla
Funtoo escla
Daniel
 
Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básico
Adriano Melo
 
Yocto: Treinamento em Português
Yocto: Treinamento em PortuguêsYocto: Treinamento em Português
Yocto: Treinamento em Português
Otavio Salvador
 
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteComo ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Tchelinux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
eliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
guest7a481e8
 

Similar to Gentoo (20)

Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008
 
Introdução ao GNU/Linux
Introdução ao GNU/LinuxIntrodução ao GNU/Linux
Introdução ao GNU/Linux
 
Slackware Linux
Slackware LinuxSlackware Linux
Slackware Linux
 
Desenvolvendo uma distribuição Linux - Projeto Fedora
Desenvolvendo uma distribuição Linux - Projeto FedoraDesenvolvendo uma distribuição Linux - Projeto Fedora
Desenvolvendo uma distribuição Linux - Projeto Fedora
 
Sismologia USP: Infra Estutura Computacional para Pesquisa
Sismologia USP: Infra Estutura Computacional para PesquisaSismologia USP: Infra Estutura Computacional para Pesquisa
Sismologia USP: Infra Estutura Computacional para Pesquisa
 
Vagrant + Puppet
Vagrant + PuppetVagrant + Puppet
Vagrant + Puppet
 
Funtoo escla
Funtoo esclaFuntoo escla
Funtoo escla
 
Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básico
 
Funtoo Gnu/Linux: Customização ao extremo
Funtoo Gnu/Linux: Customização ao extremoFuntoo Gnu/Linux: Customização ao extremo
Funtoo Gnu/Linux: Customização ao extremo
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asterisk
 
IntroduçãO Ao Linux
IntroduçãO Ao LinuxIntroduçãO Ao Linux
IntroduçãO Ao Linux
 
Yocto: Treinamento em Português
Yocto: Treinamento em PortuguêsYocto: Treinamento em Português
Yocto: Treinamento em Português
 
Programação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebProgramação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente Web
 
I Workshop de Redes do Iespes
I Workshop de Redes do IespesI Workshop de Redes do Iespes
I Workshop de Redes do Iespes
 
Ubuntued blog
Ubuntued blogUbuntued blog
Ubuntued blog
 
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteComo ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Minicurso Linux
Minicurso Linux Minicurso Linux
Minicurso Linux
 

More from Freedom DayMS

O Que E Software Livre
O Que E Software LivreO Que E Software Livre
O Que E Software Livre
Freedom DayMS
 

More from Freedom DayMS (15)

Utilizando JMeter para realizar testes de carga em aplicações WEB
Utilizando JMeter para realizar testes de carga em aplicações WEBUtilizando JMeter para realizar testes de carga em aplicações WEB
Utilizando JMeter para realizar testes de carga em aplicações WEB
 
PHP de 0 a 100 em 50 minutos
PHP de 0 a 100 em 50 minutosPHP de 0 a 100 em 50 minutos
PHP de 0 a 100 em 50 minutos
 
Joomla
JoomlaJoomla
Joomla
 
Projeto Debian
Projeto DebianProjeto Debian
Projeto Debian
 
Software Livre Java
Software Livre JavaSoftware Livre Java
Software Livre Java
 
O Que E Software Livre
O Que E Software LivreO Que E Software Livre
O Que E Software Livre
 
Seja "Smarty" na arte do desenvolvimento
Seja "Smarty" na arte do desenvolvimentoSeja "Smarty" na arte do desenvolvimento
Seja "Smarty" na arte do desenvolvimento
 
PHP, Presente e Futuro
PHP, Presente e FuturoPHP, Presente e Futuro
PHP, Presente e Futuro
 
Pré-aquecimento Ubuntu Linux
Pré-aquecimento Ubuntu LinuxPré-aquecimento Ubuntu Linux
Pré-aquecimento Ubuntu Linux
 
Software Rastreador de Movimentos
Software Rastreador de MovimentosSoftware Rastreador de Movimentos
Software Rastreador de Movimentos
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com Django
 
Dataprev
DataprevDataprev
Dataprev
 
Comparação entre Frameworks Web Ágeis
Comparação entre Frameworks Web ÁgeisComparação entre Frameworks Web Ágeis
Comparação entre Frameworks Web Ágeis
 
Firefox Para Webmasters
Firefox Para WebmastersFirefox Para Webmasters
Firefox Para Webmasters
 
Aprenda E Turbine Firefox
Aprenda E Turbine FirefoxAprenda E Turbine Firefox
Aprenda E Turbine Firefox
 

Recently uploaded

Recently uploaded (9)

ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Gentoo

  • 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
  • 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
  • 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)
  • 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
  • 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
  • 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!
  • 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.
  • 29. Segurança ● Suporte a profiles ● Profile hardened ● Projeto hardened – Pesquisa, implementação e manutenção de políticas de segurança
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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...) – (...)
  • 34. Quem usa? ● Hosting e datacenters – Linode – Bytemark hosting – Genesi ● Peel Fresco Music Lounge – Bar em Hong Kong – Hospedagem do site
  • 35. Quem usa? ● Zymeta Video Jukebox
  • 36. Quem usa? ● Hyves – Rede social européia – 6 milhões de usuários registrados – 150+ milhões de acessos diários – 1800 servidores ● NASA
  • 38. Quem usa? ● Você!
  • 39. Instalação ● Passos gerais: ● Bootar live cd ● Criar partição / ● Criar sistema de arquivos ● Montar partição ● Descompactar stage na partição ● Descompactar portage
  • 40. 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!
  • 41. 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