SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
1                         Sistemas Operacionais                              Luiz Arthur


    Sem dúvida o código livre está sendo o grande rival das empresas que produzem
    software “proprietário”.

    A filosofia do software livre tem confundido muitas pessoas, pois livre não está
    associada a software grátis e sim à liberdade.

    O termo livre refere-se à liberdade de o usuário executar, copiar, distribuir e
    aperfeiçoar o programa.

    O distribuidor pode até cobrar uma taxa pelo software, como acontece nas
    distribuições Linux empacotadas. Desde que o direito de alterar o programa e
    redistribuí-lo seja preservado, o software continua sendo livre.

    A maioria das distribuições do Linux vem muito software livre nos CD-ROMS. O
    próprios site do GNU contém muito software disponível.

    Uma vez que se possa utilizar software livre, é necessário compilar e instalar
    estes programas. Um ótimo site para procurar programas é o
    http://www.freshmeat.net.

    Porém para isso é necessário entender o conceito de arquivos tarball.
2                         Sistemas Operacionais                                Luiz Arthur


    Arquivos Tarball

    Os arquivos tarball são distribuições de software livre que mantêm uma estrutura
    de diretório, arquivos fonte, um arquivo Makefile, documentação e outros
    arquivos, encapsulados em um arquivo tar com compressão de dados gzip. Este
    método de distribuição de software é muito popular porque os utilitários tar e
    gzip são muitos comuns.

    O resultado é um arquivo de extensão .tar.gz ou .tgz.

    Ainda é possível encontrar os arquivos tarball com as extensões .bz2 e .tbz2. Este
    arquivos são compactados com o bzip2, que utiliza um algoritmo de compressão
    de dados melhor que o gzip.

    Para abrir o conteúdo de um arquivo tarball:

    #gzip -d arquivo.tar.gz

    O comando gzip descomprime o arquivo .tar.gz e retira a extensão .gz:

    #tar xvf arquivo.tar

    O utilitários tar extrai o conteúdo do pacote.
3                         Sistemas Operacionais                         Luiz Arthur


    Pode-se também utilizar formas mais simples:

    #tar xvzf arquivo.tar.gz

    ou

    #gzip -dc arquivo.tar.gz | tar vx

    Se o arquivo for compactado com o bzip2, ele deve ser descompactado pelo
    bunzip2 ou utilizar a opção -d do bzip2:

    #tar xvjf arquivo.tar.bz2

    ou

    #bunzip2 arquivo.tar.bz2

    e

    # tar xvf arquivo.tar

    A saída de qualquer dos comandos citados anteriormente é um conjunto de
    arquivos sem compactação, ou seja, os arquivo compactados deverão gerar uma
    estrutura de arquivos/diretórios.
4                         Sistemas Operacionais                                Luiz Arthur


    Compilando o Código-fonte

    Depois de extrair o conteúdo de um pacote de software é necessário compilar e
    fazer sua instalação.

    O compilador mais utilizado no Linux é a Coleção de Compiladores GNU – GCC.
    Ele compila códigos C ANSI, bem como C++, Java e Fortran. O GCC suporta
    vários níveis de checagem de erros nos códigos-fonte, produz informações de
    debug e pode ainda otimizar o arquivo objeto produzido.

    O GCC suporta os novos processadores Intel IA-64, permitindo que os programas
    executem nesta arquitetura.

    Alguns programas do pacote do GNU são necessários para compilar um
    programa código livre. São eles:

    Make

    O utilitário make é necessário para compilar múltiplos arquivos de código fonte de
    um projeto. Ele utiliza um arquivo de descrição geralmente nomeado makefile
    ou Makefile.

    O conteúdo deste arquivo contém regras que definem as dependências entre
    arquivos fonte e os comandos necessários para a compilação.
