• Nenhum resultado encontrado

LinuxSystemAdministration COMPLETA

N/A
N/A
Protected

Academic year: 2021

Share "LinuxSystemAdministration COMPLETA"

Copied!
197
0
0

Texto

(1)

Linux System

Administration

(2)

SUMÁRIO

1. Introdução...4 1.1. O que é Linux...4 1.2. Distribuições...4 1.3. Sistemas de Arquivos...5 1.4. Instalação do Linux...6 1.5. Virtual Console...12 1.6. Desligamento/Reinicialização...13 1.7. Laboratório...15 1.8. Exercícios...17 2. Arquitetura de Sistema...18 2.1. Alteração de runlevels...18

2.2. Comunicando com o processo INIT...18

2.3. Outras funções do INIT...19

2.4. Arquivo /etc/inittab...19

2.5. O diretório /etc/rc.d/...22

2.6. Laboratório ...24

2.7. Exercícios...25

3. Comandos Básicos...27

3.1. Trabalhando na linha de comando...27

3.1.1. Linha de comando...27

3.1.2. Shell...28

3.1.3. Variáveis...29

3.2. Comandos sequenciais...31

3.3. Gerenciamento básico de arquivos...32

3.4. Metacaracteres...37

3.5. Streams de Texto usando filtros...38

3.6. Laboratório...46

3.7. Exercícios...48

4. Streams, pipes e redirecionamentos...50

4.1. Redirecionamentos...50 4.1.1. Redirecionando a Saída...50 4.1.2. Redirecionando a Entrada...51 4.2. Pipes...51 4.3. Laboratório...54 4.4. Exercícios...55

5. Criação, Monitoramento e finalização de processos... 56

5.1. Modificação da prioridade de execução de processos...59

5.2. Laboratório...61

5.3. Exercícios...62

6. Busca em arquivos texto com expressões regulares... 63

6.1. Laboratório...66

6.2. Exercícios...67

7. Edição de arquivos com o VI...68

7.1. Laboratório...71

7.2. Exercícios...73

8. Manipulação de disco...74

8.1. Criação de partições e sistemas de arquivos...74

8.2. Arquivo /etc/fstab...78 8.3. Laboratório...80 8.4. Exercícios...81 5 5 5 6 7 14 15 18 20 21 21 21 23 23 26 29 30 33 33 33 34 35 37 38 43 45 53 55 58 58 58 59 59 62 63 64 67 70 71 72 75 76 77 80 83 84 84 88 90 91

(3)

9.1. Criação e alteração de links físicos e simbólicos...82

9.2. Laboratório...84

9.3. Exercícios...85

10. Inicialização do Sistema...86

10.1. Instalação e configuração do Gestor de Início...87

10.1.1. Configuração do LILO...87 10.1.2. Configuração do GRUB...88 10.2. Laboratório...90 10.3. Exercícios...91 11. Manuais e Documentação...92 11.1. Laboratório...94 11.2. Exercícios...95

12. Administração de usuários e grupos...96

12.1. Arquivo /etc/passwd...97 12.2. Arquivo /etc/shadow...98 12.3. Arquivo /etc/group...100 13. Permissões...103 13.1. Permissões especiais...104 13.2. Laboratório...107 13.3. Exercícios...108 14. ACL Posix...110 14.1. Configurando ACLs...111

14.2. Comandos chattr e lsattr...113

14.4. Laboratório...116 14.5. Exercícios...119 15. Localização de Arquivos...120 15.1. Laboratório ...121 15.2. Exercícios...122 16. Shell Scripts...123

16.1. Personalizando e trabalhando no ambiente shell...123

16.1.1. Alterando Variáveis...123 16.1.2. Funções...124 16.2. Configuração do Bash...124 16.3. Programando no Linux...125 16.3.1. Um Script simples...125 16.3.2. Comentários ...126 16.3.3. Variáveis especiais...126

16.3.4. Leitura de teclado e variáveis...126

16.3.5. Estruturas de Decisão if then else...127

16.3.6. Comando exit...128 16.3.7. Operadores de comparação...128 16.3.8. Instrução case...130 16.3.9. Instruções de repetição...131 16.4. Laboratório ...133 16.5. Exercícios...134

