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

Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de ArquivosSistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de ArquivosLuiz Arthur
 
Sistemas operacionais linux
Sistemas operacionais linuxSistemas operacionais linux
Sistemas operacionais linuxLeandro Lemes
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Leinylson Fontinele
 
How to Integrate Kubernetes in OpenStack
 How to Integrate Kubernetes in OpenStack  How to Integrate Kubernetes in OpenStack
How to Integrate Kubernetes in OpenStack Meng-Ze Lee
 
Alphorm.com : Formation Active directory 2008 R2 (70-640)
Alphorm.com : Formation Active directory 2008 R2 (70-640)Alphorm.com : Formation Active directory 2008 R2 (70-640)
Alphorm.com : Formation Active directory 2008 R2 (70-640)Alphorm
 
Giới thiệu docker và ứng dụng trong ci-cd
Giới thiệu docker và ứng dụng trong ci-cdGiới thiệu docker và ứng dụng trong ci-cd
Giới thiệu docker và ứng dụng trong ci-cdGMO-Z.com Vietnam Lab Center
 
Trabalho de sistema operativo servidor
Trabalho de sistema operativo servidorTrabalho de sistema operativo servidor
Trabalho de sistema operativo servidordtml2k
 
Introdução aos Sistemas operacionais
Introdução aos Sistemas operacionaisIntrodução aos Sistemas operacionais
Introdução aos Sistemas operacionaisNécio de Lima Veras
 
Sistema de arquivos - HPFS e ReiserFS/4
Sistema de arquivos - HPFS e ReiserFS/4Sistema de arquivos - HPFS e ReiserFS/4
Sistema de arquivos - HPFS e ReiserFS/4Anderson Rodrigues
 
Apresentação Linux
Apresentação LinuxApresentação Linux
Apresentação Linuxguestca430
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesRonny Trommer
 
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+Alphorm
 
Sistema Operativos
Sistema OperativosSistema Operativos
Sistema OperativosBugui94
 

Mais procurados (20)

Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de ArquivosSistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
Sistemas Operacionais - Gnu/Linux Gerenciamento de Arquivos
 
Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0Linux Internals - Interview essentials 4.0
Linux Internals - Interview essentials 4.0
 
Android
Android Android
Android
 
Cloud_2022.pdf
Cloud_2022.pdfCloud_2022.pdf
Cloud_2022.pdf
 
Docker
DockerDocker
Docker
 
Sistemas operacionais linux
Sistemas operacionais linuxSistemas operacionais linux
Sistemas operacionais linux
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
 
How to Integrate Kubernetes in OpenStack
 How to Integrate Kubernetes in OpenStack  How to Integrate Kubernetes in OpenStack
How to Integrate Kubernetes in OpenStack
 
Alphorm.com : Formation Active directory 2008 R2 (70-640)
Alphorm.com : Formation Active directory 2008 R2 (70-640)Alphorm.com : Formation Active directory 2008 R2 (70-640)
Alphorm.com : Formation Active directory 2008 R2 (70-640)
 
Linux Run Level
Linux Run LevelLinux Run Level
Linux Run Level
 
Giới thiệu docker và ứng dụng trong ci-cd
Giới thiệu docker và ứng dụng trong ci-cdGiới thiệu docker và ứng dụng trong ci-cd
Giới thiệu docker và ứng dụng trong ci-cd
 
Trabalho de sistema operativo servidor
Trabalho de sistema operativo servidorTrabalho de sistema operativo servidor
Trabalho de sistema operativo servidor
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Conhecendo Melhor O Linux
Conhecendo Melhor O LinuxConhecendo Melhor O Linux
Conhecendo Melhor O Linux
 
Introdução aos Sistemas operacionais
Introdução aos Sistemas operacionaisIntrodução aos Sistemas operacionais
Introdução aos Sistemas operacionais
 
Sistema de arquivos - HPFS e ReiserFS/4
Sistema de arquivos - HPFS e ReiserFS/4Sistema de arquivos - HPFS e ReiserFS/4
Sistema de arquivos - HPFS e ReiserFS/4
 
Apresentação Linux
Apresentação LinuxApresentação Linux
Apresentação Linux
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to Kubernetes
 
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+alphorm.com - Formation Linux LPIC-1/Comptia Linux+
alphorm.com - Formation Linux LPIC-1/Comptia Linux+
 
Sistema Operativos
Sistema OperativosSistema Operativos
Sistema Operativos
 

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