5                         Sistemas Operacionais                                Luiz Arthur


    A partir arquivo de descrição make ele executa seqüências de comandos que são
    interpretados pelo shell. Geralmente o compilador gcc é invocado com diversas
    opções que completam as dependências de outros arquivos objetos e
    bibliotecas.

    “DEPENDENCIA é um pacote (programa) necessário para a compilação ou
    funcionamento de um dado programa, um programa pode ser DEPENDENTE de
    um ou mais pacotes”.

    Mesmo os menores projetos de software podem contêm vários arquivos que têm
    interdependência, e o comando make facilita manter e compilar os projetos.

    Configure

    Alguns projetos incluem um arquivo especial chamado configure. Este arquivo é
    um script de shell que examina o sistema para verificar se as diversas
    dependências necessárias para compilar o projeto serão satisfeitas.

    O configure procura por compiladores, bibliotecas, utilitários e outros itens
    necessários. Ele também pode receber informações extras do usuário, como
    diretivas de compilação, habilitar ou desabilitar opções incluídas ou excluídas do
    objeto a ser compilado.
6                        Sistemas Operacionais                             Luiz Arthur


    Se alguma dependência estiver ausente este script (configure) avisa o usuário
    para que ele satisfaça instalando arquivos e programas necessários ao projeto.

    Depois de reunir toda a informação necessária o configure gera um arquivo
    Makefile customizado para o sistema.

    O configure é fornecido pelo programador do projeto utilizando o utilitário
    autoconf.

    Após, executar o comando configure (se este existir) para criar o arquivo
    Makefile, podemos continuar a instalação do sistema com os comandos make
    para compilar o programa e make install para instalar os arquivos compilados.

    Por exemplo para instalar o servidor de Web (HTTP) Apache:
    #tar vxzf apache-1.3.31.tar.gz
    #cd apache-1.3.31
    #./configure
    #make
    #make install

    Depois de instalar você pode apagar o diretório apache-1.3.31 gerado pelo
    arquivo apache-1.3.31.tar.gz.
7                         Sistemas Operacionais                                Luiz Arthur


    Gerenciando Bibliotecas Compartilhadas

    Para entender a gerência das bibliotecas compartilhadas, precisa-se primeiro
    saber o que são bibliotecas e para que elas servem.

    Durante a escrita do código-fonte de um programa, o desenvolvedor faz uso de
    diversas funções e procedimentos já definidos em arquivos chamados
    bibliotecas.

    Estas funções permitem que o programador possa usar recursos como escrita em
    disco, escrita na tela, receber dados do teclado, do mouse, enviar dados pela rede
    e muito mais, sem a necessidade de reescrever a roda.

    Quando o programa é compilado, o último estágio de sua construção é fazer as
    ligações (linker). Alguns compiladores já fazem este processo de reunir todos os
    objetos necessários e compor um objeto final automaticamente. Outros
    necessitam que o programador execute um outro programa chamado de linker.

    Existem dois tipos de bibliotecas no Linux: as estáticas e as dinâmicas. A
    decisão de qual biblioteca utilizar compete ao programador.
8                         Sistemas Operacionais                              Luiz Arthur


    Ao usar uma biblioteca estática, o linker encontra as funções e procedimentos
    de que o programa precisa, e as copia fisicamente no arquivo de saída executável
    gerado. Isso faz com que o executável final possa rodar de forma independente
    sem utilizar nenhuma biblioteca. Mas perde-se na performance, no gasto
    desnecessário de memória e no tamanho final do programa.

    Para resolver este problema o programador pode fazer uso de bibliotecas
    compartilhadas (dinâmicas). Ao fazer as ligações de um programa que as
    utiliza, o linker faz uma referência às bibliotecas compartilhadas. Desta forma,
    quando este programa for executado, o sistema terá de carregar primeiro as
    bibliotecas necessárias.

    Desta maneira, os executáveis gerados através do uso de bibliotecas
    compartilhadas são mais eficientes, pois tendem a ser menores, usar menos
    memória e ocupar menos espaço em disco. O ponto fraco desta metodologia é
    que os programas necessitam das bibliotecas compartilhadas e uma mudança nas
    versões destes arquivos também pode afetar o seu funcionamento.

    Os arquivos executáveis são examinados no tempo de execução pelo linker de
    tempo de execução chamado ld.so. Este interpretador especial completa as
    ligações entre o executável e as bibliotecas compartilhadas. Se o ld.so não
    conseguir encontrar e ler as dependências, ele irá falhar e o executável não irá
    ser carregado.
