SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler 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

Mais conteúdo relacionado

Mais procurados

Yocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux DistributionYocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux Distributionemertxemarketing
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoSherif Mousa
 
Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編OESF Education
 
Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerSherif Mousa
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveAlison Chaiken
 
Part 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingPart 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingTushar B Kute
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoCMacpaul Lin
 
Introdução ao Linux - Aula 01
Introdução ao Linux - Aula 01Introdução ao Linux - Aula 01
Introdução ao Linux - Aula 01Ivaldo Cardoso
 
Linux Administration
Linux AdministrationLinux Administration
Linux AdministrationHarish1983
 
Linux and its history
Linux and its historyLinux and its history
Linux and its historyKamal Ahmed
 
Introduction to yocto
Introduction to yoctoIntroduction to yocto
Introduction to yoctoAlex Gonzalez
 

Mais procurados (20)

Yocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux DistributionYocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux Distribution
 
Bsd presentation
Bsd presentationBsd presentation
Bsd presentation
 
Embedded Linux from Scratch to Yocto
Embedded Linux from Scratch to YoctoEmbedded Linux from Scratch to Yocto
Embedded Linux from Scratch to Yocto
 
Introducao ao linux
Introducao ao linuxIntroducao ao linux
Introducao ao linux
 
Embedded Operating System - Linux
Embedded Operating System - LinuxEmbedded Operating System - Linux
Embedded Operating System - Linux
 
Linux Internals - Part II
Linux Internals - Part IILinux Internals - Part II
Linux Internals - Part II
 
Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編
 
Presentation on linux
Presentation on linuxPresentation on linux
Presentation on linux
 
Yocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution MakerYocto - Embedded Linux Distribution Maker
Yocto - Embedded Linux Distribution Maker
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to love
 
Part 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingPart 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module Programming
 
U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoC
 
Introdução ao Linux - Aula 01
Introdução ao Linux - Aula 01Introdução ao Linux - Aula 01
Introdução ao Linux - Aula 01
 
Linux Administration
Linux AdministrationLinux Administration
Linux Administration
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
Linux introduction
Linux introductionLinux introduction
Linux introduction
 
Historia Sistema Operacional Linux
Historia Sistema Operacional LinuxHistoria Sistema Operacional Linux
Historia Sistema Operacional Linux
 
Helm.pptx
Helm.pptxHelm.pptx
Helm.pptx
 
Linux and its history
Linux and its historyLinux and its history
Linux and its history
 
Introduction to yocto
Introduction to yoctoIntroduction to yocto
Introduction to yocto
 

Destaque

Você consegue responder
Você consegue responderVocê consegue responder
Você consegue responderBilly Jeff
 
Trabalho sobre linux-Denise Guimarães
Trabalho sobre linux-Denise GuimarãesTrabalho sobre linux-Denise Guimarães
Trabalho sobre linux-Denise GuimarãesCassandra Cristina
 
Sistema linux – kurumin
Sistema linux – kuruminSistema linux – kurumin
Sistema linux – kuruminalimaoscs
 
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 litoral
 
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 DesktopRobson Vaamonde
 
Mini curso de Linux
Mini curso de LinuxMini curso de Linux
Mini curso de LinuxDiego Almada
 
Linux mint slide
Linux mint slideLinux mint slide
Linux mint slidekokatk
 

Destaque (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
 

Semelhante a Gentoo Linux: Sistema operacional livre compilado a partir do código fonte

Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008Ubuntu 8.04 LTS 2008
Ubuntu 8.04 LTS 2008SergioSouza
 
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 FedoraAllisson Azevedo
 
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 PesquisaCentro de Sismologia - USP
 
Funtoo escla
Funtoo esclaFuntoo escla
Funtoo esclaDaniel
 
Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básicoAdriano Melo
 
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 extremoDaniel
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asteriskVicente Nobre
 
Yocto: Treinamento em Português
Yocto: Treinamento em PortuguêsYocto: Treinamento em Português
Yocto: Treinamento em PortuguêsOtavio Salvador
 
Programação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebProgramação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebIsrael Messias
 
I Workshop de Redes do Iespes
I Workshop de Redes do IespesI Workshop de Redes do Iespes
I Workshop de Redes do Iespesluizfelipemz
 
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é LeiteTchelinux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxeliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linuxguest7a481e8
 

Semelhante a Gentoo Linux: Sistema operacional livre compilado a partir do código fonte (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
 

Mais de Freedom DayMS

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 WEBFreedom DayMS
 
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 minutosFreedom DayMS
 
O Que E Software Livre
O Que E Software LivreO Que E Software Livre
O Que E Software LivreFreedom DayMS
 
Seja "Smarty" na arte do desenvolvimento
Seja "Smarty" na arte do desenvolvimentoSeja "Smarty" na arte do desenvolvimento
Seja "Smarty" na arte do desenvolvimentoFreedom DayMS
 
PHP, Presente e Futuro
PHP, Presente e FuturoPHP, Presente e Futuro
PHP, Presente e FuturoFreedom DayMS
 
Pré-aquecimento Ubuntu Linux
Pré-aquecimento Ubuntu LinuxPré-aquecimento Ubuntu Linux
Pré-aquecimento Ubuntu LinuxFreedom DayMS
 
Software Rastreador de Movimentos
Software Rastreador de MovimentosSoftware Rastreador de Movimentos
Software Rastreador de MovimentosFreedom DayMS
 
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 DjangoFreedom DayMS
 
Comparação entre Frameworks Web Ágeis
Comparação entre Frameworks Web ÁgeisComparação entre Frameworks Web Ágeis
Comparação entre Frameworks Web ÁgeisFreedom DayMS
 
Firefox Para Webmasters
Firefox Para WebmastersFirefox Para Webmasters
Firefox Para WebmastersFreedom DayMS
 
Aprenda E Turbine Firefox
Aprenda E Turbine FirefoxAprenda E Turbine Firefox
Aprenda E Turbine FirefoxFreedom DayMS
 

Mais de 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
 

Gentoo Linux: Sistema operacional livre compilado a partir do código fonte

  • 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