Você está na página 1de 176
Introdução ao Linux Lucas Torres Lima

Introdução

ao Linux

Lucas Torres Lima

Sobre a RNP – qualificada como uma Organização Social (OS), a Rede Nacional de Ensino e Pesquisa (RNP) é vinculada ao Ministério da Ciência, Tecnologia, Inovação e Comunicações (MCTIC) e mantida por esse, em conjunto com os ministérios da Educação (MEC), Cidadania, Saúde (MS) e Defesa (MD), que participam do Programa Interministerial RNP (PI-RNP). Pioneira no acesso à internet no Brasil, a RNP planeja, opera e mantém a rede Ipê, infraestrutura óptica nacional acadêmica de alto desempenho. Com Pontos de Presença em 27 unidades da federação, a rede conecta 1.174 campi e unidades nas capitais e no interior. São mais de 4 milhões de usuários, usufruindo de uma infraestrutura de redes avançadas para comunicação, computação e experimentação, que contribui para a integração dos sistemas de Ciência e Tecnologia, Educação Superior, Saúde, Cultura e Defesa. Saiba mais em https://rnp.br.

dos sistemas de Ciência e Tecnologia, Educação Superior, Saúde, Cultura e Defesa. Saiba mais em https://rnp.br.
dos sistemas de Ciência e Tecnologia, Educação Superior, Saúde, Cultura e Defesa. Saiba mais em https://rnp.br.
Introdução ao Linux Lucas Torres Lima

Introdução

ao Linux

Lucas Torres Lima

Introdução ao Linux Lucas Torres Lima Rio de Janeiro Escola Superior de Redes 2019

Introdução

ao Linux

Lucas Torres Lima

Rio de Janeiro Escola Superior de Redes

2019

Copyright © 2019 – Rede Nacional de Ensino e Pesquisa – RNP Rua Lauro Müller, 116 sala 1103 22290-906 Rio de Janeiro, RJ

Diretor Geral

Nelson Simões

Diretor de Serviços e Soluções José Luiz Ribeiro Filho

Escola Superior de Redes

Diretor Adjunto Leandro Marcos de Oliveira Guimarães

Edição Lincoln da Mata

Revisão Técnica Bruno Alves Fagundes

Coordenação Acadêmica de Administração de Sistemas Renato Duarte Rocha

Equipe ESR (em ordem alfabética) Adriana Pierro, Alessandra Silva, Alessandra Souza, Camila Gomes, Célia Maciel, Elimária Barbosa, Evellyn Feitosa, Felipe Nascimento, Lourdes Soncin, Luciana Batista, Márcia Corrêa, Márcia Rodrigues, Monique Souza, Renato Duarte, Thays Farias, Thyago Alves e Yve Marcial.

Capa, projeto visual e diagramação Tecnodesign

Versão

3.0.0

Este material didático foi elaborado com fins educacionais. Solicitamos que qualquer erro encon- trado ou dúvida com relação ao material ou seu uso seja enviado para a equipe de elaboração de conteúdo da Escola Superior de Redes, no e-mail info@esr.rnp.br. A Rede Nacional de Ensino e Pesquisa e os autores não assumem qualquer responsabilidade por eventuais danos ou perdas, a pessoas ou bens, originados do uso deste material. As marcas registradas mencionadas neste material pertencem aos respectivos titulares.

Distribuição

Escola Superior de Redes

Rua Lauro Müller, 116 – sala 1103 22290-906 Rio de Janeiro, RJ http://esr.rnp.br info@esr.rnp.br

Dados Internacionais de Catalogação na Publicação (CIP)

P377a

Lima, Lucas Torres Introdução ao Linux / Lucas Torres Lima; Revisor: Bruno Fagundes. – Rio de Janeiro:

RNP/ESR, 2019. 172 p. : il. ; 27,5 cm.

ISBN 978-85-63630-59-9

1. Linux (Sistema operacional de computador). 2. Sistema operacional (computadores). 3. Segurança em Desktop Linux. I. Titulo.

Sumário

Escola Superior de Redes

A metodologia da ESR ix

Sobre o curso  x

A quem se destina x

Convenções utilizadas neste livro xi

Permissões de uso xi

Sobre o autor xii

1.

Histórico

O que é um Sistema Operacional? 1

Arquitetura do Sistema Operacional Unix 2

Características principais 3

Histórico do Unix 5

Versões do Unix 5

Similares Unix 6

Software Livre 7

Licença GPL 8

Distribuições Linux 8

Red Hat Enterprise Linux 8

CentOS 9

Debian 9

Ubuntu 9

Slackware 10

GPL  8 Distribuições Linux  8 Red Hat Enterprise Linux  8 CentOS  9 Debian  9 Ubuntu  9

A escolha da distribuição Linux 10

Razões para usar o Linux 10

Hardwares suportados 11

Lista de verificação de hardware 11

Requisitos mínimos de hardware 12

2. Linux no desktop

Adquirindo uma cópia do Linux 15

Tipos de instalação e aquisição do Linux 17

Instalando o Linux 19

O que é LVM 19

Implementando um desktop com Linux 20

Adicionando um novo usuário 20

Instalação de plug-ins 22

Alterando o gerenciador de display 23

GNOME desktop 23

KDE desktop 26

Unity desktop 28

Xfce desktop 29

Janelas com efeitos 3D 30

Entretenimento 31

Instalação do Linux e Windows em Dual Boot 32

O que é Dual Boot 32

Boot Manager 33

MBR 34

Porque instalar o Windows antes do Linux 34

3. Instalação de aplicações

Aplicações no Sistema Operacional Linux 39

Linguagens de programação  40

Instalando aplicações a partir de seus códigos-fontes 41

Obtenção dos arquivos-fontes 42

Verificação do ambiente para a compilação 42

Compilação e instalação 42

Instalando aplicações a partir de arquivos binários 43

Formato padrão para distribuições Debian 44

binários  43 Formato padrão para distribuições Debian  44 Formato padrão para distribuições RedHat  44 iv

Formato padrão para distribuições RedHat 44

Red Hat Package Manager (RPM) 45

Debian Package (dpkg) 47

Instalando aplicações a partir de repositórios 47

YUM 48

Configurando o YUM 48

Utilizando o YUM 49

Instalando e removendo pacotes  49

Instalando grupos de pacotes 50

Atualizando o sistema 50

Fazendo buscas e obtendo informações sobre pacotes 51

Advanced Packaging Tool (APT) 52

Gerenciadores de Pacotes em modo gráfico 54

Procurando um pacote 55

Instalando um pacote 55

Removendo um pacote 56

Dicas sobre gerenciadores de pacotes 56

4. Organização do Linux

Sistema de arquivos do Linux 57

FHS – Filesystem Hierarchy Standard 57

Tipos de arquivos 60

Inode 60

Arquivo regular 60

Diretório 60

Arquivos de dispositivos 61

Named pipes 62

Links 63

Sockets 63

Atributos dos arquivos 64

Como usar os comandos 65

Man pages 66

O help online 70

Help para comandos built-in 70

Permissões de arquivos 71

Operações com arquivos e diretórios 73

Redirecionamento de entrada e saída 73

Criando diretórios 74

71 Operações com arquivos e diretórios  73 Redirecionamento de entrada e saída  73 Criando diretórios  74

Copiando arquivos e diretórios 75

Removendo arquivos e diretórios 76

Movendo arquivos e diretórios 76

Listando arquivos e diretórios 76

Procurando arquivos e diretórios 77

Navegando pela árvore de diretórios 77

Empacotando e compactando arquivos e diretórios 78

5. Desvendando o Linux

Entrada e saída padrão de dados e saída padrão de erros 81

Redirecionamento de entrada e saída 82

Pipe ou canalização 83

Comandos para manipulação de arquivos  85

Contabilizando o conteúdo de arquivos 86

Exibindo o conteúdo inicial e final de arquivos 86

Selecionando trechos de arquivos 87

Comparação entre arquivos 89

6. Edição de texto

Processadores de texto 91

Editores de texto 91

Editor Nano 93

Criando um novo arquivo 93

Editando um arquivo existente 94

Teclas de movimentação 94

Editor vi 95

Modos do editor vi 97

7. Shell

Noções básicas 103

Gerenciamento de processos 104

Utilitários de inicialização 106

SysVinit 106

SystemD 107

Verificando o utilitário de inicialização 108

Runlevels x Targets 108

106 SysVinit  106 SystemD  107 Verificando o utilitário de inicialização  108 Runlevels x Targets  108 vi

Criação de processos 109

Visualização de processos 110

Variáveis de ambiente 111

Uso de aspas simples, duplas e barra invertida  113

8. Configuração de Rede no Linux

Introdução 115

Configurando a rede em Modo Gráfico 115

Rede cabeada 115

Rede Wi-Fi 118

Configurando a Rede em Linha de Comando 120

Rede Wi-Fi 122

Configurando a Rede com Arquivos de Configuração 123

Para distribuições baseadas em Debian 123

Para distribuições baseadas em RedHat 125

Reiniciando a rede 127

Verificando a rede 129

ping 130

nslookup 131

route 131

netstat 132

traceroute 132

9. Segurança básica

Introdução 135

Contas Privilegiadas e não Privilegiadas 136

O

comando su 137

O

comando sudo 138

Esqueci minha senha 138

Dicas de segurança 139

Bloqueio do BIOS 139

Trabalhando com senhas 139

Utilização do usuário root 140

Desabilitar ou remover serviços desnecessários 141

Vigiando o Linux, trabalhando com logs 142

Antivírus no Linux 143

ou remover serviços desnecessários  141 Vigiando o Linux, trabalhando com logs  142 Antivírus no Linux  143

Firewall 143

Regras 144

O Netfilter 144

Atualizando o Linux 145

Comandos de atualização para o Debian e distribuições derivadas 145

Comandos de atualização para o RedHat e distribuições derivadas 145

10.Configuração e utilização de dispositivos de hardware

Introdução 147

Arquivos de dispositivos 148

Módulos 149

Initrd 150

Gerenciando dispositivos 150

Hotplug 150

Udev 151

Identificando e configurando dispositivos 152

Unidades de CD/DVD 153

Dispositivos de armazenamento USB 154

Interfaces de rede 155

Placas SCSI 155

Placas de vídeo 156

Gerenciamento de energia 156

Advanced Power Management (APM) 156

Advanced Configuration and Power Interface (ACPI) 156

de energia  156 Advanced Power Management (APM)  156 Advanced Configuration and Power Interface (ACPI)  156 viii

Escola Superior de Redes

A Escola Superior de Redes (ESR) é a unidade da Rede Nacional de Ensino e Pesquisa (RNP)

responsável pela disseminação do conhecimento em Tecnologias da Informação e Comunica- ção (TIC). A ESR nasce com a proposta de ser a formadora e disseminadora de competências em TIC para o corpo técnico-administrativo das universidades federais, escolas técnicas e unidades federais de pesquisa. Sua missão fundamental é realizar a capacitação técnica do corpo funcional das organizações usuárias da RNP, para o exercício de competências aplicá- veis ao uso eficaz e eficiente das TIC.

A ESR oferece dezenas de cursos distribuídos nas áreas temáticas: Administração e Projeto

de Redes, Administração de Sistemas, Segurança, Mídias de Suporte à Colaboração Digital e Governança de TI.

A ESR também participa de diversos projetos de interesse público, como a elaboração e

execução de planos de capacitação para formação de multiplicadores para projetos edu- cacionais como: formação no uso da conferência web para a Universidade Aberta do Brasil (UAB), formação do suporte técnico de laboratórios do Proinfo e criação de um conjunto de cartilhas sobre redes sem fio para o programa Um Computador por Aluno (UCA).

A metodologia da ESR

A filosofia pedagógica e a metodologia que orientam os cursos da ESR são baseadas na

aprendizagem como construção do conhecimento por meio da resolução de problemas típi- cos da realidade do profissional em formação. Os resultados obtidos nos cursos de natureza teórico-prática são otimizados, pois o instrutor, auxiliado pelo material didático, atua não apenas como expositor de conceitos e informações, mas principalmente como orientador do aluno na execução de atividades contextualizadas nas situações do cotidiano profissional.

A aprendizagem é entendida como a resposta do aluno ao desafio de situações-problema

semelhantes às encontradas na prática profissional, que são superadas por meio de análise, síntese, julgamento, pensamento crítico e construção de hipóteses para a resolução do pro- blema, em abordagem orientada ao desenvolvimento de competências.

Dessa forma, o instrutor tem participação ativa e dialógica como orientador do aluno para as atividades em laboratório. Até mesmo a apresentação da teoria no início da sessão de apren- dizagem não é considerada uma simples exposição de conceitos e informações. O instrutor busca incentivar a participação dos alunos continuamente.

exposição de conceitos e informações. O instrutor busca incentivar a participação dos alunos continuamente. ix

As sessões de aprendizagem onde se dão a apresentação dos conteúdos e a realização das atividades práticas têm formato presencial e essencialmente prático, utilizando técnicas de estudo dirigido individual, trabalho em equipe e práticas orientadas para o contexto de atua- ção do futuro especialista que se pretende formar.

As sessões de aprendizagem desenvolvem-se em três etapas, com predominância de tempo para as atividades práticas, conforme descrição a seguir:

Primeira etapa: apresentação da teoria e esclarecimento de dúvidas (de 60 a 90 minutos).

O instrutor apresenta, de maneira sintética, os conceitos teóricos correspondentes ao tema

da sessão de aprendizagem, com auxílio de slides em formato PowerPoint. O instrutor levanta questões sobre o conteúdo dos slides em vez de apenas apresentá-los, convidando a turma à reflexão e participação. Isso evita que as apresentações sejam monótonas e que o aluno se coloque em posição de passividade, o que reduziria a aprendizagem.

Segunda etapa: atividades práticas de aprendizagem (de 120 a 150 minutos). Esta etapa é a essência dos cursos da ESR. A maioria das atividades dos cursos é assíncrona e realizada em duplas de alunos, que acompanham o ritmo do roteiro de atividades proposto no livro de apoio. Instrutor e monitor circulam entre as duplas para solucionar dúvidas e oferecer explicações complementares.

Terceira etapa: discussão das atividades realizadas (30 minutos).

O instrutor comenta cada atividade, apresentando uma das soluções possíveis para resolvê-la,

devendo ater-se àquelas que geram maior dificuldade e polêmica. Os alunos são convidados a comentar as soluções encontradas e o instrutor retoma tópicos que tenham gerado dúvidas, estimulando a participação dos alunos. O instrutor sempre estimula os alunos a encontrarem soluções alternativas às sugeridas por ele e pelos colegas e, caso existam, a comentá-las.

Sobre o curso

Esse é o curso introdutório da trilha de Administração de Sistemas. Seu objetivo é introduzir

o aluno ao mundo Linux. Para as atividades práticas utilizamos Sistemas Operacionais Linux atualizados e estáveis.

O curso é composto de 10 capítulos de embasamento teórico e atividades correlatas para

aprendizado e fixação do conhecimento. O curso tem como objetivo apresentar as facilidades de administração e gerenciamento, que serão exploradas com maior profundidade nos demais cursos da área de Administração de Sistemas da Escola Superior de Redes da RNP

A quem se destina

Esse é o curso que abrirá as portas para um ambiente computacional moderno e ágil que está sendo usado no mundo inteiro, como uma opção cada vez mais técnica e dinâmica para o gerenciamento de plataformas computacionais complexas. Destina-se também a administradores de sistemas Windows com interesse em atualização tecnológica.

complexas. Destina-se também a administradores de sistemas Windows com interesse em atualização tecnológica. x

Convenções utilizadas neste livro

As seguintes convenções tipográficas são usadas neste livro:

Itálico Indica nomes de arquivos e referências bibliográficas relacionadas ao longo do texto.

Comandos ou Código fonte

Indica comandos e suas opções, variáveis e atributos, conteúdo de arquivos e resultado da saída

de comandos.

Janela do tipo terminal

Trechos que não são código (programa fonte) e sim o resultado apresentado no monitor do computador após a execução de um comando. Em geral dizemos que é o output apresentado numa janela do tipo terminal.

Símbolo

!

Indica um aviso ou precaução a ser considerada.

Símbolo

p

Indica questionamentos que estimulam a reflexão ou apresenta conteúdo de apoio ao entendimento do tema em questão.

Símbolo

l

Indica notas e informações complementares como dicas, sugestões de leitura adicional ou mesmo uma observação.

Símbolo

de leitura adicional ou mesmo uma observação. Símbolo Indica um documento ou arquivo disponível no Ambiente

Indica um documento ou arquivo disponível no Ambiente Virtual de Aprendizagem – AVA que pode ser utilizado como referência complementar.

Símbolo