17. Compactadores, Empacotadores e Backup...135

17.1. Compactadores de Arquivos...135 17.2. Empacotamento...135 17.3. Backup...137 17.4. Laboratório...140 92 95 96 97 98 98 99 101 102 103 105 106 107 108 110 112 115 116 119 121 123 124 126 129 132 134 135 136 137 137 137 138 138 139 139 140 140 140 141 142 142 144 145 148 149 150 150 150 152 155

(4)

17.5. Exercícios...141

18. Gerenciamento de Pacotes...142

18.1. Gerenciamento de pacotes redhat...142

18.1.1. Instalando um pacote RPM...142 18.1.2. Atualizando um pacote RPM...143 18.1.3. Desinstalando um pacote RPM...144 18.1.4. Consultando um pacote RPM...144 18.1.5. Extraindo dados de RPMs...145 18.1.6. Usando YUM...146 18.1.7. Configurando o YUM...147

18.1.8. Criação de um arquivo .repo...147

18.1.9. Assinaturas de pacotes...148

18.2. Gerenciamento de pacotes Debian...148

18.2.1. DPKG (Debian Package)...148

18.2.2. APT (Advanced Package Tool)...149

18.3. Compilação de programas...150

18.4. Gerenciamento de Bibliotecas Compartilhadas... 152

18.4.1. Localizando as Bibliotecas...152

18.5. Laboratório...155

18.6. Exercícios...157

19. Tarefas agendadas...158

19.1. Criando cron jobs de sistema...158

19.2. Criando cron jobs de usuário...160

19.3. Anacron...160

19.4. Laboratório...163

19.5. Exercícios...164

20. Gerenciamento de logs...165

20.1. Formato de /etc/syslog.conf...165

20.2. Registrando logs manualmente...167

20.3. Laboratório...169

20.4. Exercícios...170

21. Kernel...171

22.1. Compilação do Kernel...172

22.2. Configuração do novo Kernel no LILO...174

22.3. Configuração do novo Kernel no GRUB...174

22.4. Atualizando o Kernel...175

22.5. Recompilando Kernel em distribuições RPM...175

22.6. Laboratório...176 22.7. Exercícios...178 156 158 158 158 159 160 160 161 162 163 163 164 164 164 165 166 168 168 172 174 175 175 177 177 181 182 183 183 185 186 187 188 190 192 192 193 193 194 196

(5)

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

1. INTRODUÇÃO

1.1. O

QUEÉ

L

INUX

Linux é ao mesmo tempo um kernel (ou núcleo) e o sistema operacional que

roda sobre ele, dependendo do contexto em que você encontrar a referência. O kernel

Linux foi criado em 1991 por Linus Torvalds, então um estudante finlandês, e hoje é

mantido por uma comunidade mundial de desenvolvedores (que inclui programadores

individuais e empresas como a IBM, a HP e a Hitachi), coordenada pelo mesmo

Linus, agora um desenvolvedor reconhecido mundialmente e mais representativo

integrante da Linux Foundation.

1.2. D

ISTRIBUIÇÕES

Uma distribuição (ou simplesmente distro) é composta do kernel linux e um

conjunto variável de softwares, dependendo de seus propósitos. Essa coleção de

software livre (kernel) e não-livre (conjunto de softwares), é criada e mantida por

indivíduos, grupos e organizações de todo o mundo, incluindo o grupo Linux.

Indivíduos como Patrick Volkerding, companhias como a Red Hat, a SuSE, a

Mandriva e a Canonical, bem como projetos de comunidades como o Debian ou o

Gentoo, compilam softwares e fornecem a usuários diversos sistemas completos,

prontos para instalação e uso.

As distribuições do Linux começaram a receber uma popularidade limitada

desde a segunda metade dos anos 90, como uma alternativa livre para os sistemas

operacionais Microsoft Windows e Mac OS, principalmente por parte de pessoas

acostumadas com o Unix nas universidades e no trabalho. O sistema tornou-se

popular no mercado de Desktops e servidores, principalmente para a Web e

servidores de bancos de dados.

De entre as maiores, podem-se citar: Debian, Slackware, Suse, Mandriva,

Fedora e RHEL (essas duas últimas da Red Hat). A maior diferença é a organização e