9                        Sistemas Operacionais                             Luiz Arthur


    O linker ld.so mantém índice de todas as bibliotecas e sua localização em
    um arquivos especial chamado /etc/ld.so.cache. Ele é binário e, portanto, pode
    ser lido rapidamente pelo ld.so.

    É isto que um administrador Linux tem de estar preparado para gerenciar as
    bibliotecas compartilhadas e suas versões para um correto funcionamento do
    sistema e seus aplicativos. Os utilitários que irão ajudar nesta tarefa são:

    ldd

    O comando ldd – List Dynamic Dependencies – fornece uma lista das
    dependências dinâmicas de que um determinado programa precisa. Ele irá
    retornar o nome da biblioteca compartilhada e sua localização esperada.

    $ ldd /bin/bash
            linux-gate.so.1 => (0xffffe000)
            libtermcap.so.2 => /lib/libtermcap.so.2 (0xb7f8c000)
            libdl.so.2 => /lib/tls/libdl.so.2 (0xb7f88000)
            libc.so.6 => /lib/tls/libc.so.6 (0xb7e59000)
            /lib/ld-linux.so.2 (0xb7fad000)

    Este comando é importante para determinar quais são as bibliotecas necessárias
    de um executável.
10                     Sistemas Operacionais                               Luiz Arthur


 ldconfig

 O utilitário ldconfig cria os links e refaz o índice das bibliotecas dinâmicas do
 arquivo /etc/ld.so.cache. Ele procura por bibliotecas nos diretórios /usr/lib
 e /lib, assim como nos diretórios listados em /etc/ls.so.conf, bem como o
 diretório informado na linha de comando.

 As opções mais comuns são:

 -p Lista o conteúdo do cache /etc/ld.so.cache

 -v Mostra o progresso da atualização do cache.

 -f arquivo Informa um outro arquivo de configuração diferente do padrão
 /etc/ld.so.conf.
11                     Sistemas Operacionais                                  Luiz Arthur


 Atividade 1

 1 – Pesquise por ferramentas que facilitam a instalação em sistemas Linux.

 2 – Pesquise sobre a ferramenta de instalação do Slackare, indicando as opções
 de como instalar, atualizar e remover os pacotes.

 3- Pesquise sobre a ferramenta de instalação do Debian (que é igual ao ubunto,
 Kurumin, etc), indicando as opções de como instalar, atualizar e remover os
 pacotes.

 4 - Pesquise sobre a ferramenta de instalação do Gentoo, indicando as opções de
 como instalar, atualizar e remover os pacotes.

 5 - Pesquise sobre a ferramenta de instalação do Red-Hat, indicando as opções de
 como instalar, atualizar e remover os pacotes.

 6 -Pesquise sobre a ferramenta de instalação apt-get (procure por versões para
 o Slackware), indicando as opções de como instalar, atualizar e remover os
 pacotes.
12     Sistemas Operacionais   Luiz Arthur


 fim

Mais conteúdo relacionado

Mais procurados (20)

Minicurso linux
Minicurso linuxMinicurso linux
Minicurso linux
 
Lxde
LxdeLxde
Lxde
 
Curso Básico de Linux
Curso Básico de LinuxCurso Básico de Linux
Curso Básico de Linux
 
Curso openmp
Curso openmpCurso openmp
Curso openmp
 