pode ser utilizado como referência complementar. Símbolo Indica atividade a ser executada no Ambiente Virtual de

Indica atividade a ser executada no Ambiente Virtual de Aprendizagem – AVA.

Permissões de uso

Todos os direitos reservados à RNP. Agradecemos sempre citar esta fonte quando incluir parte deste livro em outra obra. Exemplo de citação: PEIXOTO, Arthur Mendes; LIMA, Lucas Torres. Introdução ao Linux. Rio de Janeiro: Escola Superior de Redes, 2013.

Comentários e perguntas

Para enviar comentários e perguntas sobre esta publicação:

Escola Superior de Redes RNP Endereço: Av. Lauro Müller 116 sala 1103 – Botafogo Rio de Janeiro – RJ – 22290-906 E-mail: info@esr.rnp.br

Endereço: Av. Lauro Müller 116 sala 1103 – Botafogo Rio de Janeiro – RJ – 22290-906

Sobre o autor

Lucas Torres Lima possui graduação em Análise e Desenvolvimento de Sistemas pela UNITINS-TO. Detém certificações internacionais como a LPIC-1, NCLA-11 e DCTS. Abrange 11 anos de experiência em Tecnologia da Informação, enfatizando atuação em instrutoria, Administração de Servidores Linux e gerência corporativo com ferramentas Symantec. Neste período atuou em empresas como Receita Federal do Brasil, Centro de Computação da Aeronáutica de Brasília e Brasil Telecom (Oi). Atualmente é empregado público na empresa SERPRO, Instrutor Acadêmico e Consultor Autônomo.

e Brasil Telecom (Oi). Atualmente é empregado público na empresa SERPRO, Instrutor Acadêmico e Consultor Autônomo.

1

Capítulo 1 - Histórico

Histórico

objetivos

Compreender o que é um Sistema Operacional; Entender o funcionamento do Software Livre; Estudar a arquitetura do Sistema Operacional Unix.

O que é um Sistema Operacional; Histórico do Unix; O que são Softwares Livres e Licenças.

conceitos

O que é um Sistema Operacional?

Um Sistema Operacional é a interface de comunicação entre o usuário e o hardware. Para desempenhar essa função, o Sistema Operacional deve conhecer a linguagem do usuário e a do hardware, e também controlar a troca de mensagens entre os dois. Além disso, deve inter- pretar as ordens do usuário e passar ao hardware as instruções para que sejam executadas.

Principais funções desempenhadas por um Sistema Operacional:

1 Gerenciar o uso da CPU: o Sistema Operacional deve controlar a utilização da CPU, dividindo seu tempo de uso de modo que ela execute os processos dos usuários e do próprio Sistema Operacional, um de cada vez, enquanto os outros aguardam na fila para serem processados.

1 Gerenciar o uso da memória: é preciso manter a integridade dos dados e dos pro- gramas em execução na memória RAM do computador.

1 Gerenciar os dispositivos de entrada e saída: é função do Sistema Operacional geren- ciar os acessos aos dispositivos de entrada e saída de dados (I/O), como: impressoras, monitores, teclados, scanners, microfones, caixas de som etc. Um subsistema, ou subconjunto de programas, realiza essa função específica do sistema, que consiste entre outras coisas na leitura e escrita de dados nesses periféricos.

1 Gerenciar o armazenamento de dados: é função do Sistema Operacional armazenar e recuperar os dados nos dispositivos de armazenamento, como discos rígidos, pen drives, CDs, DVDs etc.

1 Interpretar comandos: é necessário que o sistema interaja com o usuário. O interpre- tador de comandos recebe os pedidos ou os comandos e compreende o que o usuário deseja executar. Após interpretar o comando, encaminha pedidos aos outros módulos do Sistema Operacional, especializados em atender esses pedidos.

o comando, encaminha pedidos aos outros módulos do Sistema Operacional, especializados em atender esses pedidos. 1

Introdução ao Linux

Essas funções básicas são as mínimas necessárias para o funcionamento de um compu- tador. Veremos que um Sistema Operacional pode ter muitas outras funções que definem sua especialização.

Dependendo do tipo de aplicação que um computador vai suportar, seu Sistema Operacional pode necessitar executar funções especiais, além das básicas apresentadas anteriormente. Um Sistema Operacional que se destina a aplicações pessoais deve ter interface gráfica bem desenvolvida para facilitar a utilização por usuários leigos em sistemas. Há aqueles que se destinam a aplicações em tempo real, ou seja, que são sensíveis a retardos, conforme ocorre com alguns controles de processos industriais. Existem computadores que são comparti- lhados, atendendo a usuários de uma empresa ou departamento, que necessitam realizar diversas tarefas simultâneas (multitarefa), ou que permitem vários usuários conectados simultaneamente (multiusuário). Esses computadores necessitam de Sistemas Operacionais que realizem funções especiais, como:

1 Controle de acesso: administra o acesso de múltiplos usuários às informações armaze- nadas e aos dados em memória, garantindo a confidencialidade dessas informações. É função do Sistema Operacional garantir o sigilo às informações de cada usuário, restrin- gindo o acesso a essas informações a outros usuários que utilizem o mesmo sistema.

1 Gerência de contabilização: contabiliza todas as atividades do sistema, armazenando em disco as informações relativas às estatísticas de utilização, para posterior emissão de relatórios.

Veremos que, desde o nascimento do Unix até os dias atuais, além das funcionalidades básicas e especiais, várias outras funções foram agregadas ao Sistema Operacional, tornando-o um sistema de grande complexidade e aplicabilidade, ou seja, um Sistema Operacional multipurpose.

Arquitetura do Sistema Operacional Unix

O Unix foi projetado com arquitetura em camadas, o que permite maior independência

do hardware utilizado. Para que isso seja possível, apenas uma pequena parte do sistema possui acesso direto ao hardware e se comunica com o restante do sistema.

Somente o kernel depende do hardware, permitindo que quase todo o sistema seja reapro- veitado na migração entre diferentes máquinas. O interpretador de comandos, chamado de shell, não faz parte do kernel do sistema, e é uma excelente linguagem de programação, que torna o Unix um sistema bastante versátil.

O gerenciador de processos faz parte do kernel do Sistema Operacional e é o responsável

pelo gerenciamento dos processos em execução e pela divisão do tempo de processamento da CPU entre esses processos. Cada processo necessita de um período de tempo reservado para que possa ser executado pela CPU. Depois que esse tempo se esgota, outro processo passa a ser processado e o anterior passa a aguardar por um novo período de tempo para ser novamente processado.

A cada processo é atribuída uma prioridade, que se altera dinamicamente conforme a exe-

cução de um algoritmo no kernel do Unix. O gerenciador de processos também é respon- sável por gerenciar uma área em disco que se constitui em uma extensão da memória RAM principal da máquina e que é utilizada em casos de esgotamento dessa memória. A área é chamada de área de swap, para onde são copiadas temporariamente imagens dos processos,

dessa memória. A área é chamada de área de swap, para onde são copiadas temporariamente imagens

Capítulo 1 - Histórico

liberando, assim, parte de memória para permitir que outros processos possam ser execu-

tados. A figura 1.1 mostra como é dividida a arquitetura do Sistema Operacional Unix. Essa

divisão proporciona a esse sistema diversas características, que veremos a seguir.

Figura 1.1 Divisão do Sistema Operacional Unix.

Usuários e aplicações

Interpretador de comandos

Chamadas do sistema

Kernel

Hardware

Características principais

O Unix é um Sistema Operacional muito flexível, com grande número de funcionalidades.

Principais características:

1 Portabilidade: o Unix é portável, ou seja, pode ser adaptado facilmente para ser exe-

cutado em diferentes arquiteturas de hardware. Sua adequação a um novo hardware é

rápida e exige pequeno esforço de programação. Talvez essa seja a característica mais

importante desse Sistema Operacional, que permitiu sua adoção por centenas de fabri-

cantes diferentes. A portabilidade se estende, também, para os programas e pacotes de

software escritos para o Unix, o que promoveu grande desenvolvimento de aplicativos e

intensificou sua expansão no mercado.

1 Multiusuário: o Unix foi concebido para ser um sistema multiusuário, suportando cone-

xões simultâneas de diversos usuários. Com isso, é possível melhor utilização da capaci-

dade de processamento e da manipulação e armazenamento das informações do sistema

de computação. Para isso, o Sistema Operacional possui ferramentas de segurança para

permitir o isolamento das atividades de cada usuário.

1 Multiprocessamento: a funcionalidade de multiprocessamento do Unix permite a um

usuário executar múltiplas tarefas simultaneamente. O sistema pode acessar um arquivo

ou imprimir um relatório ao mesmo tempo em que o usuário pode editar um documento,

possibilitando melhor produtividade e reduzindo a ociosidade tanto do processador

quanto dos recursos de entrada e saída do sistema. A figura 1.2 ilustra o conceito de

multiprocessamento.

Figura 1.2

Multiprocessa-

mento: execução de múltiplas tarefas ao mesmo tempo

Processos Time slice 1 3 2 2 3 4 4
Processos
Time slice
1
3
2
2
3
4
4
Swap 3 1
Swap
3
1

Multi

processamento

de múltiplas tarefas ao mesmo tempo Processos Time slice 1 3 2 2 3 4 4

1

Estrutura hierárquica de diretórios: o sistema de armazenamento de informações

Introdução ao Linux

possui estrutura hierárquica, como mostra a figura 1.3. A estrutura hierárquica é uma

forma de arquivamento natural, pois pode ser comparada, por exemplo, à estrutura

organizacional hierárquica de uma empresa e, consequentemente, torna mais fácil a

localização e a manipulação de informações distribuídas por essa estrutura.

/ (root) Vendas Compras Oeste Arquivos Arquivos de contas de salários a pagar Relatórios de
/ (root)
Vendas
Compras
Oeste
Arquivos
Arquivos
de contas
de salários
a pagar
Relatórios
de vendas

Folha de pagamento

Arquivos de cartões de ponto
Arquivos
de cartões
de ponto
Leste Relatórios de vendas
Leste
Relatórios
de vendas

Figura 1.3

Estrutura de

hierarquia do

sistema de

armazenamento de

informações.

1 Interpretador de comandos (shell): a interação do usuário com o Sistema Operacional

Unix é controlada por um poderoso interpretador de comandos, conhecido como shell. Esse

interpretador suporta várias funcionalidades, como o redirecionamento de entrada e saída, a

manipulação de grupos de arquivos com apenas um comando, a execução de sequências de

comandos predefinidos, entre outras, facilitando a execução de tarefas complexas.

1 Pipelines: o uso de pipelines ou pipes permite conectar a saída de um comando à entrada

de outro, como mostra a figura 1.4. Essa é uma das mais famosas características do Unix e

é utilizada para a execução de funções mais complexas. Muitas vezes, novas tarefas exigem

apenas que programas já existentes e também utilitários sejam combinados para a

execução de uma nova função, sem a necessidade de desenvolver um novo programa.

Entrada

padrão

Comando 1 Comando 2 Comando 3 Comando 4
Comando 1
Comando 2
Comando 3
Comando 4

$ Comando1

|

Comando2

|

Comando3

|

Comando4

Saída

padrão

Figura 1.4 Uso de pipelines ou pipes.

1 Utilitários: o Unix incorpora centenas de programas utilitários para funções, como: seleção

de dados, processamento de texto e busca de informações. Essas facilidades formam um

conjunto de ferramentas que permitem a execução de diversos tipos de tarefas.

1 Desenvolvimento de software: o Unix também é conhecido como uma plataforma de

desenvolvimento de software, pois possui ferramentas que suportam todas as fases do

processo de desenvolvimento, desde a preparação até a depuração. Devido à sua porta-

bilidade, esses softwares podem ser utilizados em microcomputadores ou em computa-

dores de grande porte.

1 Maturidade: o Unix é um Sistema Operacional sólido, testado e aprovado pelo mercado,

Operacional sólido, testado e aprovado pelo mercado, que vem sendo utilizado há mais de três décadas,

que vem sendo utilizado há mais de três décadas, tendo atingido o estado de maturi-

dade. Dessa forma, além de sua flexibilidade e inúmeras funcionalidades, tem também

como característica a confiabilidade, o que o torna, atualmente, o Sistema Operacional

preferido para sistemas que suportam aplicações críticas.

Capítulo 1 - Histórico

Histórico do Unix

O Unix surgiu no Bell Laboratories em 1969, a partir do trabalho de Ken Thompson na

evolução de outro Sistema Operacional, o Multics. No desenvolvimento do Unix, Thompson sentiu a necessidade de escrevê-lo para diferentes tipos de arquiteturas e decidiu fazer o Unix independentemente da máquina em que fosse executado, criando a linguagem B. Essa linguagem evoluiu para a linguagem C, desenvolvida por Dennis Ritchie, o que permitiu reescrever o Unix e torná-lo portável para diferentes arquiteturas. Devido à característica de portabilidade do Unix, no início da década de 1980 foram desenvolvidos diversos pacotes de programas, que foram utilizados por diferentes fabricantes, tornando mundialmente conhecidos o Unix, a linguagem C e seus aplicativos.

O Unix se tornou um Sistema Operacional bastante conhecido não somente no mundo acadê-

mico, como também no meio comercial. Os sistemas Unix-based e similares ao Unix prolife- raram, sendo oferecidos por diversos fabricantes de computadores, desde os pessoais até os mainframes, sempre mantendo suas características básicas, tornando-o um padrão de fato.

Versões do Unix

As versões do Unix são aquelas licenciadas exclusivamente pela AT&T, que podem ostentar

o nome Unix. Uma variedade de versões, algumas mais famosas e outras menos, foram desenvolvidas desde seu surgimento. Principais versões do Unix:

1 Unix Sexta Edição: é a mais antiga versão licenciada, na maioria dos casos para institui- ções educacionais, não havendo nenhuma versão comercial disponível. Essa versão foi lançada em 1975.

1 PWB Unix: versão especializada desenvolvida pelo Bell Labs, que inclui facilidades para desenvolvimento de software por grandes equipes de programadores. Essa versão foi lançada em 1977.

1 Berkeley Unix: grande parte do desenvolvimento do Unix se deu na Universidade de Berkeley, na Califórnia, que se tornou um centro de atividades nos anos 70, externo ao Bell Labs/AT&T. As versões 4.1 BSD ou 4.2 BSD tinham seu próprio conjunto de utilitá- rios e incorporavam suporte para superminicomputadores VAX, o editor de textos vi, e um shell especialmente adaptado para programação em C, chamado C Shell (csh). Esse sistema foi muito utilizado não somente nas universidades, como também nas aplicações científicas e de engenharia. O System V, da AT&T, incorporou muitos desses melhora- mentos. Essa versão foi lançada em 1977.

1 Unix Versão 7: primeira versão licenciada comercialmente pela AT&T, com maior número de instalações em microcomputadores. Essa versão foi lançada em 1979.

1 Unix System III: atualização da versão 7, que incorporou as características da PWB. Foi um grande sucesso nos anos 80, disponibilizado pela maioria dos fabricantes de micro- computadores. Lançada em 1982.

1 Unix System V: incorporou melhorias no desempenho e teve ampliada a comunicação entre processos. Foi a primeira versão licenciada pela AT&T com suporte de software. Essa versão foi lançada em 1983.

A AT&T licencia o software Unix, mas não a marca registrada Unix, que é de uso exclusivo da

Bell Labs. Dessa forma, o fabricante adquire o código-fonte do sistema, mas não pode uti- lizar o nome Unix, tendo de atribuir um nome diferente, o que contribui para a proliferação de nomes, gerando confusão em relação às versões.

um nome diferente, o que contribui para a proliferação de nomes, gerando confusão em relação às

Introdução ao Linux

Esses sistemas geralmente são compatíveis entre si, sendo chamados de sistemas Unix-based. Os principais são:

1 AIX: desenvolvido pela IBM em 1986, inicialmente para a plataforma IBM 6150. Atual- mente suporta diversos tipos de arquitetura. Entre suas características podemos des- tacar sua ferramenta de gerenciamento do sistema, o SMIT.

1 Xenix: desenvolvido pela Microsoft e posteriormente disponibilizado para a Apple e para o IBM PC, tendo sido uma das versões mais conhecidas do Unix.

1 HP-UX: desenvolvido em 1984 pela HP, é um dos sistemas Unix mais utilizados atual- mente. É baseado na versão System V.

1 SunOS: desenvolvido pela Sun Microsystems em 1982. Inicialmente, o SunOS era baseado no Unix BSD, mas a partir da versão 5.0 teve seu nome alterado para Solaris e passou a ser baseado no System V Release 4.