pré-configuração de softwares. A distribuição Red Hat Enterprise Linux (RHEL) é a

distribuição corporativa mais utilizada no mundo. A Conectiva Linux tinha as suas

aplicações traduzidas em português, o que facilitou que usuários que falam a língua

portuguesa tenham aderido melhor a esta distribuição. Hoje esta distribuição foi

incorporada à Mandrake, o que resultou na Mandriva.

(6)

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores. Principais Distribuições

Distribuição Site Origem Descrição

Slackware slackware.com EUA Distribuição base. É a mais antiga em atividade ecaracteriza-se pela sua estabilidade. Slax slax.org RepúblicaTcheca Baseada no Slackware e é um Live Cd (cd de boot), maspode ser executada em pendrive. Debian debian.org Global Distribuição base. Sua proposta é ser formada somentepor softwares livres. Ubuntu ubuntu.com Ilha de Man(Inglaterra) Baseada no Debian e se propõe a ser uma distribuiçãode fácil manuseio. Reconhece muitos disposiivos. RHEL redhat.com EUA Red Hat Enterprise Linux. Distribuição base. É a distrode maior uso corporativo. CentOS centos.org Global Baseada no Red Hat Enterprise. É praticamente amesma, mas preparada para a livre distribuição. Fedora fedoraproject.org EUA É um projeto opensource da Red Hat.

Suse novell.com/linux Alemanha Baseada inicialmente no Red Hat, mas hoje possui suaprópria estrutura e é comercializada no meio corporativo.

openSuse opensuse.org Alemanha É um projeto opensource da Suse.

D I C A

Maiores informações podem ser obtidas nos sites oficiais de cada distribuição e no www.distrowatch.com (em inglês).

1.3. S

ISTEMAS DE

A

RQUIVOS

Um sistema de arquivos é um conjunto de estruturas lógicas e de

rotinas, que permitem ao sistema operacional controlar o acesso ao

disco rígido. Diferentes sistemas operacionais usam diferentes sistemas

de arquivos. Conforme cresce a capacidade dos discos e aumenta o

volume de arquivos e acessos, esta tarefa torna-se mais e mais

complicada, exigindo o uso de sistemas de arquivos cada vez mais complexos e

robustos. Existem diversos sistemas de arquivos diferentes, que vão desde sistemas

simples como o FAT16, que utilizamos em cartões de memória, até sistemas como o

NTFS, EXT3 e ReiserFS, que incorporam recursos muito mais avançados.

No mundo Windows, temos apenas três sistemas de arquivos: FAT16, FAT32

e NTFS. O FAT16 é o mais antigo, usado desde os tempos do MS-DOS, enquanto o

(7)

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

NTFS é o mais complexo e atual. Apesar disso, temos uma variedade muito grande

de sistemas de arquivos diferentes no Linux (e outros sistemas Unix), que incluem o

EXT2, EXT3, EXT4, ReiserFS, XFS, JFS e muitos outros. Para quem usa apenas o

Windows, estes sistemas podem parecer exóticos, mas eles são velhos conhecidos de

quem trabalha com servidores, já que neles o Linux é que é o sistema mais popular.

No linux os utilitários mais usados para manipular sistemas de arquivos são

fdisk, mkfs e mkswap, que serão vistos mais a posteriormente ainda neste documento.

1.4. I

NSTALAÇÃO DO

L

INUX

A instalação do CentOS Linux pode ser feita de diversas formas, tais como

CD, DVD, Pendrive, o próprio disco rígido ou por Rede (network installation), neste

caso, utilizando diversos protocolos, tais como NFS, FTP ou HTTP.

Para utilizar a instalação via Rede, será necessário alterar a sequência de boot

na inicialização do computador para que o boot seja feito através de uma mídia que

suporte a esse tipo de instalação, além do mais o dispositivo de rede também deverá

suportá-lo.

A instalação que será demonstrada neste material é a por DVD da

distribuição. No entanto, é importante preparar o disco rígido com as partições

necessárias, normalmente o instalador traz um aplicativo chamado DiskDruid que

cria as partições o disco. Na Figura 1, será solicitado o tipo da instalação: Gráfica

(padrão) e Texto. Vamos pressionar ENTER para prosseguir com a instalação padrão.