Introdução Linux
Introdução LinuxIntrodução Linux
Introdução Linux
 
Pascal 70
Pascal 70Pascal 70
Pascal 70
 
Comandos Linux
Comandos LinuxComandos Linux
Comandos Linux
 
Introdução ao Linux
Introdução ao LinuxIntrodução ao Linux
Introdução ao Linux
 
So-mod-4
So-mod-4So-mod-4
So-mod-4
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1
 
Minicurso Linux
Minicurso Linux Minicurso Linux
Minicurso Linux
 
Diretórios linux
Diretórios linuxDiretórios linux
Diretórios linux
 
Arquivos de Inicialização do Linux
Arquivos de Inicialização do LinuxArquivos de Inicialização do Linux
Arquivos de Inicialização do Linux
 
Análise de Código Malicioso no Linux
Análise de Código Malicioso no LinuxAnálise de Código Malicioso no Linux
Análise de Código Malicioso no Linux
 
S.o aula 2728
S.o aula 2728S.o aula 2728
S.o aula 2728
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVN
 
Sistemas operativos - Arch Linux
Sistemas operativos  - Arch LinuxSistemas operativos  - Arch Linux
Sistemas operativos - Arch Linux
 
Funcionamento kernel
Funcionamento kernelFuncionamento kernel
Funcionamento kernel
 
Oficinalinux Comotudo Começou
Oficinalinux Comotudo ComeçouOficinalinux Comotudo Começou
Oficinalinux Comotudo Começou
 

Destaque

Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Luiz Arthur
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.orgLuiz Arthur
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Luiz Arthur
 
Sistemas operacionais pronatec- prof. manoel
Sistemas operacionais   pronatec- prof. manoelSistemas operacionais   pronatec- prof. manoel
Sistemas operacionais pronatec- prof. manoelManoel Rufino Neto
 
Redes e Servidores Linux - Guia Prático - Carlos E. Morimoto
Redes e Servidores Linux - Guia Prático - Carlos E. MorimotoRedes e Servidores Linux - Guia Prático - Carlos E. Morimoto
Redes e Servidores Linux - Guia Prático - Carlos E. MorimotoHeber Gutenberg
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Luiz Arthur
 

Destaque (7)

NAPSOL
NAPSOLNAPSOL
NAPSOL
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.org
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
 
Sistemas operacionais pronatec- prof. manoel
Sistemas operacionais   pronatec- prof. manoelSistemas operacionais   pronatec- prof. manoel
Sistemas operacionais pronatec- prof. manoel
 
Redes e Servidores Linux - Guia Prático - Carlos E. Morimoto
Redes e Servidores Linux - Guia Prático - Carlos E. MorimotoRedes e Servidores Linux - Guia Prático - Carlos E. Morimoto
Redes e Servidores Linux - Guia Prático - Carlos E. Morimoto
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)
 

Semelhante a Sistemas Operacionais e arquivos tarball

Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básicoAdriano Melo
 
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaAndroid Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaFelipe Silveira
 
Web Training Aula 03: Introduction to Laravel
Web Training Aula 03: Introduction to LaravelWeb Training Aula 03: Introduction to Laravel
Web Training Aula 03: Introduction to LaravelMozDevz
 
Cent-OS - Sistema Operacional
Cent-OS - Sistema OperacionalCent-OS - Sistema Operacional
Cent-OS - Sistema OperacionalAnderson Favaro
 
Programação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebProgramação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebIsrael Messias
 
Engenharia Reversa no Linux
Engenharia Reversa no LinuxEngenharia Reversa no Linux
Engenharia Reversa no LinuxFernando Mercês
 
Complemento rodrigo f ormatado
Complemento rodrigo f ormatadoComplemento rodrigo f ormatado
Complemento rodrigo f ormatadoNeon Online
 