Para o desenvolvimento desses sistemas Unix-based, os fabricantes de hardware devem pagar uma taxa de licença para a AT&T, que pode chegar a milhares de dólares por sistema vendido, dependendo do número de usuários que suporta, o que praticamente impossibi- litou a utilização do Unix para aplicações pessoais e em empresas de pequeno porte.

Além dessas, surgiram na década de 1990 versões livres de Unix como FreeBSD, NetBSD e OpenBSD, todas baseadas na distribuição BSD. Em reação a essas restrições, começaram a surgir sistemas similares ao Unix que simulavam as características externas do sistema, propor- cionando aos usuários as mesmas facilidades e comandos, e permitindo executar os mesmos programas. Esses sistemas não utilizam o código-fonte do Unix e podem ser vendidos sem pagar royalties à AT&T. Alguns exemplos desses sistemas são: UNOS, Unetix e Coherent.

Alguns desses sistemas similares ao Unix mostraram grandes variações nas interfaces gráficas, protocolos de redes, utilitários de gerenciamento, administração de periféricos, entre outras. O desenvolvimento de um código-fonte novo, independente da AT&T, e que constituísse de fato um padrão surgiu, então, como uma necessidade.

Similares Unix

Andrew Tanenbaum, pesquisador na área de redes de computadores e Sistemas Opera- cionais, desenvolveu um protótipo de Sistema Operacional baseado no Unix, chamado de Minix, descrito em “Operating System: Design and Implementation” (1987). O Minix era utilizado em cursos de ciência da computação em diversas universidades, entre elas, a Uni- versidade de Helsinque, onde um estudante chamado Linus Torvalds decidiu escrever seu próprio Sistema Operacional. Seu objetivo era fazer um “Minix melhor que o Minix”. Torvalds desenvolveu então os primeiros kernels do Linux, que já processavam alguns programas de interesse geral, e abriu seu código-fonte na internet, onde cada um poderia desenvolver seus próprios recursos sobre um kernel de conhecimento comum. Essa é a filosofia do sof- tware livre, a mesma que proporcionou o desenvolvimento acelerado da internet.

A adesão de estudantes, interessados, curiosos, profissionais e até hackers contribuiu para que a primeira versão considerada estável do Linux estivesse pronta para distribuição no final de 1993. O projeto GNU, da Free Software Foundation, uma organização que apoia projetos de desenvolvimento de software livre, e os trabalhos da Universidade de Berkeley, que produziram o BSD Unix, foram duas importantes fontes de desenvolvimento dos atuais utilitários e aplicativos do Linux.

produziram o BSD Unix, foram duas importantes fontes de desenvolvimento dos atuais utilitários e aplicativos do

Capítulo 1 - Histórico

O Linux está em franco crescimento no mercado, disponível em diversos idiomas, inclusive

em português, com interfaces gráficas, processadores de texto, sistemas gerenciadores de bancos de dados, suporte a redes de excelente qualidade e uma infinidade de outras aplica- ções. Na verdade, existem atualmente diversas distribuições do Linux, que veremos a seguir.

Software Livre

“'Software livre’ é uma questão de liberdade, não de preço. Para entender o conceito, pense em ‘liberdade de expressão’, não em ‘cerveja grátis'."

Free Software Foundation, 2007.

Quando o assunto é a área tecnológica, a todo o momento estamos nos adaptando ao idioma mundial – o inglês. “Free” significa “livre”, mas também “de graça”, causando um falso entendimento do real conceito de Software Livre.

Para garantir que os termos Free Software (Software Livre) e Open Source (Código Aberto) sejam utilizados de forma correta, existem duas principais organizações responsáveis pela proteção e promoção do software livre internacionalmente: a Free Software Foundation (FSF) e a Open Source Initiative (OSI).

A Free Software Foundation menciona que para um software ser considerado livre deve

obedecer aos quatro princípios da liberdade. São eles:

1 Princípio número 1: o usuário deve ter a liberdade de executar o programa, para qual- quer propósito.

1 Princípio número 2: o usuário deve ter a liberdade de estudar e adaptar o programa para as suas necessidades (o acesso ao código-fonte é um pré-requisito para essa liberdade).

1 Princípio número 3: o usuário deve ter a liberdade de redistribuir cópias de modo que possa ajudar ao próximo.

1 Princípio número 4: o usuário deve ter a liberdade de aperfeiçoar o programa e disponi- bilizar seus aperfeiçoamentos, de modo a beneficiar toda a comunidade (novamente:

o acesso ao código-fonte é um pré-requisito para essa liberdade).

Sendo assim, o ponto central do software livre se baseia na ideia de atribuir liberdade para que usuários executem, copiem, distribuam, estudem, aperfeiçoem e modifiquem um software levando em consideração suas características, expectativas e necessidades, contribuindo para uma visão construtivista e evolucionária em que diversas pessoas podem trabalhar para torná-lo melhor.

que diversas pessoas podem trabalhar para torná-lo melhor. Uma das vantagens de o seu código estar

Uma das vantagens de o seu código estar disponível na internet é a existência de vários grupos dedicados a aprimorar ferramentas e recursos para o sistema, fazendo com que este esteja sempre atualizado, seguro, estável e confiável, consti- tuindo uma plataforma de desenvolvimento que se tornou um padrão de fato.

Para alcance dos objetivos citados o pré-requisito é a disponibilização do código-fonte, que são, de fato, os arquivos de “nascimento” do software, direto da fonte, oriundos do programador. Tais arquivos podem ser obtidos no site oficial do fabricante ou em repositó- rios de pacotes Linux presentes na internet.

arquivos podem ser obtidos no site oficial do fabricante ou em repositó - rios de pacotes

Introdução ao Linux

Licença GPL

Licença de Software é um documento que descreve como o público poderá utilizar um software. Atualmente existem diversas licenças entre as classes pagas (proprietárias) e não pagas (livres). A de software livre mais utilizada no mundo é a Licença Pública Geral GNU, a GPL (General Public License).

Licença Pública Geral GNU, a GPL (General Public License). A Licença Pública Geral, também referenciada por

A Licença Pública Geral, também referenciada por copyleft (trocadilho com referência a

“copyright”), é a licença primária para software de código aberto que atende aos quatro princípios da liberdade. Sua característica principal: qualquer trabalho derivado de um sof- tware livre, sob GPL, obrigatoriamente deverá permanecer livre.

Figura 1.5 Exemplo de Softwares Livres que adotam a licença GPL.

É importante saber que existem inúmeras licenças livres ou compatíveis com a GPL, e que

também usam a filosofia de copyleft, com o objetivo de defender a liberdade do conheci- mento, informação e código aberto. Alguns exemplos:

1 GFDL (GNU Free Documentation License).

1 OPL (Open Publication License).

1 CC (Creative Commons).

1 BSD (Berkeley Software Distribution).

1 SPL (Sun Public License).

A escolha da Licença de Software Livre pode tornar-se um trabalho estafante. O recomen-

dado é solicitar suporte junto a empresas competentes como a Free Software Foundation (FSF) ou a Open Source Initiative (OSI), que auxiliarão no correto processo de definição.

Site oficial de licenciamento GNU: https://www.gnu.org/licenses.
Site oficial de licenciamento GNU: https://www.gnu.org/licenses.

Distribuições Linux

Red Hat Enterprise Linux

A distribuição Red Hat Enterprise Linux incorpora facilidades, como programas de configuração de recursos do sistema, interfaces gráficas, especializações para versões cliente e servidor, além de aplicativos como suítes de escritório. Com ela, é fornecido o ambiente gráfico X-Window, contendo o gerenciador de janelas KDE, desenvolvido por um projeto de software livre.

Uma grande vantagem dessa distribuição é a facilidade de instalação, excelente para os iniciantes em Linux. Funcionalidades como pacotes pré-compilados e gerenciadores de pacotes como o RPM e o YUM, que automatizam todo o processo de instalação e a atuali- zação do sistema, facilitam o processo de administração.

automatizam todo o processo de instalação e a atuali - zação do sistema, facilitam o processo

A Red Hat está patrocinando o projeto Fedora juntamente com a comunidade formada por

desenvolvedores de software, que dão suporte ao desenvolvimento de software livre. O objetivo desse projeto da comunidade Linux é manter um Sistema Operacional completo, de aplicação geral, com o código-fonte totalmente aberto e gratuito.

Para mais informações, acesse http://www.redhat.com e http://fedoraproject.org.
Para mais informações, acesse http://www.redhat.com e http://fedoraproject.org.

CentOS

 

CentOS

A

Distribuição Linux de classe Enterprise derivada de códigos fonte gratuitamente distribuídos pela Red Hat Enterprise Linux e mantida pelo CentOS Project.

O

distribuição CentOS deriva da distribuição Red Hat Enterprise Linux (RHEL), de acordo com

as regras de redistribuição definidas pela Red Hat Enterprise, que são remoção de softwares proprietários de terceiros, remoção de imagens, logotipos e textos referenciando a Red Hat, desde que não façam parte de notas de copyright, entre outras.

CentOS é distribuído sob a licença GNU/GPL para aplicações com servidores de pequeno,

médio e grande porte, e é mantido por uma ativa e crescente comunidade de usuários denominada CentOS Project. Além disso, possui diversas vantagens sobre outras distribui- ções: rápida correção de bugs e vulnerabilidades, grande rede de repositórios para down- load, várias opções de suporte como chat, IRC, listas de e-mail, fóruns e um FAQ dinâmico e abrangente. Também é possível obter suporte comercial oferecido por empresas parceiras.

Para mais informações sobre o CentOS, acesse: http://www.centos.org.
Para mais informações sobre o CentOS, acesse: http://www.centos.org.

Debian

A distribuição Debian foi desenvolvida por Ian Murdock em 1993. O nome Debian é uma junção de Debra, sua namorada na época, e Ian, seu nome. O Debian foi patrocinado pela Free Software Foundation, de Richard Stallman, e sua ideia inicial e que se mantém intacta até hoje é que o Debian é e sempre será uma distribuição livre e gratuita.

Saiba mais em http://www.debian.org.
Saiba mais em http://www.debian.org.

Ubuntu

A distribuição Ubuntu foi desenvolvida em 2001 pela empresa Canonical, fundada pelo

sul-africano Mark Shuttleworth, que trabalha na promoção do software livre. Derivada do Debian, contém todas as ferramentas necessárias, desde processadores de texto e leitores de e-mail a servidores web. Utiliza pacotes padrão Debian Package (.deb) e tem como geren- ciador de pacotes o Advanced Packaging Tool (APT).

O Ubuntu é desenvolvido com foco em segurança, disponibilizando atualizações de segurança

gratuitas por pelo menos 18 meses para desktops e servidores. Com a versão Long Term
gratuitas por pelo menos 18 meses para desktops e servidores. Com a versão Long Term
Support (LTS), adquire-se três anos de suporte para desktops e cinco anos para servidores.
Não é cobrado nenhum valor pela versão LTS.
Para mais informações, acesse http://www.ubuntu.com.
Capítulo 1 - Histórico

Introdução ao Linux

Slackware

A distribuição Slackware também é uma das mais populares distribuições Linux, com boa penetração de mercado. Seus pontos fortes são o desempenho e a estabilidade, que a indicam para utilização em servidores. Além disso, possui conversor que permite trabalhar com pacotes nativos da distribuição Red Hat Enterprise Linux. Vem com ambiente gráfico X-Window e o gerenciador de janelas fvwm, que possui design similar ao da interface do Microsoft Windows.

Essa distribuição ainda conta com pacotes de segurança que permitem avisar, via e-mail, que uma função de inicialização do sistema ou um script foi alterado e que isso pode causar transtornos ao sistema. Sua instalação é bem mais complexa.

Acesse http://www.slackware.com para mais informações.
Acesse http://www.slackware.com para mais informações.

A escolha da distribuição Linux

Existem muitas distribuições Linux, algumas com enfoque para uso em servidores visando mais segurança e alta disponibilidade, outras para uso em estações de trabalho visando ambiente gráfico amigável, assim como para uso doméstico, jogos, laptops ou outras fina- lidades. Além disso, algumas fornecem suporte comercial e garantia de atualizações. Antes de escolher uma distribuição, é necessário conhecer um pouco sobre cada uma delas (pelo menos as principais) e ter em mente a finalidade da instalação. Para a nossa finalidade aca- dêmica, vamos escolher uma distribuição que possua algumas das seguintes características:

1 Suporte ao nosso idioma.

1 Estabilidade no mercado.

1 Ambiente gráfico com assistente de instalação.

1 Detecção automática de hardware.

1 Ambiente gráfico.

1 Gerenciador de pacotes.

1 Programas utilitários, como editores de texto, navegadores para a internet, editores de imagens, reprodutores de áudio e vídeo.

Razões para usar o Linux

Existem diversas razões para a escolha do Linux como Sistema Operacional. Trata-se de um software livre, com maior flexibilidade para instalação e reinstalação, sem a necessidade de utilização de códigos-chave e licenças. No ambiente Linux, os softwares são normalmente gratuitos, o que praticamente elimina o custo com instalações de software. Outro bom motivo é estar atualizado com as tendências do mercado, já que o Linux vem despontando como o Sistema Operacional da família Unix que mais cresce em número de usuários. Ins- talar um Sistema Operacional tão complexo quanto o Linux não é uma tarefa simples, mas sem dúvida compensa o trabalho.

um Sistema Operacional tão complexo quanto o Linux não é uma tarefa simples, mas sem dúvida

Capítulo 1 - Histórico

Hardwares suportados

Ao trabalhar com sistemas Linux é muito importante investigar a compatibilidade de har-

dwares antes mesmo de comprá-los. Afinal, o mercado de hardware não é tão direcionado

ao mundo livre, e na maioria das vezes precisamos recorrer à internet em busca de fóruns

confirmando que tal hardware foi testado e realmente funciona para certas distribuições.

É possível fazer consultas ao site Linux Hardware Compatibility Lists & Linux Drivers:
É possível fazer consultas ao site Linux Hardware Compatibility Lists & Linux Drivers:
https://www.linux-drivers.org.

No site, podemos verificar um índice contendo uma lista de hardwares compatíveis man-

tidos pelas principais distribuições Linux, classificados pelos seguintes tópicos:

1 Compatível: suportado pelo kernel do Linux.

1 Certificado: garantia de funcionamento por algum distribuidor.

1 Driver em versão Alpha ou Beta: o kernel ainda não suporta, mas pode ser compilado

e adicionado como um módulo. Não há nenhuma garantia de funcionamento e não é

recomendado em ambiente de produção.

1 Não suportado: hardwares testados com funcionamento não confirmado.

Apesar de o Linux poder trabalhar com drivers genéricos, que podem atuar tão bem quanto

os “originais” do próprio fabricante, é importante saber que nem todo hardware será

suportado por um Sistema Linux, como hardwares de projetos especiais para o Microsoft

Windows ou Apple MAC e bibliotecas de drivers cujo código-fonte não é aberto.

Lista de verificação de hardware

A maior parte dos dispositivos de hardware é detectada automaticamente durante o

processo de instalação. Os drivers desses dispositivos já estão incluídos nas mídias de

instalação, embora as distribuições Linux não incluam drivers para todos os dispositivos de

hardware. O ideal é montar uma lista de verificação de hardware para o computador que

será utilizado para a instalação, como apresentada na tabela 1.1.

Tabela 1.1 Lista de verificação de hardware.

Dispositivo

Características

Dados coletados

CPU

Tipo e velocidade.

 

Memória RAM

Capacidade.

 

Teclado

Marca e modelo.

 

Mouse

Protocolo, marca, modelo e número de botões.

 

Discos rígidos

Marca, modelo e capacidade.

 

Drive de CD/DVD

Marca e tipo.

 
  Discos rígidos Marca, modelo e capacidade.   Drive de CD/DVD Marca e tipo.   11

Introdução ao Linux

Dispositivo

Características

Dados coletados

Placa de rede

Marca, modelo, tipo e velocidade.

 

Placa de vídeo

Marca, modelo e quantidade de memória RAM.

 

Monitor

Marca e modelo.

 

Placa de som

Marca e modelo.

 

Dispositivos USB

Marca e modelo.

 

Requisitos mínimos de hardware

Com a disponibilidade variada de distribuições Linux individualmente contendo peculiari-

dades distintas, é impraticável listar qual a exata configuração mínima de hardware neces-

sária para rodar um sistema Linux sem gargalos.

Para a seleção do Sistema Linux adequado é importante levar em consideração quais os

recursos oferecidos pela distribuição e, principalmente, se a distribuição escolhida atende

as configurações de hardwares disponíveis em seu computador.

A expectativa deve ser sempre buscar o melhor desempenho na utilização total do sistema.

Para isso, a melhor maneira é a leitura das informações técnicas descritas pelos desenvolve-