Caso seja necessário instalar em modo texto, basta digitar linux text à frente da

palavra boot.

(8)

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores. Figura 1: A instalação pode ser em modo gráfico ou texto

Em seguida será apresentada a tela de Teste da Mídia, caso tenha certeza da

integridade da mesma é melhor escolher a opção SKIP.

Pressionar NEXT na tela seguinte. A Figura 2 é a escolha do idioma da

instalação do sistema. Escolheremos ENGLISH (preferencialmente).

Figura 2: Seleção do idioma da instalação

Na próxima é a escolha do Layout do Teclado. Normalmente escolhemos

BRAZILIAN ABNT2. Caso apareça a mensagem abaixo após a escolha do layout de

(9)

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores. Figura 3: Seleção da opção para criação de partições

É melhor escolher YES para que o aplicativo permita a manipulação das

partições do disco.

A criação das permissões pode ser feita de forma predefinida ou

personalizada. Na nossa instalação, escolheremos Create custom layout, como está

na figura abaixo.

Figura 4: Definição do layout do disco

A recomendação é criar um esquema de particionamento baseado em LVM

(Logical Volume Manager) como o sugerido abaixo:

(10)

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

(11)

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

Layout de Partições

Partições

LVM

Tamanho

/boot

não

256 MB

swap

sim

(ou 2x memória principal)

256 MB

/tmp

sim

256 MB

/home

sim

256 MB

/

sim

2 GB

Após a seleção do layout clique NEXT para a instalação do gerenciador de

boot (GRUB). Em seguida lhe será solicitada a configuração de rede (Figuras 5 e 6),

onde deverá ser feita a seguinte configuração:

(12)

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores. Figura 6: Depois da configuração de IP e máscara das interfaces

A configuração do Fuso Horário deverá ser a da região onde o servidor está,

ou seja, no nosso caso, America/Sao Paulo (deixar marcado a opção System Clock

uses UTC), e em seguida, escolher a senha do super usuário (root).

Agora é a hora de escolher os pacotes a serem instalados no sistema.

Primeiramente, escolha o perfil de instalação Server, depois para personalizar os

pacotes, escolher Customize now (Figuras 7 e 8).

(13)

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores. Figura 8-1: Desmarcar todos os servidores da opção Servers

Figura 8-2: Em Base System, desmarcar Dialup Networking Support

As próximas telas são as de instalação do sistemas propriamente dita. Após o

processo de cópia dos pacotes, clique em REBOOT para reinicializar o computador e

finalizar a instalação com as configurações abaixo:

• Em Firewall Configuration:

Firewall: Disabled

(14)

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

• Em System Services, desabilitar serviços desnecessários no boot:

auditd, bluetooth, firstboot, gpm, haldaemon, hidd, ip6tables, iscsi, iscsid,

kudzu, mcstrans, mdmonitor, messagebus, microcode_ctl, netfs, pcscd,

readahead_early, restorecond, rpcgssd e sendmail.

Caso só apareceça a tela de logon, e não, as opções descritas acima, basta logar

no sistema com o usuário root e digitar o comando setup para que essas

configurações apareçam.

Pronto, agora basta reiniciar o sistema com o comando reboot para começar a

usá-lo.

1.5. V

IRTUAL

C

ONSOLE

É uma combinação conceitual de teclado e tela para uma interface de usuário

no computador. É uma característica marcante de sistemas operacionais Unix/Linux,

em que o console do sistema do computador pode ser usado para alternar entre

múltiplos consoles virtuais. No Linux, os primeiros 6 (seis) consoles virtuais

fornecem um terminal de texto com um aviso de login para um shell. O X Window

System começa no sétimo console virtual. Para alternar entre eles é necessário fazer

uma combinação de teclas Alt e uma tecla de função.

(15)

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores. Virtual Console

Combinação de Teclas Descrição

Alt + F1 Acessa o console virtual 1 (tty1). Alt + F2 Acessa o console virtual 2 (tty2). Alt + ← (seta esquerda) Volta para console anterior. Alt + → (seta direita) Vai para o console posterior

Ctrl + Alt + teclas de função De F7 em diante alterna entre os consoles virtuais gráficos.