Sistemas Operacionais - 06 - Sistemas Operacionais Linux
Sistemas Operacionais - 06 - Sistemas Operacionais LinuxSistemas Operacionais - 06 - Sistemas Operacionais Linux
Sistemas Operacionais - 06 - Sistemas Operacionais LinuxMauro Duarte
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asteriskVicente Nobre
 
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Embarcados
 

Semelhante a Sistemas Operacionais e arquivos tarball (20)

SlackWare - Leonel
SlackWare - LeonelSlackWare - Leonel
SlackWare - Leonel
 
Mini-curso de linux básico
Mini-curso de linux básicoMini-curso de linux básico
Mini-curso de linux básico
 
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataformaAndroid Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
Android Core Aula 1 - Histórico, Arquitetura e Compilação da plataforma
 
Web Training Aula 03: Introduction to Laravel
Web Training Aula 03: Introduction to LaravelWeb Training Aula 03: Introduction to Laravel
Web Training Aula 03: Introduction to Laravel
 
Mastering Laravel
Mastering LaravelMastering Laravel
Mastering Laravel
 
Cent-OS - Sistema Operacional
Cent-OS - Sistema OperacionalCent-OS - Sistema Operacional
Cent-OS - Sistema Operacional
 
snto
sntosnto
snto
 
Programação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente WebProgramação Multiplataforma em Ambiente Web
Programação Multiplataforma em Ambiente Web
 
Engenharia Reversa no Linux
Engenharia Reversa no LinuxEngenharia Reversa no Linux
Engenharia Reversa no Linux
 
Mercurial hg
Mercurial hgMercurial hg
Mercurial hg
 
Compilador
CompiladorCompilador
Compilador
 
Complemento rodrigo f ormatado
Complemento rodrigo f ormatadoComplemento rodrigo f ormatado
Complemento rodrigo f ormatado
 
I educar-manual-de-instalaao
I educar-manual-de-instalaaoI educar-manual-de-instalaao
I educar-manual-de-instalaao
 
Sistemas Operacionais - 06 - Sistemas Operacionais Linux
Sistemas Operacionais - 06 - Sistemas Operacionais LinuxSistemas Operacionais - 06 - Sistemas Operacionais Linux
Sistemas Operacionais - 06 - Sistemas Operacionais Linux
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asterisk
 
A.S.O 2 - Linux
A.S.O 2 - LinuxA.S.O 2 - Linux
A.S.O 2 - Linux
 
tutorial nagios
tutorial nagiostutorial nagios
tutorial nagios
 
Linux
LinuxLinux
Linux
 
S.o iuras
S.o iurasS.o iuras
S.o iuras
 
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
Webinar: Utilizando o Yocto Project para automatizar o desenvolvimento em Lin...
 

Mais de Luiz Arthur

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Luiz Arthur
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãLuiz Arthur
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Luiz Arthur
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsLuiz Arthur
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterLuiz Arthur
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na webLuiz Arthur
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookLuiz Arthur
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Luiz Arthur
 
Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologiaLuiz Arthur
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105Luiz Arthur
 
01 programação - introdução computação
01 programação - introdução computação01 programação - introdução computação
01 programação - introdução computaçãoLuiz Arthur
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação CLuiz Arthur
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonLuiz Arthur
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-segurancaLuiz Arthur
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redesLuiz Arthur
 
Apresentação Primeiro Dia
Apresentação Primeiro DiaApresentação Primeiro Dia
Apresentação Primeiro DiaLuiz Arthur
 
Palestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSourcePalestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSourceLuiz Arthur
 
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelasDissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelasLuiz Arthur
 
Dissertacao - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Algoritmos para simulador de arquiteturas paralelasDissertacao - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Algoritmos para simulador de arquiteturas paralelasLuiz Arthur
 
Palestra - Segurança da Informação - Softwarein Legal
Palestra - Segurança da Informação - Softwarein LegalPalestra - Segurança da Informação - Softwarein Legal
Palestra - Segurança da Informação - Softwarein LegalLuiz Arthur
 