dores da distribuição escolhida, levando em conta, por exemplo, os recursos de Unidade de

Processamento Central (UCP), memória e a disponibilização de drives caso possua har-

dwares de uso específico.

Para ambientes virtualizados possuímos um Sistema Operacional hospedeiro (host) e o

Sistema Operacional virtual, executado como guest, totalmente dependente das configura-

ções de hardware oriundas do hospedeiro.

Neste cenário a preocupação é um pouco minimizada, pois o Sistema Operacional guest

atuará semelhantemente à instalação comum de um aplicativo, com a diferença de que

pode ter sua configuração de hardware modificada antes mesmo de sua própria instalação.

com a diferença de que pode ter sua configuração de hardware modificada antes mesmo de sua

Capítulo 1 - Histórico

Figura 1.6 Alterando o tamanho de memória de vídeo e RAM em máquina virtual.

o tamanho de memória de vídeo e RAM em máquina virtual. É importante frisar que essa

É importante frisar que essa definição jamais poderá ultrapassar a configuração máxima de hardware disponível no sistema hospedeiro. Em suma, para se obter o melhor desempenho em uma máquina virtual, devemos investir na potência de hardware da máquina hospedeira.

se obter o melhor desempenho em uma máquina virtual, devemos investir na potência de hardware da

Introdução ao Linux

2

Capítulo 2 - Linux no desktop

Linux no desktop

objetivos

Saber como adquirir um Linux para uso; Aprender a instalar uma distribuição Linux e implementá-la; Entender o conceito de sistemas em Dual Boot.

Tipos de instalação e aquisição do Linux, configurações iniciais, ambientes gráficos e Dual Boot.

conceitos

Adquirindo uma cópia do Linux

No mundo tecnológico é comum a abreviação de palavras, bem como a adoção de nomes e termos estranhos aos mais diversos objetos modernizados. A palavra “imagem”, por exemplo, poderia ser simplesmente uma foto, uma paisagem ou algo do tipo. Mas é comum um técnico dizer: “Faz uma imagem deste CD para mim!”

Nesse caso, a imagem do CD nada mais é do que a junção de vários arquivos comuns de computador, representados em um único arquivo, contendo a representação exata dos dados presentes no CD. É uma cópia fiel.

Partindo desse conceito, é mais fácil entender o porquê de baixar imagens de sites, pois estamos fazendo um simples download de um único arquivo. A básica diferença é que arquivos em imagens possuem um formato peculiar e normalmente necessitam de um aplicativo especí- fico para reconhecer os dados. O formato de imagem de dados mais comum é o .iso.

Mas por que baixar uma imagem?

Pensemos em uma situação hipotética, em que necessitamos instalar um aplicativo que possui 50 arquivos. Imagine baixar os 50 arquivos para instalar um simples programa. Uma imagem pode agrupar esses 50 arquivos e nos poupar tempo, bem como fornecer pratici- dade, pois somente necessitamos baixar um único arquivo, que é a imagem.

É importante saber que é possível encontrar outros meios para agrupar diversos arquivos em um só, mas, por padrão, sempre que necessitamos instalar um Sistema Operacional este estará presente em um formato de imagem, normalmente com a extensão .iso.

instalar um Sistema Operacional este estará presente em um formato de imagem, normalmente com a extensão

Introodução ao Linux

Nunca baixe imagens de Sistemas Operacionais oriundos de sites desconhecidos. Sempre opte por buscar imagens nos sites oficiais do fabricante. Lembrando que essa ação se aplica a Sistemas Operacionais Linux ou afins, que se utilizam da polí- tica de Software Livre.

ou afins, que se utilizam da polí - tica de Software Livre. Nas páginas oficiais das

Nas páginas oficiais das distribuições Linux, normalmente é possível encontrar de pronto o link para download das imagens de versões do sistema. Veja um exemplo:

das imagens de versões do sistema. Veja um exemplo: Os Sistemas Operacionais Linux podem trabalhar em
das imagens de versões do sistema. Veja um exemplo: Os Sistemas Operacionais Linux podem trabalhar em

Os Sistemas Operacionais Linux podem trabalhar em diferentes tipos de ambientes, hardwares e plataformas. Com isso, é possível obter um leque enorme de opções, pos- sibilitando a instalação para computadores pessoais, servidores potentes de empresas, entre outras plataformas. A básica diferença são as ferramentas (aplicativos) que estarão no sistema. Por exemplo, seria gasto de processamento e recursos desnecessário possuir a aplicação de um servidor web em um computador de nossa avó, que somente joga o baralho e acessa o site de sua novela favorita.

A figura 2.2 mostra um exemplo de distribuição Linux que oferece três diferentes tipos de imagem: a Workstation, a Server e a Atomic.

Figura 2.1 Página oficial da distribuição Debian.

l

É importante ressaltar que existem processa- dores com arquitetura de 32 e 64 bits. Tenha a certeza sobre em qual arquitetura seu computador trabalha e baixe a imagem correta. Caso contrário, você terá um pouco de dor de cabeça, pois provavelmente deverá efetuar um novo download.

Capítulo 2 - Linux no desktop

Figura 2.2 Página oficial da distribuição Fedora.

Figura 2.2 Página oficial da distribuição Fedora. Tipos de instalação e aquisição do Linux Descobrimos que

Tipos de instalação e aquisição do Linux

Descobrimos que precisamos sanar certas premissas para efetuar o download da imagem de um Sistema Linux. Mas é de extrema importância conhecer os diferentes tipos de instalações e os modos de aquisição, que podem diversificar de acordo a distribuição escolhida. A seguir listamos cinco modos distintos de instalação e obtenção de um Sistema Operacional Linux.

Live

Atualmente é o modo mais utilizado, que não chega a ser uma instalação até que você opte por realizá-la. Do inglês, Live significa “ao vivo”, e análogo à tradução este modo possibilita explorar o sistema a partir de um CD, DVD ou pendrive sem instalar nenhum dado no computador.

Um Linux Live nos proporciona um Sistema Operacional pronto para uso em menos de um minuto, por meio de técnicas avançadas em que os dados da imagem são transferidos para a memória RAM, como se o sistema fosse instalado temporariamente nela. Esse modo é muito indicado para aqueles que somente querem experimentar um Sistema Linux ou mesmo para manutenção de outros Sistemas Operacionais já presentes na máquina. Imagens do tipo Live também podem ser obtidas através de arquivos com a extensão .torrent, que são capazes de acelerar exponencialmente a conclusão do download.

Network install ou netinstall

Este método de instalação é muito interessante, pois pode proporcionar o boot do sistema via rede, iniciando a instalação de um novo Linux sem a necessidade de qualquer tipo de mídia como CD, DVD ou pendrives. Para isso, requer uma conexão permanente à internet durante todo o processo de instalação, o que pode ser de grande valia, pois efetua o down- load de uma pequena quantidade de dados.

processo de instalação, o que pode ser de grande valia, pois efetua o down- load de

Introodução ao Linux

Dependendo da distribuição Linux, o download pode possuir menos de 200 megabytes, e

o restante do sistema é baixado aos poucos sem consumir tanto recurso. É importante res-

saltar que esse tipo de instalação pode fornecer um sistema bem básico, através da seleção de somente o que realmente necessitamos. Isso é até interessante, já que o sistema fica totalmente enxuto, sem aplicativos ou arquivos desnecessários que muito provavelmente você nunca utilizará.

Minimal

Como o próprio nome diz, esse modo nos proporciona uma instalação pequena de um sistema Linux. A distribuição mais famosa por utilizar essa funcionalidade é a Ubuntu, que com aproximadamente 60 megabytes nos oferece um Linux efetivamente pronto. Esse modo traz um pouco da ideia do tipo de instalação netinstall (explicado anteriormente), e ambos possuem telas explicativas para seleção específica de pacotes, funcionalidades, inter- faces gráficas, entre outras abstrações que podemos optar por instalar ou não. No modo de instalação minimal é possível ter um Linux ainda mais enxuto que no modo netinstall.

Compra das mídias

Aprendemos que não é surpresa encontrar sistemas Linux pagos, porém saber que uma distribuição Linux gratuita pode cobrar por suas mídias talvez nos cause espanto. Explica- -se: partindo do princípio de que tudo tem custo, é preciso entender que nesse modo de obtenção do Linux você receberá as mídias personalizadas no conforto de sua casa, sem mais esforços. E o preço é relativamente irrisório, entre R$ 10 a R$ 15, dependendo da distri- buição escolhida.

Esse tipo de aquisição conta com algumas boas vantagens, como não necessidade de conexão à internet, possibilidade de instalar mais facilmente em quantas máquinas quiser, a mídia pode ser transportada para recuperar outro sistema que foi danificado; e, para os

colecionadores de plantão: sabemos que é muito interessante guardar qualquer coisa per- sonalizada. Tais mídias podem ser compradas no site oficial da distribuição Linux escolhida.

E como está cada vez mais comum os novos PCs virem sem o leitor de mídias para CD e DVD,

também é possível efetuar a compra de pendrives bootáveis, que realizam a exata função

das mídias de CD e DVD.

Compra de um computador

É quase certo que ao chegar em qualquer loja de informática o PC ou laptop disponível

para venda virá com qualquer outro Sistema Operacional, menos o Linux. Felizmente esta realidade está cada vez mais defasada, pois já podemos obter um PC ou laptop com o Linux instalado de fábrica na própria loja ou site oficial. O mais legal disso tudo, é que devido ao Linux ser um software livre (sem custo), o preço final do equipamento fica excessivamente mais em conta. A notícia não tão boa é que poucas opções ou modelos de hardware são disponibilizados com Linux.

Os métodos de instalação citados podem não estarem disponíveis para todas as distribui- ções Linux. O mais comumente encontrado é o de download da imagem no formato .iso, disponível no site ou em repositórios oficiais do próprio fabricante.

é o de download da imagem no formato .iso, disponível no site ou em repositórios oficiais

Capítulo 2 - Linux no desktop

Instalando o Linux

O que é LVM

Há muito tempo é preservado o mesmo conceito de criação de partições, em que é possível

a criação de no máximo quatro partições primárias e, se necessária a expansão, pode-se

criar três primárias e uma estendida. Somente é possível conter uma partição estendida por disco, sendo que esta não abriga um sistema de arquivos, e sim outras partições cha- madas de lógicas. Partições lógicas aumentam a possibilidade da disponibilização de novas partições, podendo somar até doze. Logo, um único disco pode conter o máximo de quinze partições ativas com sistemas de arquivos válidos.

Contrário a essa premissa temos o LVM (Logical Volume Manager; em português, Geren- ciador de Volume Lógico). Com sua chegada, em meados de 1998, os conceitos descritos anteriormente foram drasticamente modificados para melhor. Saiba que muitas condições se preservam e não devem ser alteradas tão cedo, como a principal premissa: cada Sistema Operacional deve ser instalado em uma partição própria, não sendo possível instalar dois Sistemas Operacionais em uma mesma partição.

O LVM trabalha com camadas lógicas que podem ser facilmente redimensionadas, aumen-

tando ou diminuindo o espaço em disco sem prejudicar o funcionamento do sistema, o que

não ocorre no modelo de partições no estilo primárias, estendida e lógicas. Em linhas gerais,

a utilização de LVM é para que possamos aproveitar a capacidade máxima de um ou de vários HDs somados.

O disco rígido, ou conjunto de discos rígidos, são alocados em um ou mais physical volumes

(volumes físicos), que não podem ultrapassar mais de um disco. Esses volumes físicos são agrupados em volume groups (grupos de volumes), que por sua vez abrigam os logical volumes (volumes lógicos). Volumes lógicos são como uma divisão do disco (partições) que alocam um determinado ponto de montagem, como os diretórios /home e /, assim como os tipos de sistemas de arquivos, como o ext4.

Resumindo:

1 1: cria-se um PV (physical volume), a partir de um disco rígido.

1 2: cria-se um ou vários VG (volume groups), a partir do PV (physical volume).

1 3: cria-se um ou vários LV (logical volumes), a partir dos VG (volume groups).

1 4: por último, se define os pontos de montagem (diretórios) nos LV (logical volumes).

dos VG (volume groups). 1 4: por último, se define os pontos de montagem (diretórios) nos

Introodução ao Linux

PV 10 GB
PV
10 GB
PV 10 GB (participação sem LMV) 100 MB /boot
PV
10 GB
(participação sem LMV)
100 MB
/boot

VG 20 GB (soma dos PVS subtraindo 100 MB)

LV 10 GB /home
LV
10 GB
/home
LV 8 GB /
LV
8 GB
/
LV 2 GB /tmp
LV
2 GB
/tmp

Figura 2.3 Representação de LVM com /boot (partição de inicialização) separada.

A partição /boot não pode estar presente em um grupo de volumes lógicos pois impossibi-

lita o acesso pelo gerenciador de inicialização, prejudicando o boot do sistema. Se a partição root (“/”) estiver contida em um volume lógico, sempre crie uma partição separada para o diretório /boot que não faça parte de um grupo de volumes lógicos LVM.

A criação de um particionamento com o uso de LVM pode ser estabelecido através das linhas de comandos ou durante a instalação de um novo Sistema Operacional Linux. Este último modo é fortemente recomendado para iniciantes, pois se dispõe de uma tela gráfica autoexplicativa que descreve as informações de cada opção do LVM.

Implementando um desktop com Linux

Adicionando um novo usuário

Uma estação Linux com núcleo (kernel) atualizado pode conter mais de 4 bilhões de contas de usuários. Contas de usuários é uma espécie de identidade digital para cada indivíduo

presente no Linux. Servem para acessar o sistema, identificar os acessos e limitar o alcance

a diretórios de acordo ao nível de suas permissões.

Cada conta de usuário Linux, obrigatoriamente, deve possuir:

1

Nome.

1

Senha.

1

Identificação numérica (única no sistema).

1

Grupo primário.

O

acesso de um usuário ao sistema é concretizado através de um processo de autenticação,

é concretizado através de um processo de autenticação, onde são verificadas a existência do nome da

onde são verificadas a existência do nome da conta, a identificação numérica, senha e a par- ticipação de ao menos um grupo presente no arquivo /etc/group. Tais verificações são trans- parentes, organizadas e gerenciadas pelo arquivo /etc/passwd. Este arquivo possui permissão de leitura para todos os usuários do sistema, causando certa vulnerabilidade caso as senhas

Capítulo 2 - Linux no desktop

Encriptar

estejam listadas nele. Talvez encriptar a senha seja uma ótima solução, capaz de dificultar a

A capacidade de proteger os arquivos através da técnica de criptografia, mas devemos saber que em poucas horas um simples computador pode descobrir uma hash de senha com técnicas de força bruta, por exemplo.

descoberta da senha, mas a melhor estratégia é a adoção do arquivo /etc/shadow.

Como seu próprio nome descreve, o arquivo shadow é uma “sombra” do arquivo /etc/ passwd. Sua função é basicamente armazenar as hashes de senhas de todos os usuários presentes no sistema, oriundos do arquivo /etc/passwd. O principal detalhe desse arquivo é que somente o usuário root possui permissão para verificar seu conteúdo, impossibili- tando usuários comuns de enxergarem as senhas em formato encriptada. Com a segurança

concretizada, podemos concluir que os arquivos /etc/passwd e /etc/shadow atuam juntos na função de autenticação das contas de usuários do sistema. O primeiro, provendo as contas.

O segundo, as senhas em hash (criptografadas).

Em um sistema Linux, podemos possuir três tipos de usuários: os comuns, o administrador do sistema e os usuários de sistema, que possuem as seguintes distinções:

1 Usuário comum: autenticando-se como usuário comum temos poucos privilégios em um sistema Linux. Basicamente o usuário comum acessa, cria, modifica e executa qualquer coisa, porém, exclusivamente dentro de seu diretório “casa”, conhecido como diretório home. O diretório home é o único diretório em que um usuário comum pode realmente ficar à vontade. A “casa” individual de cada usuário Linux pode ser encontrada no dire- tório /home/<nome do usuário>.

l

Lembre-se: de acordo a documentação oficial do FHS, o /home não é um diretório padrão obrigatório no sistema. Com isso, determi- nadas distribuições Linux podem conter um nome diferente a /home ou mesmo não abrigá-lo no sistema.

1 Usuário administrador do sistema: oficialmente essa é a primeira conta de usuário de um sistema Linux. Sempre possuirá a identificação de número 0 (zero), e por padrão é o único usuário administrador do sistema, chamado de usuário root. O usuário root possui acesso a todo o sistema. É altamente aconselhável utilizá-lo somente para realização de operações administrativas, como o gerenciamento das permissões de diretórios e contas de usuários.