startx Inicia interfaces gráficas quando se está em um console virtual de texto. startx -- :2 Invoca um segundo console virtual gráfico, e assim por diante.

Com a popularização do servidor X e dos ambientes gráficos, surgiram os

emuladores de console virtual, tais como gnome-terminal (no ambiente gráfico

gnome) ou konsole (no KDE), que disponibilizam vários terminais numa mesma

janela.

1.6. D

ESLIGAMENTO

/R

EINICIALIZAÇÃO

Existem várias formas de se desligar o sistema através do console (todas

como usuário super usuário).

Comando Descrição

poweroff

Ambos são utilizados para desligar o sistema. Os dois primeiros também desligam a fonte atx em sistemas RHEL, somente o halt que não. Uma particularidade do shutdown é o envio de mensagens aos usuários. shutdown -h now

init 0 halt

shutdown -h 30 “Mensagem” Desliga o sistema em 30 minutos e envia a mensagem entre aspas duplaspara todos usuários. shutdown -c Cancela algum comando shutdown que estiver sendo executado.

Para reiniciar o sistema também existem várias formas (também como usuário

super usuário):

(16)

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

(17)

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

Comando Descrição

reboot

Ambos são utilizados para reiniciar o sistema. shutdown -r now

init 6

<CTRL> + <ALT> + <DEL>

(18)

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

1.7. L

ABORATÓRIO

Este laboratório consiste em fazer a instalação do Linux na estrutura LVM (Logical

Volume Management) em uma máquina virtual previamente preparada. Os discos rígidos dessa

máquina virtual deverão ser SATA e/ou SCSI.

Para isso, você irá apoiar-se no tópico 1.6 deste capítulo (Instalação do Linux), mudando

apenas o layout do disco rígido.

1) Na tela tipo de instalação pressione ENTER para iniciar a instalação em modo gráfico,

pois o modo texto não comporta LVM.

2) Teste de mídia de instalação (DVD): SKIP.

3) Escolha do Idioma: ENGLISH.

4) Layout do teclado: Brazilian ABNT2

5) Número de Instalação: Skip entering Installation Number

6) Layout do disco rígido: Create a Custom Layout

Para a instalação criaremos uma partição primária com 100MB para o

ponto de montagem /boot – com sistema de arquivos ext3 – que ficará fora

do LVM.

O restante do disco será onde criaremos a estrutura do LVM. Dentro dele

criaremos quatro volumes lógicos que representarão o Swap com 512MB (ou

pelo menos o mesmo tamanho da RAM), /home com 2GB, o raiz ( / ) com

6GB e 1GB livre para experimentos futuros.

D I C A

Tanto o grupo de volumes quanto os próprios volumes lógicos possuem nomes, normalmente o usuário criar a sua própria nomenclatura. Como sugestão, o grupo se chamará vg1 e os volumes lógicos lvswap e lvraiz, respectivamente.

7) Configuração de Rede: Fornecida pelo instrutor

8) Fuso horário: America/Sao Paulo (Desmarcar UTC)

9) Senha de root: Fornecida pelo instrutor

10) Personalização dos Pacotes: Personalizar agora

A escolha dos pacotes vai depender do instrutor, então aguarde as instruções dele e as

anote, pois é comum realizar mais instalações ao longo do curso.

(19)

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os mesmos valores.

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

11) Finalizar a instalação: Escolha as opções abaixo

a) Contrato de licença (aceite para prosseguir);

b) Firewall (desabilitar);

c) SELinux (desabilitar ou escolher permissivo);

d) Kdump (não precisa habilitar);

e) Data e hora;

f) Atualizações (necessita de subscrição, então pule essa parte)

g) Criação de um usuário comum (opcional)

(20)

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

1.8. E

XERCÍCIOS

Quais são as principais diferenças entre softwares proprietário e livre?

• Relacione as principais vantagens e desvantagens dos tipos de licenciamento?

• Em um cenário pessoal escolha qual tipo de licenciamento que mais lhe agrada e justifique.

• Qual o tipo de licenciamento mais conveniente no âmbito acadêmico, por quê?

• Dentre as distribuições mais conhecidas, quais são as mais indicadas respectivamente para

uso doméstico e corporativo?

• Quais são os métodos de instalação normalmente suportados nas principais distribuições

