Linux System
Administration
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...182.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
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
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
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
INUXLinux é 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ÇÕESUma 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.
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 DEA
RQUIVOSUm 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
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 DOL
INUXA 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.
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
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:
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
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:
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).
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
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
IRTUALC
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.
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ÇÃOExistem 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):
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
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>
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ÓRIOEste 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.
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)
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,
/tmpe
/procpossuem 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?
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 RUNLEVELSOs 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 PROCESSOINIT
É possível comunicar com o processo init através do comando init ou pelo seu link
/sbin/telinit.
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
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 DOINIT
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/
INITTABA composição desse arquivo está organizada em quatro campos separados por dois pontos
(:).
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.
DI 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.
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
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
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
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.
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ÓRIOEste laboratório tem o objetivo de realizar uma configuração do arquivo
/etc/inittabpara 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
initcom o comando:
init qTambé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