1 Usuário de sistema: é criado único e exclusivamente para controle de algum serviço fornecido ou gerenciado pelo sistema, como serviços web, de e-mail, de impressão, etc. Este tipo de usuário não é de fato uma pessoa e comumente não possuem senhas nem mesmo um shell válido, impossibilitando-os de efetuarem login. Normalmente possuem um único diretório específico que podem criar ou modificar conteúdos, de acordo as permissões do serviço que o controla.

Precisamos entender que o Terminal Linux (Shell) é extremamente sensível, e a boa prática de utilizar o usuário root (administrador) somente para realização de operações adminis- trativas pode evitar modificações acidentais como a remoção de arquivos essenciais para o funcionamento correto do sistema.

Após o usuário efetuar a autenticação, o Linux consulta o arquivo de contas (/etc/passwd)

e concretiza os dados ali descritos, como a disponibilização de um Shell (Terminal) válido.

Assim que um Shell é fornecido, torna-se visualmente fácil a distinção entre uma conta com privilégios (root) para outra sem privilégios, pois o Linux se utiliza de dois caracteres espe- ciais para diferenciar os tipos de usuários. São eles:

1 $ (cifrão ou dólar): identificador de conta de usuário comum.

1 # (cerquilha, jogo da velha, tralha

):

identificador da conta do usuário root.

de conta de usuário comum. 1 # (cerquilha, jogo da velha, tralha ): identificador da conta

Introodução ao Linux

Identificação do usuário comum

Introodução ao Linux Identificação do usuário comum Comando para informar o usuário corrente Comando para invocar

Comando para informar o usuário corrente

Comando para invocar o usuário root

Identificação do usuário root

Instalação de plug-ins

Figura 2.4 Caracteres especiais para identificação dos tipos de usuários.

A utilização de plug-ins pode facilitar o trabalho diário e prover funcionalidades para as mais diversas ferramentas do sistema. São técnicas usadas desde os primórdios, em que um de seus maiores artifícios é a possibilidade de ser construído por terceiros e agregados a números exorbitantes de aplicativos, amplificando as alternativas e probabilidades de novas ferramentas cada vez mais adequadas para gostos peculiares.

Por acabar se tornando um vício ou “gerador de preguiça”, o costume acaba se tornando uma arma não letal e nos afasta de novas possibilidades. Lembre-se de que depreciar uma ferra- menta sem a conhecer é muito fácil. Com isso, acabamos caindo no falso contexto de que um sistema Linux é incapaz de reproduzir tudo o que Sistemas Operacionais concorrentes podem.

Há algum tempo é possível implantar um desktop completo com Linux se adequando a qual- quer ferramenta disponível no mercado, como os plug-ins. Para termos uma ideia, muitos dos próprios fabricantes de softwares disponibilizam o aplicativo já homologado para distribuições Linux. Em seus sites oficiais é possível verificar os tipos de pacotes, bem como manuais de instalação:

os tipos de pacotes, bem como manuais de instalação: Perceba que listamos exemplos de somente duas
os tipos de pacotes, bem como manuais de instalação: Perceba que listamos exemplos de somente duas

Perceba que listamos exemplos de somente duas empresas que, por sinal, são gigantes no mercado de tecnologia. Com isso, não há mais desculpas para assistirmos a vídeos on-line ou usar aplicativos em nuvem usando uma distribuição Linux.

Figura 2.5 Sites oficiais com pacotes Linux do próprio fabricante.

Na lista dos melhores objetos de entretenimento criados pelo homem, temos a música. Como é bom poder usufruir de uma boa música ou ainda assistir a um filme com qualidades extremas como os atualmente disponíveis em 4k. O Linux se estende a todo esse mundo do entretenimento, e com enorme qualidade. Pensar que objetos gratuitos são inseguros, insuficientes ou incapazes é uma falsa ideia, que costuma ser derrubada após sua utilização.

Capítulo 2 - Linux no desktop

Um sistema Linux se abastece de uma exorbitante quantidade de plug-ins de música e vídeo gratuitos para os mais diversos fins. Com o advento dos estudos, é possível agregar

o conhecimento de suas vastas habilidades. E por ser um sistema mais leve e disponível

para estudos e desenvolvimento, o Linux abre um leque imenso de possibilidades, podendo

habilitar qualidade e superioridade imagináveis.

Alterando o gerenciador de display

O Linux é totalmente versátil na questão visual. É comum encontrarmos a mesma distribuição

na mesma versão e com o visual completamente diferente. Tais configurações são modifi-

cadas pelo nosso Display Manager (Gerenciador de Display) ou Gerenciador de Janelas.

O Servidor X, também chamado de X-Window System, X-Window, X11 ou simplesmente X, é

o programa que provê a interface gráfica ao usuário. Inicialmente, o Servidor X apresenta uma interface sem informações, representada por uma tela preta, e nada mais é que um

espaço para efetuar desenhos como as janelas e menus de seu ambiente gráfico. Quem tem autorização para fazer esses desenhos e ditar a decoração de janelas e menus é o geren- ciador de display, que possui todas as ferramentas para essas ações. A soma desses dois componentes propicia o cenário de nosso ambiente, também incluindo a funcionalidade de utilização do mouse e teclado.

Nos Sistemas Linux você é livre para escolher o gerenciador de janelas que queira utilizar. Atualmente é possível encontrar inúmeros gerenciadores, entre os de consumo de hardware mais baixo até os com visuais futuristas, que pedem uma boa placa de vídeo. Cada geren- ciador conta com seus aspectos peculiares. O ideal é fazer um tour passando por cada um deles e verificando o que mais lhe agrada. O interessante é que podemos instalar diversos gerenciadores de janelas em uma única estação, e a cada login é possível trocá-los sem esforço ou demora. Tais alterações são efetuadas apenas no visual de sua conta, e todos os seus arquivos e configurações do sistema permanecem do mesmo jeito que deixamos.

A seguir, faremos uma simbólica apresentação dos gerenciadores de janelas mais comu-

mente encontrados nas distribuições Linux contemporâneas, que normalmente os trazem na instalação padrão.

GNOME desktop

Após realizar o login no sistema, certas distribuições Linux exibirão a janela principal do gerenciador GNU Network Object Model Environment (GNOME), que é o gerenciador padrão do Linux CentOS, por exemplo. O GNOME desktop é composto pela tela inteira, incluindo os ícones e painéis. O espaço vazio da tela é chamado de área de trabalho ou somente desktop.

A figura 2.6 mostra a tela inicial do GNOME desktop e seus elementos, que serão descritos a

seguir com suas principais funcionalidades:

a tela inicial do GNOME desktop e seus elementos, que serão descritos a seguir com suas

Introodução ao Linux

Barra de Calendário Status Barra de menus status e Relógio da conta Atalhos da área
Barra de
Calendário
Status
Barra de menus
status
e Relógio
da conta
Atalhos da área de trabalho
Lista de janelas
Desktop
Área de

1 Barra de menus: acesso a aplicativos, locais do computador e da rede, além de utilitários

de personalização do sistema.

1 Barra de status: exibe o status das conexões de rede, o nível de volume do autofalante,

entre outros.

Figura 2.6

trabalho

Janela principal

do gerenciador

GNOME.

1 Calendário e relógio: exibe o calendário e a hora do sistema. Clicando sobre ele pode-se

ajustar a data e a hora do sistema.

1 Status da conta: possibilita a edição de informações da conta de usuário, como nome,

foto de perfil e a senha. Também possibilita travar a tela, trocar de usuário ou desligar o

sistema.

1 Lista de janelas: exibe as aplicações que estão sendo executadas.

1 Atalhos da área de trabalho: atalhos para aplicativos ou locais do computador ou da

rede. Por padrão, as distribuições Linux podem vir com atalhos pré-definidos, como o

acesso a Pasta pessoal e a Lixeira.

1 Desktop: é a área de trabalho, onde são exibidas as janelas das aplicações que estão em uso.

1 Áreas de trabalho: possibilita a utilização visual de mais de um desktop na mesma sessão

a utilização visual de mais de um desktop na mesma sessão de trabalho. Clicando sobre eles

de trabalho. Clicando sobre eles é possível alternar entre os vários desktops disponíveis.

Capítulo 2 - Linux no desktop

Menu Aplicativos

Este menu permite o acesso a diversos programas de forma rápida. É divido por categorias, como:

1 Acessórios: aplicações como calculadora, captura de tela, dicionário, entre outras.

1 Desenvolvimento: aplicações para desenvolvimento de softwares.

1 Escritório: aplicações para o escritório, como processador de texto, planilha eletrônica, apresentação de slides etc.

1 Gráficos: programas editores e visualizadores de imagens.

1 Internet: navegadores, clientes de e-mail, programas de bate-papo, entre outros.

1 Jogos: jogos dos mais variados estilos.

1 Multimídia: programas reprodutores de arquivos de áudio e vídeo.

1 Sistema: utilitários para análise de discos, verificação de atualizações, emulador de terminal, monitor de recursos etc.

Menu Locais

Esse menu permite o acesso a locais pré-definidos e a alguns outros recursos do sistema, como:

1 Pasta pessoal: mostra os arquivos e diretórios presentes no diretório home do usuário, usando o gerenciador de arquivos Nautilus.

1 Documentos: mostra o diretório documentos, localizado no diretório home do usuário.

1 Música: exibe o diretório música, localizado no diretório home do usuário.

1 Imagens: mostra o diretório imagens, localizado no diretório home do usuário.

1 Vídeos: exibe o diretório vídeos, localizado no diretório home do usuário.

1 Downloads: mostra o diretório downloads, localizado no diretório home do usuário.

1 Computador: exibe os dispositivos de armazenamento do computador.

1 Navegar na Rede: mostra os servidores disponíveis na rede. Também possibilita conectar a servidores remotos, utilizando protocolos como FTP, SSH, HTTP, entre outros.

Emulador de Terminal

O Emulador de Terminal habilita a execução de funções no sistema utilizando comandos,

sem a necessidade de sair do ambiente gráfico. É compatível com quase todos os comandos para o Shell Linux.

Navegador de arquivos

O navegador de arquivos possibilita meios para a criação, renomeação, movimentação e

deleção de arquivos e diretórios. Possui um painel lateral contendo atalhos para acesso a seus diretórios pessoais, bem como a dispositivos, como um pendrive. O navegador de arquivos (ou gerenciador de arquivos) padrão do GNOME chama-se Nautilus.

gerenciador de arquivos) padrão do GNOME chama-se Nautilus. Para mais informações sobre o GNOME, consulte o

Para mais informações sobre o GNOME, consulte o nosso Ambiente Virtual de Aprendizagem.

Configurando o GNOME

Para efetuar alterações diversas no sistema, o ambiente de trabalho GNOME disponibi- liza uma única tela separada por seções, trazendo inúmeras opções para modificação do ambiente, análogo a um Painel de Controle, chamada de Configurações. Nela é possível modificar desde configurações simples, como alterar o plano de fundo da área de trabalho, até as mais avançadas, como as configurações de controle de energia da máquina.

de fundo da área de trabalho, até as mais avançadas, como as configurações de controle de

Introodução ao Linux

KDE desktop

O gerenciador de janelas KDE possui bastante semelhança com o GNOME, tendo em vista que

ambos se propõem a realizar as mesmas funções e são manipulados de forma equivalente.

O ambiente KDE está presente, por padrão, em várias distribuições Linux. Caso sua distri-

buição atual não o tenha, é possível instalá-lo a qualquer momento. Lembrando que após

sua instalação é necessário selecioná-lo antes de efetuar o login no sistema.

Assim como o GNOME, o KDE é composto pela tela inteira, incluindo os ícones e painéis.

O espaço vazio da tela é chamado de área de trabalho ou somente desktop.

A figura 2.7 mostra a tela inicial do KDE desktop e seus elementos, que serão descritos a

seguir com suas principais funcionalidades:

Desktop

Gerenciador de widgets

Atalhos Lançador de aplicações Lista de janelas Barra de status Calendário
Atalhos
Lançador de aplicações
Lista de janelas
Barra de status
Calendário

1 Lista de janelas: exibe as aplicações que estão sendo executadas.

1 Desktop: é a área de trabalho, onde são exibidas as janelas das aplicações que estão em uso.

1 Gerenciador de widgets: adiciona à área de trabalho pequenos aplicativos conhecidos

Figura 2.7 KDE Desktop e suas principais informações.

como widgets. Também possibilita a configuração de elementos do desktop.

Desktop e suas principais informações. como widgets. Também possibilita a configuração de elementos do desktop. 26

1

Lançador de aplicações: facilitador para acesso às aplicações instaladas, arquivos do usuário e favoritos.

Capítulo 2 - Linux no desktop

1 Barra de status: exibe o status das conexões de rede, o nível de volume do autofalante, entre outros.

1 Calendário: exibe o calendário e a hora do sistema. Clicando sobre ele pode-se ajustar a data e a hora do sistema.

Lançador de aplicações

O lançador de aplicações é um ótimo facilitador para acesso as aplicações instaladas,

arquivos do usuário e favoritos. Ele pode comportar as seguintes abas:

1 Favoritos: a aba Favoritos pode conter as aplicações e locais favoritos do usuário. As apli- cações mais utilizadas e os locais mais acessados passam a fazer parte automaticamente dessa lista. Também é possível clicar sobre um ícone com o botão direito do mouse e selecionar a opção “Adicionar aos favoritos”. Por padrão, a lista de favoritos pode conter o navegador Konqueror, um atalho para as ferramentas de configuração do sistema e o gerenciador de arquivos Dolphin.

1 Aplicativos: contém todas as aplicações instaladas no sistema, que são divididas por categorias, como Administração, Configurações, Escritório, Jogos, Multimídia, Internet, Utilitários etc.

1 Computador: a aba Computador possibilita ao acesso às mídias de armazenamento ins- taladas no computador bem como locais e configurações do sistema. Dentre as opções presentes, podemos destacar: as Configurações do sistema, Informações do sistema, Pasta do usuário, Rede, Lixo etc.

1 Usados recentemente: exibe as aplicações e os documentos que foram abertos recente- mente pelo usuário.

1 Sair: a aba Sair possui opções para finalização da sessão de trabalho ou desligamento do com- putador, como: bloqueio da sessão, troca de usuário, reinicialização do sistema e shutdown.

Konqueror

O Konqueror é um aplicativo padrão do KDE, que basicamente possui duas funcionalidades: a de

navegador web e a de gerenciador de arquivos. Na função gerenciador de arquivos é possível:

apagar, mover, copiar ou renomear arquivos e diretórios; selecionando-os, clicando e arrastando ou escolhendo uma opção no menu. Na função navegar web é somente necessário informar um endereço da internet (site) que automaticamente o Konqueror buscará a página solicitada.

Konsole

Assim como o GNOME, o KDE também possui um emulador de terminal de linha de comando, chamado Konsole. Ele executa funções do sistema utilizando comandos sem sair do ambiente gráfico. Suporta quase todos os comandos do Shell Linux.

Configurando o KDE

Para configurar a aparência do KDE basta clicar com o botão direito do mouse sobre o desktop e selecionar a opção Configurações da área de trabalho. Essa janela possibilita a alteração do tema atual bem como do papel de parede.

Configurações da área de trabalho. Essa janela possibilita a alteração do tema atual bem como do

Unity desktop

O Unity foi desenvolvido pela comunidade Ayatana, e por padrão está disponível na distri-

buição Linux Ubuntu desde sua versão 11.

Ele possui uma barra superior concentrando os menus e a barra lateral esquerda com os lançadores, composto pelo botão Painel Inicial, que permite: realizar pesquisas no sistema, acessar aplicativos usados recentemente, aplicativos instalados e aplicativos disponíveis para download. Para facilitar as pesquisas, ele permite a utilização de filtros, otimizando o processo de busca. Por padrão, na barra lateral é possível acessar o diretório pessoal, bem como aplicativos pré-definidos ou manualmente incluídos.

como aplicativos pré-definidos ou manualmente incluídos. Para mais informações sobre o KDE, consulte o nosso

Para mais informações sobre o KDE, consulte o nosso Ambiente Virtual de Aprendizagem

Quando comparado ao clássico GNOME, o Unity possui um visual bem mais ousado. Com isso, esse gerenciador de janelas consome um pouco mais de recursos de hardware, princi- palmente de sua placa de vídeo.

Botão Painel Inicial Área de Notificação Lançadores de aplicativos Desktop A barra superior é dividida
Botão Painel Inicial
Área de Notificação
Lançadores de aplicativos
Desktop
A
barra superior é dividida em duas partes: uma localiza os botões fechar, minimizar,
maximizar e o nome do aplicativo que está aberto. No lado contrário estão localizados os
indicadores, mini aplicativos e aplicativos que fazem uso quando executados.
Figura 2.8
Tela do Unity no
Ubuntu.
Introodução ao Linux