Linux?

• O que significa MBR e qual a sua importância para o sistema operacional?

• Relacione as características principais de pelo menos cinco tipos de sistemas de arquivos.

• Qual o significado da sigla FHS e o que ele representa para no mundo Unix?

• Os pontos de montagem

/dev

,

/tmp

e

/proc

possuem qual função? Desses três qual o único

que pode estar em partição diferente da raiz?

• Quantas consoles são de texto e quantas são gráficas? Como é feita a alternância entre elas?

• Descreva a funcionalidade do comando

startx -- :3

?

• Como se desliga e se reinicia um sistema Linux exibindo mensagens de aviso? Quem vê

essas mensagens?

(21)

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

2. ARQUITETURA DE SISTEMA

2.1. A

LTERAÇÃO DE RUNLEVELS

Os runlevels são níveis ou formas de inicialização do sistema.

Cada nível de execução possui diretórios específicos que contêm

scripts de inicialização. Cada nível de execução é identificado por

um números que vão de zero (0) a 6 (seis).

Níveis de execução (distros baseadas no Red Hat)

Nível Descrição

0 Desliga o sistema (nunca definir como initdefault)

1 Mono-usuário

2 Multi-usuário sem acesso a rede

3 Multi-usuário com acesso a rede

4 Não é utilizado

5 Modo gráfico

6 Reinicia o sistema

Os níveis de 2 a 5 diferem entre as distribuições, por exemplo, no Debian o

nível 2 por padrão é usuário com suporte a rede e no Red Hat o nível 2 é

multi-usuário sem suporte a rede. Para saber o nível de execução atual, basta utilizar o

comando runlevel.

O processo init é o primeiro processo a ser iniciado, para vê-lo basta executar

o comando ps aux | grep init. Esse comando filtra apenas os processos que contém a

palavra init em seu nome. O seu identificador de processo (PID) é o 1. Ele não pode

ser finalizado através do kill, então os comandos kill -9 1 e kill -15 1 não surtirão

nenhum efeito.

2.2. C

OMUNICANDOCOM O PROCESSO

INIT

É possível comunicar com o processo init através do comando init ou pelo seu link

/sbin/telinit.

(22)

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

(23)

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

INIT – Muda o nível de execução atual aplicando imediatamente seus efeitos. Essa mudança não é

definitiva.

Sintaxe: init nivel_execucao

O comando telinit, por ser um link, funciona de forma igual. O comando runlvel exibe o runlevel

atual.

Exemplos Comando Descrição

init 5 Muda o runlevel atual para 5 (modo gráfico). telinit 3 Muda o runlevel atual para 3 (modo texto).

runlevel Mostra o runlevel atual. Caso tenho feito outras alterações, elas também serão mostradas.

2.3. O

UTRASFUNÇÕES DO

INIT

O processo init é o único processo capaz de realizar outras tarefas além da inicialização do

sistema, como o monitoramento e o desligamento automático do sistema.

Monitoramento do sistema – se processos marcados como sempre vivos

morrerem, o init tem a responsabilidade de executá-los novamente caso eles sejam

exigidos. Um bom exemplo de processo que não pode morrer são os terminais,

pois eles dão acesso ao sistema.

Desligamento automático – quando ocorre uma queda de energia muito prolongada os

no-breaks mandam um sinal SIGPWR (30) ao processo init comunicando que a sua carga de energia é

baixa, fazendo assim com que ele desligue corretamente a máquina. Caso a energia volte antes que

a máquina seja desligada, o no-break manda essa informação ao init que aborta o processo de

desligamento enviando o sinal -c do comando shutdown fazendo assim com

que qualquer outro comando de desligamento anterior seja cancelado.

2.4. A

RQUIVO

/

ETC

/

INITTAB

A composição desse arquivo está organizada em quatro campos separados por dois pontos

(:).

(24)

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

identificacao – representa a identificação da linha. O ideal é usar duas letras para manter

compatibilidade. Nas versões mais recentes pode-se utilizar ate 4 caracteres. Esse valor é totalmente

arbitrário, podendo ser escolhido qualquer combinação de caracteres, desde que seja único.

nivel_de_execucao – informa o nível de execução do processo. Caso este campo esteja