Mais de Luiz Arthur (20)

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhã
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no Twitter
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na web
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e Facebook
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2
 
Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologia
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105
 
01 programação - introdução computação
01 programação - introdução computação01 programação - introdução computação
01 programação - introdução computação
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação C
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-python
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-seguranca
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redes
 
Apresentação Primeiro Dia
Apresentação Primeiro DiaApresentação Primeiro Dia
Apresentação Primeiro Dia
 
Palestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSourcePalestra - Fitem 2009 - Ferramentas de segurança OpenSource
Palestra - Fitem 2009 - Ferramentas de segurança OpenSource
 
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelasDissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
 
Dissertacao - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Algoritmos para simulador de arquiteturas paralelasDissertacao - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Algoritmos para simulador de arquiteturas paralelas
 
Palestra - Segurança da Informação - Softwarein Legal
Palestra - Segurança da Informação - Softwarein LegalPalestra - Segurança da Informação - Softwarein Legal
Palestra - Segurança da Informação - Softwarein Legal
 

Sistemas Operacionais e arquivos tarball

  • 1. 1 Sistemas Operacionais Luiz Arthur Sem dúvida o código livre está sendo o grande rival das empresas que produzem software “proprietário”. A filosofia do software livre tem confundido muitas pessoas, pois livre não está associada a software grátis e sim à liberdade. O termo livre refere-se à liberdade de o usuário executar, copiar, distribuir e aperfeiçoar o programa. O distribuidor pode até cobrar uma taxa pelo software, como acontece nas distribuições Linux empacotadas. Desde que o direito de alterar o programa e redistribuí-lo seja preservado, o software continua sendo livre. A maioria das distribuições do Linux vem muito software livre nos CD-ROMS. O próprios site do GNU contém muito software disponível. Uma vez que se possa utilizar software livre, é necessário compilar e instalar estes programas. Um ótimo site para procurar programas é o http://www.freshmeat.net. Porém para isso é necessário entender o conceito de arquivos tarball.
  • 2. 2 Sistemas Operacionais Luiz Arthur Arquivos Tarball Os arquivos tarball são distribuições de software livre que mantêm uma estrutura de diretório, arquivos fonte, um arquivo Makefile, documentação e outros arquivos, encapsulados em um arquivo tar com compressão de dados gzip. Este método de distribuição de software é muito popular porque os utilitários tar e gzip são muitos comuns. O resultado é um arquivo de extensão .tar.gz ou .tgz. Ainda é possível encontrar os arquivos tarball com as extensões .bz2 e .tbz2. Este arquivos são compactados com o bzip2, que utiliza um algoritmo de compressão de dados melhor que o gzip. Para abrir o conteúdo de um arquivo tarball: #gzip -d arquivo.tar.gz O comando gzip descomprime o arquivo .tar.gz e retira a extensão .gz: #tar xvf arquivo.tar O utilitários tar extrai o conteúdo do pacote.
  • 3. 3 Sistemas Operacionais Luiz Arthur Pode-se também utilizar formas mais simples: #tar xvzf arquivo.tar.gz ou #gzip -dc arquivo.tar.gz | tar vx Se o arquivo for compactado com o bzip2, ele deve ser descompactado pelo bunzip2 ou utilizar a opção -d do bzip2: #tar xvjf arquivo.tar.bz2 ou #bunzip2 arquivo.tar.bz2 e # tar xvf arquivo.tar A saída de qualquer dos comandos citados anteriormente é um conjunto de arquivos sem compactação, ou seja, os arquivo compactados deverão gerar uma estrutura de arquivos/diretórios.
  • 4. 4 Sistemas Operacionais Luiz Arthur Compilando o Código-fonte Depois de extrair o conteúdo de um pacote de software é necessário compilar e fazer sua instalação. O compilador mais utilizado no Linux é a Coleção de Compiladores GNU – GCC. Ele compila códigos C ANSI, bem como C++, Java e Fortran. O GCC suporta vários níveis de checagem de erros nos códigos-fonte, produz informações de debug e pode ainda otimizar o arquivo objeto produzido. O GCC suporta os novos processadores Intel IA-64, permitindo que os programas executem nesta arquitetura. Alguns programas do pacote do GNU são necessários para compilar um programa código livre. São eles: Make O utilitário make é necessário para compilar múltiplos arquivos de código fonte de um projeto. Ele utiliza um arquivo de descrição geralmente nomeado makefile ou Makefile. O conteúdo deste arquivo contém regras que definem as dependências entre arquivos fonte e os comandos necessários para a compilação.
  • 5. 5 Sistemas Operacionais Luiz Arthur A partir arquivo de descrição make ele executa seqüências de comandos que são interpretados pelo shell. Geralmente o compilador gcc é invocado com diversas opções que completam as dependências de outros arquivos objetos e bibliotecas. “DEPENDENCIA é um pacote (programa) necessário para a compilação ou funcionamento de um dado programa, um programa pode ser DEPENDENTE de um ou mais pacotes”. Mesmo os menores projetos de software podem contêm vários arquivos que têm interdependência, e o comando make facilita manter e compilar os projetos. Configure Alguns projetos incluem um arquivo especial chamado configure. Este arquivo é um script de shell que examina o sistema para verificar se as diversas dependências necessárias para compilar o projeto serão satisfeitas. O configure procura por compiladores, bibliotecas, utilitários e outros itens necessários. Ele também pode receber informações extras do usuário, como diretivas de compilação, habilitar ou desabilitar opções incluídas ou excluídas do objeto a ser compilado.
  • 6. 6 Sistemas Operacionais Luiz Arthur Se alguma dependência estiver ausente este script (configure) avisa o usuário para que ele satisfaça instalando arquivos e programas necessários ao projeto. Depois de reunir toda a informação necessária o configure gera um arquivo Makefile customizado para o sistema. O configure é fornecido pelo programador do projeto utilizando o utilitário autoconf. Após, executar o comando configure (se este existir) para criar o arquivo Makefile, podemos continuar a instalação do sistema com os comandos make para compilar o programa e make install para instalar os arquivos compilados. Por exemplo para instalar o servidor de Web (HTTP) Apache: #tar vxzf apache-1.3.31.tar.gz #cd apache-1.3.31 #./configure #make #make install Depois de instalar você pode apagar o diretório apache-1.3.31 gerado pelo arquivo apache-1.3.31.tar.gz.
  • 7. 7 Sistemas Operacionais Luiz Arthur Gerenciando Bibliotecas Compartilhadas Para entender a gerência das bibliotecas compartilhadas, precisa-se primeiro saber o que são bibliotecas e para que elas servem. Durante a escrita do código-fonte de um programa, o desenvolvedor faz uso de diversas funções e procedimentos já definidos em arquivos chamados bibliotecas. Estas funções permitem que o programador possa usar recursos como escrita em disco, escrita na tela, receber dados do teclado, do mouse, enviar dados pela rede e muito mais, sem a necessidade de reescrever a roda. Quando o programa é compilado, o último estágio de sua construção é fazer as ligações (linker). Alguns compiladores já fazem este processo de reunir todos os objetos necessários e compor um objeto final automaticamente. Outros necessitam que o programador execute um outro programa chamado de linker. Existem dois tipos de bibliotecas no Linux: as estáticas e as dinâmicas. A decisão de qual biblioteca utilizar compete ao programador.
  • 8. 8 Sistemas Operacionais Luiz Arthur Ao usar uma biblioteca estática, o linker encontra as funções e procedimentos de que o programa precisa, e as copia fisicamente no arquivo de saída executável gerado. Isso faz com que o executável final possa rodar de forma independente sem utilizar nenhuma biblioteca. Mas perde-se na performance, no gasto desnecessário de memória e no tamanho final do programa. Para resolver este problema o programador pode fazer uso de bibliotecas compartilhadas (dinâmicas). Ao fazer as ligações de um programa que as utiliza, o linker faz uma referência às bibliotecas compartilhadas. Desta forma, quando este programa for executado, o sistema terá de carregar primeiro as bibliotecas necessárias. Desta maneira, os executáveis gerados através do uso de bibliotecas compartilhadas são mais eficientes, pois tendem a ser menores, usar menos memória e ocupar menos espaço em disco. O ponto fraco desta metodologia é que os programas necessitam das bibliotecas compartilhadas e uma mudança nas versões destes arquivos também pode afetar o seu funcionamento. Os arquivos executáveis são examinados no tempo de execução pelo linker de tempo de execução chamado ld.so. Este interpretador especial completa as ligações entre o executável e as bibliotecas compartilhadas. Se o ld.so não conseguir encontrar e ler as dependências, ele irá falhar e o executável não irá ser carregado.
  • 9. 9 Sistemas Operacionais Luiz Arthur O linker ld.so mantém índice de todas as bibliotecas e sua localização em um arquivos especial chamado /etc/ld.so.cache. Ele é binário e, portanto, pode ser lido rapidamente pelo ld.so. É isto que um administrador Linux tem de estar preparado para gerenciar as bibliotecas compartilhadas e suas versões para um correto funcionamento do sistema e seus aplicativos. Os utilitários que irão ajudar nesta tarefa são: ldd O comando ldd – List Dynamic Dependencies – fornece uma lista das dependências dinâmicas de que um determinado programa precisa. Ele irá retornar o nome da biblioteca compartilhada e sua localização esperada. $ ldd /bin/bash linux-gate.so.1 => (0xffffe000) libtermcap.so.2 => /lib/libtermcap.so.2 (0xb7f8c000) libdl.so.2 => /lib/tls/libdl.so.2 (0xb7f88000) libc.so.6 => /lib/tls/libc.so.6 (0xb7e59000) /lib/ld-linux.so.2 (0xb7fad000) Este comando é importante para determinar quais são as bibliotecas necessárias de um executável.
  • 10. 10 Sistemas Operacionais Luiz Arthur ldconfig O utilitário ldconfig cria os links e refaz o índice das bibliotecas dinâmicas do arquivo /etc/ld.so.cache. Ele procura por bibliotecas nos diretórios /usr/lib e /lib, assim como nos diretórios listados em /etc/ls.so.conf, bem como o diretório informado na linha de comando. As opções mais comuns são: -p Lista o conteúdo do cache /etc/ld.so.cache -v Mostra o progresso da atualização do cache. -f arquivo Informa um outro arquivo de configuração diferente do padrão /etc/ld.so.conf.
  • 11. 11 Sistemas Operacionais Luiz Arthur Atividade 1 1 – Pesquise por ferramentas que facilitam a instalação em sistemas Linux. 2 – Pesquise sobre a ferramenta de instalação do Slackare, indicando as opções de como instalar, atualizar e remover os pacotes. 3- Pesquise sobre a ferramenta de instalação do Debian (que é igual ao ubunto, Kurumin, etc), indicando as opções de como instalar, atualizar e remover os pacotes. 4 - Pesquise sobre a ferramenta de instalação do Gentoo, indicando as opções de como instalar, atualizar e remover os pacotes. 5 - Pesquise sobre a ferramenta de instalação do Red-Hat, indicando as opções de como instalar, atualizar e remover os pacotes. 6 -Pesquise sobre a ferramenta de instalação apt-get (procure por versões para o Slackware), indicando as opções de como instalar, atualizar e remover os pacotes.
  • 12. 12 Sistemas Operacionais Luiz Arthur fim