Capítulo 2 - Linux no desktop

Xfce desktop

O Xfce é um dos gerenciadores gráficos mais indicados para computadores que possuem hardware com poucos recursos, pois além de ser um ambiente rápido e leve, é visualmente atraente e fácil de utilizar.

Foi fundado por Olivier Fourdan, tendo sua primeira versão em 1997. Atualmente é mantido e desenvolvido por colaboradores. É software livre e atua sobre a licença GPL.

Para aqueles que se utilizam do GNOME ou KDE e acostumaram-se com alguma aplicação específica, a boa notícia é que o Xfce permite a integração a diversas aplicações sem a necessidade de instalar todo o ambiente desses próprios gerenciadores. Por usarem as mesmas bibliotecas, aplicativos do GNOME são os mais adequados. Mas saiba que talvez essas aplicações nem sejam necessárias, pois além de sua leveza e visual atraente, o Xfce também conta com diversas aplicações e módulos que agregam seu ambiente de trabalho, como emulador de terminal, editor de texto, controlador de áudio, pesquisador de aplica- ções, visualizador de imagens, calendário e aplicações para gravação de CDs e DVDs.

Ao migrar para um diferente gerenciador gráfico precisamos passar por um novo processo de reconhecimento, adaptação ao ambiente bem como o aprendizado dos nomes de seus aplicativos, que são peculiares a cada gerenciador. No início é comum estranhá-lo, mas saiba que por um curto período de tempo é possível se adequar facilmente. Veja os nomes padrões das aplicações mais comumente utilizadas:

1 Editor de texto: Mousepad.

1 Emulador de terminal: xfce4-terminal.

1 Navegar web: Midori.

1 Gravador de CD e DVD: Xfburn.

1 Leitor multimídia: Parole.

de terminal: xfce4-terminal. 1 Navegar web: Midori. 1 Gravador de CD e DVD: Xfburn. 1 Leitor

Introodução ao Linux

Menu de aplicativos Desktop Áreas de trabalho Área de notificação Atalhos da área de trabalho
Menu de aplicativos
Desktop
Áreas de trabalho
Área de notificação
Atalhos da área de trabalho
Dock (Quick Launch Bar)

Semelhante à barra central dos Sistemas Operacionais da Apple, por padrão o Xfce traz um Dock central, também chamada de Quick Launch Bar, que basicamente é um facilitador para acesso a itens utilizados frequentemente. É possível adicionar seus aplicativos e locais predi- letos: apenas clique e arraste para a posição desejada na barra do Dock.

Figura 2.9

Gerenciador de

janelas Xfce.

Janelas com efeitos 3D

Poder trabalhar em uma empresa agradável, com pessoas simpáticas e de estrutura pra- zerosa gera um enorme conforto e soma na satisfação. Seguindo esse contexto, podemos estender a ideia a seu ambiente desktop, a famosa Área de Trabalho.

Uma sala desorganizada, onde não se sabe onde cada documento está, é um ótimo exemplo de quão inadequada nossa administração atua. Organização é a primeira ideia para obtenção de um ambiente conveniente. O visual de uma estrutura influencia bastante na satisfação, no prazer. Claro que uma sala pequena com muitas demandas pode se tornar um flagelo, mas trazendo todo esse conceito para o lado digital, esqueça o tamanho da sala e a quantidade de demandas.

Os administradores de sistemas gastam mais da metade de suas vidas em frente a uma estação de trabalho. E pensando nessa ideia e nos mais diversos tipos de público, desenvol- vedores livres atuam na construção de um ambiente de trabalho digital totalmente con- fortável, uma espécie de “diversão séria”. É muito bom poder trabalhar e desfrutar de uma estação de trabalho que dê prazer. Uma simples animação de janelas do sistema ou efeitos de tela talvez sejam as respostas para esse desejo.

Aqui listamos o mais completo software utilizado para todas essas funções. Um dos pri- meiros gerenciadores de janelas 3D para o Servidor X dos Sistemas Operacionais Linux, o famoso Compiz.

Um dos pri- meiros gerenciadores de janelas 3D para o Servidor X dos Sistemas Operacionais Linux,

Capítulo 2 - Linux no desktop

Lançado pela Novell em janeiro de 2006, atualmente é agregado ao antigo projeto chamado de Beryl, que juntos recebem o nome de Compiz Fusion, que se tornou uma ampla coleção de plug-ins, que configuram o sistema para utilização do gerenciador de composição de janelas.

Figura 2.10 Efeito cube do compiz.

de janelas. Figura 2.10 Efeito cube do compiz. Dependendo de sua distribuição Linux, é possível que

Dependendo de sua distribuição Linux, é possível que alguns poucos pacotes do Compiz já estejam instalados em sua estação, habilitando efeitos simples. Para aumentar as possibilidades de entretenimento e efeitos em geral, é preciso obter o gerenciador de configurações do Compiz.

Nele, é possível experimentar os inúmeros efeitos disponíveis no ambiente. Através de um simples clique, podemos verificar o efeito no mesmo instante, sem a necessidade de reini- cialização do sistema ou mesmo logoff. Sim, é verdade que tais efeitos podem não significar tanta coisa ou mesmo não ter utilidade prática, mas deixam o desktop muito mais vivo, interessante e atraente.

Nem todo computador suporta os efeitos visuais do Compiz. Dependendo do efeito, pode ser necessária a exigência de um alto consumo de recursos de hardware, principalmente de sua placa de vídeo.

recursos de hardware, principalmente de sua placa de vídeo. Entretenimento Ocasionalmente precisamos pausar nossas

Entretenimento

Ocasionalmente precisamos pausar nossas demandas e dedicar tempo a algo prazeroso. Um ótimo exemplo é se distrair com um dos melhores passatempos do mundo tecnológico, o game.

O mercado de jogos eletrônicos está em constante crescimento e evolução. E embora o senso comum acredite que na maioria das vezes os fãs de games comprem jogos para usar em consoles, o fato é que a quantidade de jogos eletrônicos vendidos para uso em computa- dores pessoais e consoles é bem parecida.

Para os fãs de jogos em computadores e usuários de Linux, uma boa notícia: os mais variados tipos de jogos estão disponíveis nesse Sistema Operacional. É possível encontrar até mesmo os clássicos jogos de sua infância, como o Pac-Man e Galaga. Também é muito divertido poder se adequar virtualmente a games que até então somente jogávamos em mesas ou tabuleiros físicos, como Poker, Gamão, Dama, Xadrez, Tetris e Campo Minado.

então somente jogávamos em mesas ou tabuleiros físicos, como Poker, Gamão, Dama, Xadrez, Tetris e Campo

Introodução ao Linux

Para quem não se contentou com essas poucas opções, informamos que é possível transformar um computador pessoal (com Linux) em uma plataforma de jogos perfeita, equivalente aos videogames. Para isso, utilizamos os famosos emuladores de consoles. Esses emuladores, como o próprio nome indica, emulam um videogame real, disponibilizando todos os seus recursos em um computador padrão, permitindo a disponibilização de inúmeros consoles por meio do conceito de emulação. O Linux possui emuladores dos videogames Mega Drive, Super Nintendo, Game Boy, MAME e PlayStation; todos com adoção de licenças free, ou seja, download gratuito.

É totalmente possível usar um computador pessoal como uma plataforma completa para os

games mais avançados do mercado. Para isso, é necessário efetuar o upgrade de hardwares,

como o investimento em uma boa placa de vídeo e a expansão de memória RAM.

em uma boa placa de vídeo e a expansão de memória RAM. l Por questões de

l

Por questões de licença e direitos autorais, muitos desses games podem não conter o mesmo nome encontrado em outros Sistemas Operacionais concorrentes ou videogames.

Figura 2.11 Foto ilustrativa do game Fórmula 1 para Linux.

Caso o usuário não queira instalar todos os plug-ins e aplicativos necessários para trans- formar seu Linux em videogame, existem distribuições Linux criadas exclusivamente para isso, contemplando o suporte a teclados e mouses especiais, joysticks idênticos a consoles como PlayStation e Xbox, e drivers oficiais para placas de vídeo como a Nvidia e AMD.

É sensato admitir que o Linux ainda não pode prover absolutamente todos os efeitos e

recursos que uma placa de vídeo atual fornece, contudo, os games não são o foco final do Linux. A boa notícia é que atualmente os próprios fabricantes de games, bem como os fabri- cantes de placas de vídeos já desenvolvem plataformas e drivers oficiais exclusivamente para sistemas Linux, habilitando os mais sofisticados recursos e efeitos visuais.

Uma característica interessante do Linux é a utilização de repositórios, que possibilitam o download de aplicativos diversos, incluindo games. Tal mecanismo traz a certeza de que estamos conduzindo pacotes oficiais às nossas estações Linux, através de fontes fiscalizadas e totalmente confiáveis.

Instalação do Linux e Windows em Dual Boot

confiáveis. Instalação do Linux e Windows em Dual Boot O que é Dual Boot O mercado

O que é Dual Boot

O mercado tecnológico continua seu constante crescimento e inovação. O preço acessível

é um grande atrativo, possibilitando a aquisição de novos hardwares e soluções das mais

variadas. Uma fatia desse mercado são os famosos PCs (Personal Computers ou

Capítulo 2 - Linux no desktop

Computadores Pessoais), aqueles presentes no ambiente de nossos lares. Apesar da fácil acessibilidade, não necessariamente significa dizer que podemos comprar e manter dois ou mais computadores em um único ambiente, o que poderia dificultar a utilização de diferentes Sistemas Operacionais sem adotar técnicas de virtualização ou emulação.

No âmbito Sistemas Operacionais, a técnica de Dual Boot (ou Multiboot) é amplamente utilizada. Esse método traz o conceito de instalação de dois ou mais Sistemas Operacionais em um único computador, compartilhando o mesmo hardware (peças físicas) excluindo a necessidade de dividir o processamento. É muito indicado para estudantes de segurança da informação e principalmente para os que adoram experimentar diferentes Sistemas Opera- cionais usando a total potência da máquina.

A técnica de Dual Boot é análoga a possuir dois computadores com a exata configuração de hardware, porém operando com diferentes Sistemas Operacionais individualmente, geren- ciando seus processos e arquivos. A ideia é justamente excluir a aquisição de um segundo computador e a necessidade de aumentar a potência do hardware, uma vez que cada Sistema Operacional atuará sozinho, não ocasionando o compartilhamento de recursos e hardwares. Assim, Sistemas Operacionais em Dual Boot trabalharão em momento contrário ao outro, pois se um estiver ativo o outro está desligado.

As seguintes características são comuns a computadores com Dual Boot:

1 Instalação de dois ou mais Sistemas Operacionais (diferentes ou não).

1 Os hardwares não compartilham o processamento entre os diferentes sistemas.

1 Cada Sistema Operacional conterá seus próprios arquivos e softwares.

1 O processamento dos dados e softwares são totalmente independentes.

1 Os Sistemas Operacionais não se comunicam entre si.

1 Quando um Sistema Operacional está ativo o outro está desligado.

Apesar de os Sistemas Operacionais não poderem se comunicar, é possível realizar um pequeno planejamento de divisão do disco. Nessa divisão, por exemplo, poderíamos criar três partições contendo dois diferentes sistemas (exemplo: Linux Ubuntu e Linux CentOS), sendo que a terceira partição será somente para Arquivos, servindo como uma espécie de ligação (compartilhamento) entre os Sistemas Operacionais.

Boot Manager

Assim que um computador com sistemas em Dual Boot é ligado, passamos por todo aquele processo de testes da BIOS até finalmente chegar o momento da escolha de qual Sistema Operacional iniciar. Para que isso aconteça, necessitamos de um software gerenciador de boot, também conhecido como Boot Manager ou Bootloader.

Quando o assunto é tecnologia, se utiliza com frequência o termo “dar boot na máquina”, que basicamente significa selecionar um Sistema Operacional para ser iniciado por um Boot Manager. Para o gerenciador de boot conhecer os Sistemas Operacionais presentes em uma estação, é efetuada uma varredura nos discos rígidos em busca de arquivos especiais con- tendo informações de inicialização de Sistemas Operacionais instalados na máquina.

Ao final desse processo, o Boot Manager disponibiliza uma tela listando os sistemas encontrados, habilitando a escolha logo após o computador ser ligado. Nessa mesma tela é possível informar uma descrição individual para cada sistema encontrado, bem como informar parâmetros especiais para a inicialização do sistema. O procedimento de varredura

encontrado, bem como informar parâmetros especiais para a inicialização do sistema. O procedimento de varredura 33

por arquivos de inicialização é necessário somente uma única vez, ou caso um novo Sistema Operacional seja instalado. Para concluir esse processo, o Gerenciador de Boot copia todos os dados encontrados para o primeiro setor do disco, também conhecido como MBR.

MBR

O Registro Mestre de Inicialização (do inglês Master Boot Record – MBR) atua nos primeiros

512 bytes de um disco rígido. São 446 bytes reservados para o Setor de Boot e 66 bytes para a Tabela de Partição. Tanto o Gerenciador de Boot quanto a Tabela de Particionamento (contém as informações de divisões do disco), devem ser salvos na MBR.

A utilização de MBR é um recurso inteligente, que nos possibilita o gerenciamento dos discos

particionados, dos diferentes Sistemas Operacionais instalados e do Boot Manager; este

último varrerá todo o disco e consequentemente sobrescreverá o espaço da MBR a cada momento em que um novo Sistema Operacional adentrar a máquina.

Porque instalar o Windows antes do Linux

O processo de adoção da técnica de Dual Boot pode facilmente se tornar um retrabalho.

É importante frisar que alguns Sistemas Operacionais concorrentes podem vir a destruir

todo o processo de divisão dos sistemas, ocasionando a sobrescrita dos dados anterior- mente presentes em uma MBR.

l

Pode ser angustiante ter particionado todo o disco, instalado todos os Sistemas Operacionais e no final lembrar-se que de esqueceu de instalar um Gerenciador de Boot. Mas para nossa comodidade, hoje é possível encontrar inúmeras ferramentas de softwares que fazem todo esse processo de forma simples e transparente, mesmo após efetuar todo o processo de particionamento e instalação dos SOs.

Após o processo de particionamento de um disco, é comum não se preocupar com premissas,

como: “Qual sistema instalar primeiro?” Esta pequena penalidade pode levá-lo à reinsta- lação de todos os Sistemas Operacionais previamente instalados ou, no menor dos casos,

é possível achar alguma solução de contorno na internet.

Esse retrabalho pode ser facilmente evitado, com o simples conhecimento de que nem todos os Sistemas Operacionais estão dispostos a buscar ou reconhecer que naquele PC existem outros Sistemas Operacionais concorrentes e, sem se importarem, sobrescrevem todo o setor inicial do disco. E, como visto anteriormente, é na MBR que estarão presentes os apontamentos com informações de inicialização para todos estes Sistemas Operacionais encontrados, bem como a presença do próprio Boot Manager, que gerenciará todo o pro- cesso de escolha e inicialização dos sistemas.

Para uma melhor abstração, veja as seguintes simulações expostas a seguir, onde graficamente é mostrado o ato de instalação em Dual Boot para dois diferentes Sistemas Operacionais.

Simulação 1

Iniciamos o processo particionando o disco em duas partições, uma para cada sistema. Lembrando que, por padrão, os primeiros 512 bytes devem ser alocados para a MBR:

DISCO RÍGIDO PARTICIONADO MBR Partição 1 Partição 2 Introodução ao Linux
DISCO RÍGIDO PARTICIONADO
MBR
Partição 1
Partição 2
Introodução ao Linux

Figura 2.12

Disco rígido

particionado com

MBR.

O primeiro sistema a ser instalado é o Linux Ubuntu, que instala seu Gerenciador de Boot e

suas informações de inicialização na MBR:

Figura 2.13 Linux instalado com Boot Manager.

Figura 2.14 Windows instalado com seu próprio Boot Manager.

DISCO RÍGIDO PARTICIONADO MBR Partição 1 Partição 2 Boot Manager do Linux S.O Linux Ubuntu
DISCO RÍGIDO PARTICIONADO
MBR
Partição 1
Partição 2
Boot Manager do Linux
S.O Linux Ubuntu
+
Iniciar Linux Ubuntu
O segundo sistema a ser instalado é o Windows 10, que instala seu Gerenciador de Boot e
suas informações de inicialização sobrescrevendo toda a MBR:
DISCO RÍGIDO PARTICIONADO
MBR
Partição 1
Partição 2
Boot Manager do Linux
S.O Linux Ubuntu
S.O Windows 10
+
Iniciar Linux Ubuntu