vazio, o processo executado em todos os níveis; se for S indica que deve ser executado somente no

nível monousuário.

acao – indica o tipo de ação que será executada para aquela identificação. As mais

utilizadas são:

Ação Descrição

respawn O respawn faz com que o init re-execute o processo caso ele seja morto. wait O init aguarda por uma decisão anterior para prosseguir

once O processo será executado apenas uma vez, na inicialização do nível. initdefault Indica o nível que deve ser inicializado por padrão

sysinit Indica o script de inicialização geral do sistema (/etc/rc.d/rc.sysinit)

powerfail O processo será executado quando o init receber o sinal SIGPWR (30), falha de energia. powerokwait Indicador de restabelecimento de energia (é chamado somente após um powerfail) ctrlaltdel Indica o processo ou comando que será executado após pressionar as teclas ctrl+alt+del

processo – indica o processo ou comando a ser executado.

D

I C A

Saber o que significa cada parte do arquivo /etc/inittab é certamente um conhecimento importante para se fazer um exame LPCI.

Segue abaixo o conteúdo comentado do arquivo /etc/inittab:

# Default runlevel. (Do not set to 0 or 6)

Seleciona o tipo do nível que deve ser executado por padrão (initdefault)

id:3:initdefault:

# System initialization (runs when system boots)

Indica que o script rc.S deve ser executado. Este será sempre executado e somente uma vez

(sysinit), e apenas na inicialização, pois possui informações gerais que devem ser carregadas para

qualquer nível de execução.

(25)

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

# Script to run when going single user (runlevel 1)

Script utilizando quando o lilo envia o sinal de inicialização no modo monousuário. Este script

solicita a senha do usuário durante o processo de inicialização. Torna-se uma medida de segurança

contra ataques de força bruta.

su:1S:wait:/etc/rc.d/rc.K

# Script to run when going multi user

Script utilizado para inicializar os runlevels 2, 3, 4 e 5.

rc:2345:wait:/etc/rc.d/rc.M

# What to do at the "Three Finger Salute"

Esta ação é definida para informar qual comando é executado quando as teclas CTRL+ALT+DEL

são acionadas.

ca::ctrlaltdel:/sbin/shutdown -t5 -r now

Substituindo a linha abaixo, teremos outra mensagem:

ca : : ctrlaltdel : echo "nao e possivel reiniciar desta forma digite reboot"

# Runlevel 0 halts the system

Script que é executado quando o nível 0 é solicitado. Neste nível o sistema operacional é desligado.

l0:0:wait:/etc/rc.d/rc.0

# Runlevel 6 reboots the system

Script que é executado quando o nível 6 é solicitado. Neste nível o sistema operacional é

reiniciado.

l6:6:wait:/etc/rc.d/rc.6

# What to do when power fails

Quando o init recebe um sinal SIGPWR (30) de um processo que monitora uma interface serial

ligada do computador a um no-break denominado UPS (Uninterrupted Power Supply – Suprimento

Ininterrupito de Energia) ele executa o comando shutdown.

pf::powerfail:/sbin/genpowerfail start

# If power is back, cancel the running shutdown

Caso a energia seja reestabelecida o init recebe um sinal SIGPWR alertando que há um arquivo

chamado /etc/powerstatus contendo a palavra OK. Isso significa que a energia elétrica voltou. Então

(26)

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

o shutdown anterior deve ser cancelado.

pg::powerokwait:/sbin/genpowerfail stop

# caso a energia seja reestabelecida o init recebe um sinal SIGPWR alertando que há um arquivo

chamado /etc/powerstatus contendo a palavra OK. Isso significa que a energia elétrica voltou. Então

o shutdown anterior deve ser cancelado.

pr:12345:powerokwait:/sbin/shutdown -c "Energia reestabelecida; Shutdown Cancelado!"

# These are the standard console login getties in multiuser mode

Indica o número de consoles texto e gráfico por padrão. As linhas que estão habilitadas indicam o