Boot Manager do Windows

+

Iniciar Windows 10

Graficamente percebemos que possuímos dois Sistemas Operacionais instalados em parti-

ções individuais. Mas por que somente o último (Windows 10) será inicializado?

Observe que apesar de os dois sistemas estarem disponíveis, eles compartilham o mesmo

espaço da MBR. Com isso, fica nítido que o último Sistema Operacional instalado “atropelou”

as informações de inicialização do outro, ou seja, o Linux Ubuntu não pode ser inicializado.

Simulação 2

Analise a segunda simulação a seguir, onde também serão instalados os dois Sistemas Ope-

racionais anteriores, porém em ordem contrária.

Figura 2.15

Disco rígido

particionado com

MBR.

Iniciamos o processo particionando o disco em duas partições, uma para cada sistema. Lembrando que,
Iniciamos o processo particionando o disco em duas partições, uma para cada sistema.
Lembrando que, por padrão, os primeiros 512 bytes devem ser alocados para a MBR:
DISCO RÍGIDO PARTICIONADO
MBR
Partição 1
Partição 2
Capítulo 2 - Linux no desktop

Introodução ao Linux

O primeiro sistema a ser instalado é o Windows 10, que instala seu Gerenciador de Boot e

suas informações de inicialização na MBR:

DISCO RÍGIDO PARTICIONADO MBR Partição 1 Partição 2 Boot Manager do Windows S.O Windows 10
DISCO RÍGIDO PARTICIONADO
MBR
Partição 1
Partição 2
Boot Manager do Windows
S.O Windows 10
+
Iniciar Windows 10
O segundo sistema a ser instalado é o Linux Ubuntu, que instala seu gerenciador de boot e
suas informações de inicialização, sobrescrevendo toda a MBR:
DISCO RÍGIDO PARTICIONADO
MBR
Partição 1
Partição 2
Boot Manager do Windows
S.O Windows 10
S.O Linux Ubuntu
+
Iniciar windows 10

Boot Manager do Linux

+

Iniciar Linux Ubuntu

+

Iniciar Windows 10

Figura 2.16 Windows instalado com seu próprio Boot Manager.

Figura 2.17 Dois sistemas instalados com suas entradas no Boot Manager do Linux.

Até aqui as execuções foram exatamente iguais, com a observação de que logo após o

Gerenciador de Boot do Linux ser instalado na MBR, por padrão, ele próprio fez uma varre-

dura no disco, buscando por outros Sistemas Operacionais disponíveis. E após encontrar o

Windows 10, ele adiciona uma nova entrada, atualizando o conteúdo da MBR. Assim, uma

nova linha é adiciona ao Gerenciador de Boot, informando que neste PC contém dois Sistemas

Operacionais para sua escolha:

linha é adiciona ao Gerenciador de Boot, informando que neste PC contém dois Sistemas Operacionais para

Capítulo 2 - Linux no desktop

Figura 2.18 Gerenciador de Boot GRUB com duas entradas de Sistemas Operacionais.

de Boot GRUB com duas entradas de Sistemas Operacionais. As informações de uma MBR sempre serão

As informações de uma MBR sempre serão sobrescritas caso optemos por instalar o Windows como último Sistema Operacional. Mas não se preocupe caso esse equívoco seja cometido, pois existem soluções de contorno, como a execução de comandos específicos digitados através de Live CD com uma distribuição Linux.

de contorno, como a execução de comandos específicos digitados através de Live CD com uma distribuição

Introodução ao Linux

3

Capítulo 3 - Instalação de aplicações

Instalação de aplicações

objetivos

Aprender a instalar aplicações a partir de seus códigos-fontes e de arquivos binários, por meio da interface gráfica e linhas de comandos.

Aplicações no Sistema Operacional Linux.

conceitos

Aplicações no Sistema Operacional Linux

Aplicações são instaladas em um sistema por diversos motivos, como necessidade dos usu- ários, mudanças nas funções desempenhadas pelo sistema, entre outros. Se uma aplicação não estiver mais sendo utilizada, deve ser logo removida, pois pode se tornar uma porta de entrada para invasores. Também é importante que as aplicações instaladas sejam sempre atualizadas, seja para corrigir defeitos, incluir novas funcionalidades ou mesmo para corrigir vulnerabilidades que possam afetar a segurança do sistema.

Saber como instalar, remover e atualizar uma aplicação corretamente é uma habilidade fundamental para qualquer administrador de sistemas. Nesta sessão de aprendizagem, veremos como executar essas tarefas. Mas antes disso, começaremos a entender como as aplicações são desenvolvidas, quais são suas principais características e como são distribuídas.

Antes que uma aplicação esteja pronta para uso, alguém deve projetá-la e escrevê-la. As aplicações são escritas utilizando uma ou mais linguagens de programação, que nada mais são do que linguagens intermediárias entre o que os humanos entendem (linguagem natural) e o que o computador entende (linguagem de máquina).

Algumas linguagens de programação se aproximam mais da linguagem natural, pois se servem de conceitos mais abstratos e, em geral, são capazes de efetuar mais tarefas com uma quantidade menor de comandos. Essas linguagens são conhecidas como linguagens de alto nível. Outras linguagens, conhecidas como linguagens de baixo nível, se aproximam mais da linguagem utilizada pela máquina e, em geral, apresentam melhor desempenho ao custo de um esforço maior de programação, já que normalmente são necessários mais comandos para efetuar uma mesma tarefa.

Chamamos os arquivos que contêm a aplicação escrita com uma linguagem de programação de código-fonte. Seja qual for o nível da linguagem, o código-fonte deve passar por um processo de tradução, para que seja entendido pelo computador. Esse processo pode ser feito uma única vez e o resultado pode ser armazenado em um ou mais arquivos contendo o código já traduzido

pode ser feito uma única vez e o resultado pode ser armazenado em um ou mais

Introdução ao Linux

para a linguagem de máquina ou, ainda, pode ser feito toda vez que a aplicação for executada. No primeiro caso, o processo de transformar o código-fonte em um arquivo contendo código de máquina (arquivo binário) é chamado de compilação. Quando esse processo de tradução acontece, sempre que a aplicação é executada, é chamado de interpretação.

Linguagens de programação

No Linux, as linguagens mais utilizadas no desenvolvimento de programas são a C e C++. A linguagem C é considerada por alguns uma linguagem de “médio nível”, pois apesar de possuir características de linguagens de alto nível, também possui características de lingua- gens de baixo nível, como o acesso direto ao hardware.

A linguagem C foi criada no início da década de 1970, e desde então tornou-se a linguagem

preferida para o desenvolvimento de Sistemas Operacionais. O kernel do Linux é escrito em

C, assim como vários de seus aplicativos e bibliotecas de funções. A linguagem C++ é uma

linguagem criada a partir da linguagem C, acrescentando a ela características de linguagens

de alto nível, como a orientação a objetos. Um programa escrito em C precisa ser compilado antes de ser utilizado. Dependendo do seu tamanho, o código de um programa em C pode estar contido em diversos arquivos, cada um contendo um módulo ou parte do programa.

A compilação de um programa é feita com o auxílio de programas como compiladores e liga-

dores (do inglês linkers). O processo de compilação pode ser simplificado através do uso do programa make, que lê um arquivo chamado Makefile, que contém as instruções de como compilar de maneira correta os arquivos-fontes de uma aplicação. No Linux, o compilador C mais utilizado é o GNU C Compiler, também conhecido como gcc.

utilizado é o GNU C Compiler, também conhecido como gcc. Uma das características dos Sistemas Unix

Uma das características dos Sistemas Unix é a modularidade. Seus comandos, em geral, desempenham tarefas simples e as tarefas mais complexas são executadas utilizando dois ou mais comandos. De forma análoga, programas complexos são criados através da combinação de funções contidas em módulos menores, também chamados de bibliotecas. Para entender melhor esse conceito, vamos utilizar um exemplo: imagine um programador que deseja escrever um programa capaz de tocar arquivos MP3. O programa deverá ser capaz de abrir um arquivo MP3, decodificar o seu conteúdo e reproduzi-lo utilizando a placa de som, além de

prover uma interface para o usuário que permita executar as ações de parar, iniciar, avançar

e retroceder a posição da música. Ele poderá escrever um código capaz de fazer todas essas

funções ou poderá utilizar bibliotecas de funções criadas por outros programadores que dis- ponibilizem as funções descritas anteriormente, facilitando o desenvolvimento do programa.

As funções de uma biblioteca podem ser utilizadas por um programa de duas maneiras: estati- camente ou dinamicamente. No modo estático, o código da função utilizada pelo programa

é embutido no binário do programa. Dessa forma, o programa pode ser executado em um

sistema sem que tenha a necessidade de possuir as bibliotecas para realizar as funções que o programa utiliza. Essa forma apresenta, como desvantagem, o tamanho dos arquivos binários dos programas, que passam a ser bem maiores. Por outro lado, um programa pode usar uma biblioteca de função de maneira dinâmica. Nesse caso, quando o programa é executado, ele procura no sistema as bibliotecas de que necessita e as carrega na memória.

l

A vantagem de utilizar essa forma é que vários programas podem utilizar a mesma biblioteca já carregada na memória, dimi- nuindo assim o total de memória utilizada pelo sistema como um todo. Além disso, programas que utilizam bibliotecas carregadas dinamica- mente possuem arquivos binários menores.

No Linux, os arquivos contendo bibliotecas dinâmicas geralmente se localizam nos diretórios /lib e /usr/lib. Normalmente esses arquivos são nomeados utilizando o padrão libXXX.so[.z.y],

onde XXX é o nome ou sigla da biblioteca, .so é a extensão que identifica bibliotecas dinâmicas

e .z.y é a versão da biblioteca, que pode ser opcional. Dado um arquivo binário qualquer,

podemos identificar as bibliotecas que ele utiliza com o comando ldd. O exemplo a seguir mostra a lista das bibliotecas que o shell bash utiliza:

Capítulo 3 - Instalação de aplicações

# ldd /bin/bash Linux-gate.so.1 => (0xffffe000) libncurses.so.5 => /lib/libncurses.so.5 (0xb7f82000) libdl.so.2 => /lib/tls/libdl.so.2 (0xb7f7e000) libc.so.6 => /lib/tls/libc.so.6 (0xb7e46000) /lib/ld-Linux.so.2 (0xb7fd1000)

A saída do comando apresenta o nome das bibliotecas utilizadas, o caminho completo do

arquivo onde estão contidas e um número que identifica a posição de memória que ocupam.

Quando um programa necessita carregar uma biblioteca, ele utiliza um carregador em tempo de execução (do inglês run-time linker), conhecido como ld.so. Esse carregador, por sua vez, precisa identificar os diretórios que contêm as bibliotecas. Para isso, ele usa o arquivo /etc/ld.so.cache, que é gerado através da execução do comando ldconfig. Esse comando, quando executado, lê o arquivo /etc/ld.so.conf , que contém os diretórios do sistema onde os arquivos de bibliotecas podem ser encontrados. Sempre que o arquivo /etc/ld.so.conf for alterado, o comando ldconfig deve ser executado para atualizar o arquivo /etc/ld.so.cache.

Quando um programador decide distribuir sua aplicação, ele pode fazê-lo de duas maneiras:

distribuir os arquivos-fontes ou a aplicação já compilada. Veremos, a seguir, como proceder para instalar aplicações distribuídas nas duas formas citadas. Vale lembrar que uma aplicação não é composta apenas pelo seu arquivo binário. Em geral, uma aplicação possui também arquivos de configuração, manuais de sistema e arquivos de documentação, além de exem- plos. Chamamos esse conjunto de arquivos de pacote.

Instalando aplicações a partir de seus códigos-fontes

O método de instalação a partir de arquivos-fontes é o método que envolve mais trabalho

para quem vai instalar; porém, envolve menos trabalho para o programador, já que ele deve apenas disponibilizar os arquivos-fontes. A grande maioria das aplicações escritas para Sistemas Unix tem seu código-fonte disponibilizado, possibilitando a todos o acesso ao modo como o programa foi escrito. É comum que programas licenciados pela General Public License (GPL) ou por uma licença open source estejam disponíveis nessa forma, e que programas proprietários não estejam.

Embora essa seja a forma de instalação mais trabalhosa, esse método permite que o programa seja modificado e personalizado. Em geral, é possível escolher onde o programa deverá ser instalado e onde procurará por arquivos de configuração. No entanto, o grau de personalização de um programa, depende muito de sua função e do seu programador. Imagine um programa que funcione como um cadastro de telefones. Esse programa poderia armazenar suas informações em um dos diversos Sistemas Gerenciadores de Bancos de Dados (SGBDs) disponíveis para Linux, ou poderia simplesmente armazenar as informações em arquivos textos.

O programador que desenvolveu esse aplicativo poderia permitir que o administrador esco-

lhesse o modo de armazenamento dos dados gerados pelo programa, por meio de opções especiais utilizadas no processo de compilação. Ativando ou desativando essas opções, os requisitos para a instalação do programa e o seu tamanho se alteram já que, por exemplo, ao desativar o suporte para armazenagem de dados em bancos de dados tal programa não iria requerer bibliotecas com funções de acesso a bancos de dados.

Usualmente, o processo de instalação de um programa a partir de um arquivo-fonte é composto por quatro passos, que serão descritos a seguir.

instalação de um programa a partir de um arquivo-fonte é composto por quatro passos, que serão

Introdução ao Linux

Obtenção dos arquivos-fontes

A obtenção de arquivos-fontes pode se dar através de mídias externas com distribuições

Linux, sites repositórios de softwares livres (podem conter milhares de aplicativos) – ou mais

comumente aderido, através do site oficial do próprio fabricante de software.

Os códigos-fontes geralmente são distribuídos em arquivos compactados no formato tar.gz

ou tar.bz2. Os exemplos seguintes mostram como descompactar arquivos nos formatos tar.gz

e tar.bz2, respectivamente:

# tar -zxvf programa.tar.gz

# tar -jxvf programa.tar.bz2

Visite o site do desenvolvedor Sourceforge.

programa.tar.bz2 Visite o site do desenvolvedor Sourceforge. Verificação do ambiente para a compilação Após a

Verificação do ambiente para a compilação

Após a descompactação, é recomendável ler o conteúdo de arquivos como o INSTALL e/ou

README, caso estejam presentes, pois contêm informações sobre como compilar e instalar

o programa em questão.

A verificação do ambiente, necessária para a compilação, é feita através de um script auxiliar

chamado configure, presente na grande maioria dos programas. Esse script verifica se todos os pré-requisitos necessários para a compilação do programa estão presentes e gera

o arquivo Makefile. O script configure geralmente possui a opção --help, que lista todas as opções de configuração de um programa. O comando a seguir executa o script configure:

# ./configure

Como vimos, os programadores escrevem programas utilizando funções presentes em bibliotecas de funções. Mas só as bibliotecas não bastam na hora de compilar um programa,

sendo necessário também que estejam presentes seus arquivos de cabeçalho (headers). Nas linguagens C e C++, antes de uma função ser utilizada, ela precisa ser definida, ou seja,

é necessária uma espécie de descrição contendo o nome da função, seu tipo e os parâme-

tros que aceita. Para que não seja necessário manter no sistema vários arquivos com todos

os códigos de funções, os projetistas dessas linguagens pensaram em um jeito de separar do seu código as declarações das funções. Assim, ao compilar um programa, é necessário apenas ter essas declarações, que ficam contidas em arquivos com a extensão .h.

Para satisfazer os pré-requisitos para a compilação de um programa (os arquivos de cabeçalho e as bibliotecas que o programa utiliza), ainda será preciso instalar e compilar as bibliotecas necessárias ou instalá-las por intermédio de pacotes da distribuição, como veremos adiante.

de pacotes da distribuição, como veremos adiante. Compilação e instalação Uma vez configurados e

Compilação e instalação

Uma vez configurados e satisfeitos os pré-requisitos, podemos iniciar o processo de compilação utilizando o comando make, que na verdade não é um compilador, mas apenas lê arquivos especiais (Makefiles) que contêm regras para compilar um programa. Essas regras especificam:

os arquivos-fontes que devem ser compilados, o compilador que deve ser utilizado,

Capítulo 3 - Instalação de aplicações

o modo como esses arquivos-fontes devem ser ligados e os diretórios onde devem ser

armazenados ao serem instalados, entre outros aspectos. Sua utilização é bastante simples,

bastando executá-lo no diretório em que se encontra o arquivo Makefile, como mostra o comando a seguir.

#

make

O

processo de compilação tanto pode ser rápido, para programas simples, quanto pode

durar horas, dependendo do tamanho e da complexidade do código-fonte e da velocidade da máquina.

Por fim, a instalação propriamente dita é feita pelo programa make, usualmente utilizando-se

a opção install, que em geral especifica uma regra especial dentro do Makefile, que faz com

que o make copie os arquivos do programa já compilado para os diretórios onde deverão ser instalados no sistema. Para fazer a instalação, basta executar o seguinte comando:

# make install

Isso fará com que o make copie os arquivos contendo o código compilado, manuais e arquivos de configuração para os diretórios adequados. Note que, embora os outros dois passos possam ser executados com uma conta de usuário comum, esse último passo deve ser feito utilizando a conta root.

Dependendo da distribuição Linux utilizada, por convenção, os arquivos dos programas

compilados pelo administrador do sistema são instalados em subdiretórios dentro de /usr/local/, como /usr/local/bin (para arquivos binários) e /usr/local/etc (para arquivos de configuração). Tais arquivos são divididos somente para obtermos uma melhor organização no sistema. Assim, os softwares padrões (advindos da própria instalação do sistema) ficam localizados

em um primeiro nível de diretórios dentro do / (/bin, /etc,

ridos após a instalação do sistema) ficam localizados em um segundo nível de diretórios

dentro de /usr/local (/usr/local/bin, /usr/local/etc,

),

e softwares adicionais (inse-

).

Alguns programas podem ser removidos por intermédio do comando make uninstall. A opção uninstall usualmente especifica uma regra dentro do Makefile que contém os comandos para remover os arquivos instalados. Embora essa seja uma prática comum, não são todos os arquivos-fontes que apresentam essa opção. Uma boa prática, ao se instalar programas dessa forma, é usar um programa auxiliar como o checkinstall, que registra os arquivos que foram inseridos no sistema, facilitando, assim, a sua remoção e atualização no futuro.

A instalação de programas utilizando o código-fonte é recomendada para os casos em

que não exista um pacote binário pronto para a distribuição ou em casos onde realmente

é necessário alterar o código-fonte da aplicação. Para os outros casos, prefira utilizar os pacotes disponibilizados pela própria distribuição.

Instalando aplicações a partir de arquivos binários

Nessa forma de instalação, as aplicações são distribuídas em arquivos que contêm a apli- cação na sua forma já compilada (por isso o nome arquivos binários), necessitando apenas que sejam armazenadas nos diretórios adequados. Faremos aqui uma pequena distinção entre dois tipos de arquivos binários: o primeiro tipo é criado pelo desenvolvedor do pro- grama, e o segundo é um tipo especial de arquivo binário, criado exclusivamente para uma determinada distribuição Linux. Veremos o primeiro tipo agora e o segundo mais adiante.

exclusivamente para uma determinada distribuição Linux. Veremos o primeiro tipo agora e o segundo mais adiante.

Introdução ao Linux

A instalação de uma aplicação a partir de arquivos binários é bem mais simples do que a insta-

lação a partir de arquivos-fontes. Geralmente é necessário apenas obter o arquivo contendo a aplicação, descompactá-lo e copiar os arquivos para os diretórios corretos. Esse último passo pode ser feito por um script distribuído juntamente com a aplicação, especificamente para esse fim. Nesse tipo de instalação não há como o desenvolvedor garantir que o seu sistema contenha todos os pré-requisitos para que a aplicação funcione adequadamente.

Sendo assim, é comum que ele adote uma das duas estratégias: desenvolver a aplicação de modo que ela requeira um conjunto mínimo de bibliotecas, deixando por conta do usuário

a instalação delas, ou incluir as bibliotecas estaticamente na aplicação, deixando ela pronta

para uso, não necessitando de nenhuma biblioteca adicional. A distribuição de aplicações em

arquivos binários é usualmente adotada por empresas que produzem programas proprietá- rios e que têm a necessidade de manter seus códigos-fontes inacessíveis para terceiros (a partir de um arquivo binário, é praticamente impossível obter o código-fonte original).

Para facilitar a disseminação, instalação e sobretudo a manutenção de um sistema, as distri- buições Linux criaram o que chamamos de pacotes. Um pacote é um arquivo que contém uma aplicação ou biblioteca, scripts de instalação e dados, como sua descrição e pré-requisitos. Os pacotes são manipulados por meio de programas especiais que, além de instalar, desins- talar ou atualizar um pacote, gravam informações sobre eles em uma base de dados no sistema. No Linux, os pacotes nos formatos rpm e deb são os dois tipos mais populares.

O padrão de pacotes rpm foi originalmente criado pela Red Hat e, posteriormente, adotado

por outras distribuições como SUSE e Fedora. Os pacotes deb foram criados pela distribuição Debian, e são utilizados também pelas distribuições derivadas e baseadas nela, como o Ubuntu.

O funcionamento de ambos os tipos de pacotes é bastante semelhante, mudando apenas as

ferramentas utilizadas para gerenciá-los. Por padrão, as distribuições Debian e derivadas se utilizam do gerenciador dpkg, e o RedHat e derivadas o gerenciador rpm.

É importante saber que o nome completo dos pacotes Linux obedece a certas nomencla-

turas que modificam a estrutura, para uma fácil identificação do aplicativo em questão.

As estruturas para definição do nome de pacotes do tipo binário, por exemplo, podem atuar da seguinte maneira:

Formato padrão para distribuições Debian

<NomeDoPacote>_<Versão>-<Revisão>_<Arquitetura>.deb

Exemplo:

bash_4.4-5_amd64.deb

Formato padrão para distribuições RedHat

<NomeDoPacote>-<Versão>-<Revisão>.<Arquitetura>.rpm

Exemplo:

bash-4.2.46-30.x86_64.rpm

Exemplo: bash-4.2.46-30.x86_64.rpm 44

Capítulo 3 - Instalação de aplicações

l

As estruturas para definição de nomes de pacotes são apenas sugestivas (conven- ções). É possível encontrar pacotes binários que não foram criados seguindo tais premissas.

Um campo que merece destaque é o Arquitetura, que basicamente está relacionado para

qual tipo de hardware o pacote foi compilado. As principais arquiteturas são:

1 i386: pacotes para arquiteturas que utilizam processadores baseados na linha x86 da

Intel (32 bits).

1 x86_64: pacotes para arquiteturas que utilizam processadores de 64 bits.

1 PPC: pacotes para arquiteturas que usam processadores PowerPC, utilizados pela Apple.

1 SRC: pacotes que não contêm binários, mas sim o código-fonte da aplicação, o que a

torna portável para vários tipos de arquiteturas.

Red Hat Package Manager (RPM)

O comando rpm é a principal ferramenta usada para instalar, desinstalar, consultar e atua-

lizar pacotes no formato Red Hat Package Manager (RPM). Por padrão, esse gerenciador já

vem instalado em toda distribuição Linux Red Hat e suas derivações. A grande observação

que podemos citar como desfavorável é que ele não consegue resolver dependências entre

pacotes, ou seja, caso um pacote necessite da instalação de um segundo pacote, o rpm não

consegue ajudá-lo, fazendo com que o administrador de sistema atue manualmente.

A tabela 3.1 apresenta as principais opções do comando rpm e as ações que elas executam:

Tabela 3.1 Opções básicas do comando rpm.

Opção

Ação

i

Instala um pacote.

e

Remove um pacote.

U

Atualiza um pacote, caso já esteja instalado; ou instala o pacote, caso não esteja instalado.

F

Atualiza um pacote apenas se o pacote já estiver instalado.

v

Habilita o modo verbose. O comando mostrará informações adicionais durante a sua execução.

h

Habilita o modo hash. O comando mostrará uma espécie de barra de progresso durante a instalação dos pacotes.

É comum utilizarmos as opções v e h combinadas com as opções i ou U ao instalar ou atua-

lizar um pacote. A sintaxe do comando rpm pode ser vista a seguir:

# rpm <opção>

[pacote]

A seguir são apresentados alguns exemplos de utilização do comando rpm.

Instalando um pacote:

# rpm -ivh chkconfig-1.3.20-1.i386.rpm

Atualizando um pacote:

# rpm -Uvh chkconfig-1.3.20-1.i386.rpm

um pacote: # rpm -ivh chkconfig-1.3.20-1.i386.rpm Atualizando um pacote: # rpm -Uvh chkconfig-1.3.20-1.i386.rpm 45

Removendo um pacote:

# rpm -e chkconfig

Introdução ao Linux

Observe que para remover um pacote só é necessário indicar o nome do pacote ou

nome-versão, não necessitando descrever o nome completo do arquivo que contém

o pacote.

Ao instalar ou remover um pacote, o comando rpm verifica as seguintes premissas:

1 Se o pacote possui dependências.

1 Se o pacote necessita de algum pacote ainda não instalado.

1 Se o pacote a ser removido é uma dependência de algum outro pacote.

Caso alguma dessas verificações seja listada, o próprio gerenciador emitirá informações

detalhadas do que possa ter acontecido, podendo informar mensagens de erro como as

listadas a seguir:

# rpm -ivh dvgrab-1.7-3.i386.rpm error: Failed dependencies:

libavc1394.so.0 is needed by dvgrab-1.7-3.i386 libdv.so.4 is needed by dvgrab-1.7-3.i386 libraw1394.so.8 is needed by dvgrab-1.7-3.i386 librom1394.so.0 is needed by dvgrab-1.7-3.i386

# rpm -ev bzip2 error: Failed dependencies:

bzip2 is needed by (installed) man-1.5p-4.i386 bzip2 is needed by (installed) system-configprinter- 0.6.131-1.i386

Repare que o comando rpm apenas indica a existência de uma dependência, que deve ser

instalada manualmente, caso necessário. Veremos mais adiante uma ferramenta capaz de

resolver automaticamente problemas com dependências.

Consultando informações sobre pacotes

O comando rpm possui opções que permitem listar ou consultar informações de pacotes já

instalados no sistema, bem como de arquivos contendo pacotes ainda não instalados. Para

fazer consultas com o comando rpm, podemos utilizar a seguinte sintaxe:

# rpm

-q

[opção]

[pacote|arquivo]

As opções de consulta devem ser sempre utilizadas em conjunto com a opção –q, do inglês

query (consultar). A tabela 3.2 apresenta as principais opções de consulta utilizadas no

comando rpm e suas ações:

Opção

Ação

a

Lista todos os pacotes instalados no sistema.

f <arquivo>

Lista o pacote ao qual pertence o arquivo <arquivo>.

p <arquivo de pacote>

Consulta o <arquivo de pacote>. Utilizada para consultar um arquivo contendo um pacote ainda não instalado.

Consulta o < arquivo de pacote >. Utilizada para consultar um arquivo contendo um pacote ainda

Capítulo 3 - Instalação de aplicações

Tabela 3.2 Opções de consulta do comando rpm.

Opção

Ação

i

<pacote>

Mostra informações sobre o pacote: incluindo nome, versão e descrição.

l

<pacote>

Lista os arquivos que pertencem a um pacote.

R

<pacote>

Lista as dependências de <pacote>.

Conforme vimos, embora o comando rpm seja a principal ferramenta para instalar, atualizar,

remover e consultar pacotes, faltam-lhe opções de como resolver automaticamente

problemas com dependências ou de atualizar todo o sistema. Para resolver esse tipo de

problema, foram criadas ferramentas de mais alto nível, como o Yellowdog Update Modifier

(YUM), da distribuição Red Hat, e o Yet another Setup Tool (Yast), da distribuição SUSE.

Debian Package (dpkg)

O Debian Package (dpkg) é um gerenciador de pacotes para sistemas baseados em Debian.

Ele pode instalar, remover e construir pacotes, e análogo ao gerenciador de pacotes rpm

(para distribuições Red Hat), o dpkg não baixa e instala automaticamente os pacotes e suas

dependências no sistema. Para isso é necessário que todos os pacotes estejam disponíveis

localmente no sistema. Sintaxe do comando dpkg:

# dpkg <opção>

[pacote.deb]

Tabela 3.3 Parâmetros do comando dpkg e descrições.

As seguintes opções podem ser utilizadas:

Opção

Ação

i

Instala um pacote.

r

Remove um pacote.

P

Purge – remove um pacote e seus respectivos arquivos de configuração.

p

Exibe informações sobre um determinado pacote.

--unpack

Descompacta o pacote, mas não o configura.

--configure

Reconfigura um pacote descompactado, se o pacote já estiver instalado utilize o comando dpkg-reconfigure.

-l

Lista os pacotes que combinam com o padrão dado. Se nenhum padrão for informado, lista todos os pacotes instalados no sistema.

Instalando aplicações a partir de repositórios

Como vimos anteriormente, para funcionar adequadamente um programa pode necessitar de

uma biblioteca ou até mesmo de outro programa. Quando lidamos com pacotes, chamamos

esses pré-requisitos de dependências. Assim, podemos dizer que o pacote A “depende” do

pacote B ou, ainda, que o pacote B é uma dependência do pacote A.

Quando instalamos um pacote, a ferramenta utilizada para instalá-lo verifica nas informa-

ções contidas no pacote quais são suas dependências. Em seguida, verifica se essas depen-

dências já estão instaladas no sistema, consultando a base de dados de pacotes instalados.

Dependendo da ferramenta, ela solicitará que as dependências sejam instaladas ou tentará

instalar as dependências automaticamente. De forma semelhante, ao tentar remover um

sejam instaladas ou tentará instalar as dependências automaticamente. De forma semelhante, ao tentar remover um 47

Introdução ao Linux

pacote instalado no sistema, as mesmas verificações são efetuadas e a ferramenta indicará os outros pacotes que devem ser desinstalados juntamente com o pacote desejado. Essas

verificações são feitas com o intuito de deixar o sistema sempre num estado consistente, isto

é, garantindo que estejam instaladas todas as dependências de todos os pacotes instalados.

A seguir serão apresentadas duas ferramentas que atuam nesta prática e eficiente ação,

que é a resolução de dependências entre pacotes. A primeira (yum) é para Sistemas Linux

baseadas no Red Hat, e a segunda (dpkg) para distribuições baseadas no Debian.

YUM

O YUM usa o conceito de repositório de pacotes, e por isso não há a necessidade de que os

arquivos de pacotes sejam obtidos manualmente. Um repositório é um site especialmente

preparado contendo pacotes e arquivos de índice, com informações sobre esses pacotes.

O comando yum é capaz de consultar um repositório e automaticamente baixar e instalar

pacotes, liberando o administrador de efetuar essas tarefas manualmente. Os repositórios do YUM estão divididos em três tipos básicos:

1 Base: nos repositórios base se localizam os pacotes que fazem parte da distribuição, como os distribuídos na mídia de instalação.

1 Updates: nos repositórios update estão atualizações para os pacotes do repositório base e pacotes que não fazem parte dos repositórios base. Nem suas atualizações se encon- tram nos repositórios extra.

1 Extras: um repositório extra pode aumentar exponencialmente a quantidade de apli- cativos disponíveis para instalação. Mas também pode conter pacotes não suportados oficialmente pela sua distribuição.

Configurando o YUM

O YUM é configurado por meio do arquivo /etc/yum.conf, que define opções como: número

de tentativas de acesso a um repositório, arquivo de log, diretório onde manterá os pacotes baixados, entre outras. Já a localização dos repositórios a serem consultados é definida nos arquivos que ficam armazenados no diretório /etc/yum.repos.d. A configuração padrão de ambos é suficiente para seu funcionamento correto.

Nesse capítulo, veremos somente como adicionar novos repositórios. Cada repositório é configurado mediante um arquivo com a extensão .repo, usualmente disponível no site do próprio repositório. Um único repositório pode ter vários espelhos (mirrors), que funcionam como cópias idênticas do repositório original, mas ficam localizados em outros servidores, permitindo que o administrador escolha aquele que está localizado mais próximo ou que possua um link de maior capacidade.

O exemplo a seguir mostra o conteúdo do arquivo jpackage.repo, que configura o reposi-

tório de nome jpackage, que contém pacotes relacionados ao Java:

[jpackage6-fc17]

name=JPackage 6.0 for Fedora Core 17

baseurl=http://mirrors.dotsrc.org/jpackage/6.0/fedora-17/free/

gpgcheck=1

name=JPackage 6.0 for Fedora Core 17 baseurl=http://mirrors.dotsrc.org/jpackage/6.0/fedora-17/free/ gpgcheck=1 48

Capítulo 3 - Instalação de aplicações

Ao configurar um repositório, é preciso verificar a versão de sua distribuição, que no exemplo anterior é o Fedora Core 17. Repositórios e pacotes de outras distribuições ou versões podem não funcionar corretamente. Como medida de segurança, os pacotes rpm podem ser assinados digitalmente. Dessa forma, é possível verificar se um pacote realmente veio de um determinado repositório e se não foi adulterado. Os pacotes rpm são assinados