número de console texto e as linhas comentadas (#) ou que não existem indicam as consoles

gráficas.

c1:1235:respawn:/sbin/agetty 38400 tty1 linux c2:1235:respawn:/sbin/agetty 38400 tty2 linux c3:1235:respawn:/sbin/agetty 38400 tty3 linux c4:1235:respawn:/sbin/agetty 38400 tty4 linux c5:1235:respawn:/sbin/agetty 38400 tty5 linux c6:12345:respawn:/sbin/agetty 38400 tty6 linux

# Esta linha é executada somente quando o nível de execução é o 4. A execução desta linha faz com

que o gerenciador de login do modo gráfico seja carregado. Dentro do arquivo prefdm. Existem 3

gerenciadores de login, o kdm do kde; o gdm do gnome e o xdm da Xfree86.

x1:4:wait:/etc/rc.d/rc.4

Após a modificação do arquivo /etc/inittab deve-se executar o comando init q para efetuar

a releitura do arquivo, isso evita reiniciar a máquina.

2.5. O

DIRETÓRIO/ETC/RC.D/

Conhecendo os níveis de inicialização do sistema, é importante saber o que cada

um deles fazem, ou seja, que tipo de serviços eles vão chamar e qual momento de

fazê-los. Cada nível de execução possui um diretório com seus arquivos para

inicialização, sendo o diretório /etc/rc.d/rc0.d/ para o nível 0, o diretório

/etc/rc.d/rc1.d/ para o nível 1; /etc/rc.d/rc2.d/ para o 2 e assim por diante até o nível 6. A sua

chamada é feita a partir do script /etc/rc.d/rc.S que é executado pelo processo INIT.

Liste o conteúdo do diretório /etc/rc.d/rc3.d/ por exemplo. Observe que existem vários

arquivos e estes começam com a letra K ou com a letra S para indidar se o processo deve ser parado

(kill) ou iniciado (start), respectivamente. Observe também, que após uma dessas letras possue um

número que varia de 00 até 99 que determina a prioridade de execução dos arquivos contidos neste

(27)

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

(28)

Carro carro1 = new Carro(); carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

diretório.

Para estes serviços podem ser utilizadas as ferramentas ntsysv e chkconfig nas

distribuições baseadas em RedHat.

D I C A

O diretório de cada nível de execução pode variar de distribuição para distribuição. O exemplo acima retrata o diretório das distribuições baseadas em Red Hat.

(29)

carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização

//criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver).

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

2.6. L

ABORATÓRIO

Este laboratório tem o objetivo de realizar uma configuração do arquivo

/etc/inittab

para inicialização em modo texto.

Passo 1) Abrir um terminal de comandos e, como root, editar o arquivo com a

seguinte linha:

vi /etc/inittab

Passo 2) Localizar dentro desse arquivo a opção initdefault e mudar o seu id

para 3, como mostrado abaixo:

id:3:initdefault:

Passo 3) Agora é só salvar o arquivo e atualizar o processo

init

com o comando:

init q

Também funciona se a máquina for reinicializada com

reboot

.

D I C A

Essa maneira é baseada em distribuições Red Hat. No Debian basta executar, também como root, o comando:

update-rc.d -f gdm remove (Gnome) ou

Referências

Documentos relacionados

▪ Variáveis de instância // Definem a Estrutura para guardar o Estado das instâncias (dados). ▪ Métodos de instância // Definem o Comportamento das

Nesse sentido, este artigo fará uma análise sobre os efeitos da pandemia do novo coronavírus no campo da educação, articulada a duas questões centrais: os modos de vida baseados

- Cuando el consumidor supere el límite de peso estipulado para cada uno de los productos, tal como se especifica en el Manual de Instalación. - The consumer exceeds the

• Para a realização de obras em planos horizontais ou verticais ou obras com uma inclinação em uma ou duas direções • Desempenho em obras com visível laser vermelho (NL400)

- a administração de Alfuzosina Mylan ao mesmo tempo de medicamentos utilizados para tratar a hipertensão arterial, nitratos utilizados para tratar doenças cardíacas como dor

O objeto oCliente é uma instância da classe

Ao nível de protecção social os dados disponibilizados pela segurança social não espelham a realidade da nova freguesia porque se referem ao antigo território contudo,

Comitê Externo de Avaliação dos seguintes Projetos de Pesquisa e Extensão, nas áreas de Tecnologia e Produção/Ciências Agrárias/Trabalho/Ciências da Sáude :``Estudo da geração