Buscar

Aula02 Unip Sistema Operacional

Prévia do material em texto

Sistemas Operacionas 
Prof. Osvaldo Viana Jr, Msc. 
osvaldoviana@yahoo.com.br 
Aula 2 
Introdução ao Linux: 
Inicialização e Desligamento 
Introdução 
 Linux 
 É um sistema operacional complexo; 
 Ligar e desligar sistemas Linux é mais 
complicado do que abaixar a chave geral; 
2 
Bootstrapping 
 Conceito 
 É o termo nerd equivalente a “inicializar um 
computador”; 
 Durante o bootstrapping, o kernel é carregado 
na memória e começa a ser executado; 
 No tempo de boot, erros em arquivos de 
configuração, sistemas de arquivo danificado, 
equipamentos faltantes ou não confiáveis 
podem impedir que um computador entre no 
ar; 
3 
Bootstrapping 
 Conceito 
 A configuração de boot é uma das mais difíceis 
e requer alguma familiaridade com muitos 
outros aspectos do Linux; 
 Quando um computador é ligado, ele executa o 
código de boot que se encontra armazenado em 
ROM. Esse código tenta descobrir como 
carregar e iniciar o seu kernel; 
4 
Bootstrapping 
 Conceito 
5 
Bootstrapping 
 Etapas no processo de inicialização 
 Carga e inicialização do kernel; 
 Detecção e configuração de dispositivos; 
 Criação de processos de sistema espontâneos; 
 Intervenção do operador; 
 Execução dos scripts de inicialização do 
sistema; 
 Operação multiusuário; 
6 
Bootstrapping 
 Inicialização do Kernel 
 O kernel Linux é por si só um programa, e a 
primeira tarefa de bootstrapping é obter este 
programa na memória de forma que ele possa 
ser executado; 
 No primeiro estagio, a ROM do sistema 
carrega na memória um pequeno programa de 
boot proveniente do disco; 
7 
Bootstrapping 
 Inicialização do Kernel 
 O kernel efetua testes de memória para 
descobrir quanta memória RAM está 
disponivel; 
8 
Bootstrapping 
 Configuração de Hardware 
 Uma das primeiras tarefas do kernel é 
verificar o ambiente da máquina para ver que 
hardware está presente; 
 Ao construir um kernel para seu sistema, você 
o informa sobre que dispositivos de hardware 
ele deve esperar encontrar; 
 O kernel tenta localizar e inicializar cada 
dispositivo sobre os quais você o informou; 
9 
Bootstrapping 
 Configuração de Hardware 
10 
Bootstrapping 
 Processos de Sistema 
 Assim que tiver terminado a inicialização 
básica, o kernel cria vários processos 
“espontaneos” no espaço de usuário; 
 O número e a natureza de processos 
espontâneos varia de sistema para sistema; 
 Sob o Linux, não há nenhum PID 0 visivel; 
11 
Bootstrapping 
 Processos de Sistema 
 init é acompanhado por vários processos em 
memória e de manipulador de kernel, entre os 
quais kflushd, kupdate, kpiod e kswapd; 
 De todos esses, somente init é realmente um 
processo de usuário totalmente preparado; 
 Os demais são partes do kernel que foram 
arrumados para se parecerem com processos 
por razões de escalonamento ou de 
arquitetura; 
12 
Bootstrapping 
 Execução de scripts de inicialização 
 No momento em que o sistema estiver pronto 
para executar seus scripts de inicialização, ele 
é reconhecidamente Linux; 
 Os scripts de inicialização são simplesmente 
scripts shell comuns e são selecionados e 
executados por init de acordo com um 
algoritmo que é relativamente compreensível; 
13 
Bootstrapping 
 Operação multiusuário 
 Depois de os scripts de inicialização terem sido 
executados, o sistema estará totalmente 
operacional, exceto pelo fato de que ninguém 
estará apto a fazer o login; 
 Para os logins serem aceitos num determinado 
terminal, um processo getty tem de estar 
escutando-o, init gera diretamente estes 
processos getty, completando o processo de 
inicialização; 14 
Inicializando PCs 
 Conceito 
 Quando uma máquina é inicializada, ela 
começa executando código armazenado em 
ROMs; 
 A localização e a natureza exata desse código 
varia, dependendo do tipo de máquina; 
 Numa máquina para UNIX ou um outro S.O 
proprietário, o código está em firmware, ou 
seja, ele sabe como usar os dispositivos 
conectados à máquina; 
15 
Inicializando PCs 
 Conceito 
 Em PCs, o código de boot inicial é geralmente 
chamado de BIOS e é extremamente simplista 
quando comparado ao firmware de uma 
máquina proprietária; 
16 
Inicializando PCs 
 Processo de inicialização de um PC 
 A BIOS nos permitirá selecionar os 
dispositivos nos quais queremos tentar fazer o 
boot; 
 A partir do momento em que a máquina tiver 
descoberto em qual dispositivo fazer o boot, ela 
tentará carregar os primeiros 512 bytes do 
disco; 
17 
Inicializando PCs 
 Processo de inicialização de um PC 
 Esse segmento de 512 bytes é conhecido como 
MBR (registro mestre de boot); 
 O MBR contém um programa que diz ao 
computador em qual partição de disco ele deve 
carregar um programa de boot secundário; 
18 
Boot Loaders: Lilo e Grub 
 Lilo 
 Lilo é o boot loader tradicional do Linux; 
 O Lilo vem com quase todas as distribuições 
do Linux; 
19 
Boot Loaders: Lilo e Grub 
 Lilo 
 Pode ser instalado tanto no MBR do disco 
quanto no registro de boot da partição-raiz do 
Linux; 
 É configurado e instalado através do comando 
lilo. A configuração instalada pelo lilo toma 
como base o conteudo do arquivo 
/etc/lilo.conf; 
20 
Boot Loaders: Lilo e Grub 
 Lilo 
 O Lilo tem de ser reconfigurado toda vez que o 
processo de boot muda, em particular toda vez 
que quisermos acrescentar uma nova partição 
de boot e toda vez que tivermos um novo 
kernel para ser inicializado; 
21 
Boot Loaders: Lilo e Grub 
 Lilo 
 Um arquivo lilo.conf básico que tem um 
kernel de produção ou de backup: 
22 
Boot Loaders: Lilo e Grub 
 Lilo 
 O primeiro rótulo a aparecer em lilo.conf 
torna-se o padrão; 
 A situação-padrão inicializa o arquivo 
/vmlinuz; 
 A tag read-only especifica que o kernel deve 
montar o seu sistema de arquivos-raiz 
somente para leitura; 
23 
Boot Loaders: Lilo e Grub 
 Lilo 
 Os scripts de inicialização cuidarão da 
remontagem da partição para leitura e escrita 
no momento adequado; 
 Esse sistema também é configurado para 
inicializar um kernel de backup /vmlinuz-
backup; 
24 
Boot Loaders: Lilo e Grub 
 Lilo 
 Executar o comando lilo sem argumentos 
gerará e instalará o boot loader e lhe 
informará que entradas se encontram 
disponíveis; 
 Se você tivesse cometido um erro no arquivo 
lilo.conf, o comando lilo normalmente não 
conseguiria descobrir o problema até chegar à 
metade do processo de instalação do boot 
loader; 25 
Boot Loaders: Lilo e Grub 
 Lilo 
 Quando isso acontece, o boot loader fica num 
estado confuso, logo não reinicialize até ter 
completado o comando lilo; 
 Para evitar, você pode executar “lilo –t” para 
testar a configuração sem realmente instalá-
la; 
26 
Boot Loaders: Lilo e Grub 
 Grub 
 É um substituto completo do LILO; 
 É uma opção do mercado de reposição que 
pode ser acrescentada a qualquer sistema 
Linux; 
 É útil para quem muda a configuração do 
sistema com frequencia; 
27 
Boot Loaders: Lilo e Grub 
 Grub 
 O Grub lê seu arquivo de configuração durante 
o boot, eliminando uma etapa extra; 
 O comando grub-install usa como argumento 
o nome do dispositivo no qual se estará 
fazendo o boot; 
 O nome de um dispositivo GRUB é parecido 
com o “(hd0,0)”; 
28 
Boot Loaders: Lilo e Grub Grub 
 O primeiro valor numérico indica o número do 
drive físico e o segundo valor numérico 
representa o número da partição; 
 O (hd0,0) é equivalente ao dispositivo Linux 
/dev/hda1; 
 Caso queira instalar o GRUB em seu drive 
primário, você usaria o comando: 
 grub-install ‘(hd0,0)’ 
29 
Boot Loaders: Lilo e Grub 
 Grub 
 Por padrão, o GRUB lê sua configuração de 
inicialização padrão por meio de 
/boot/grub/grub.conf: 
 
default=0 
timeout=0 
splashimage=(hd0,0)/boot/grub/splash.xpm.gz 
Title Red Hat Linux (2.4.7-10) 
 root (hd0,0) 
 kernel /boot/vmlinuz-2.4.7-10 ro root=/dev/hda1 
30 
Boot Loaders: Lilo e Grub 
 Fazendo boot múltiplo em PCs 
 Precisa-se configurar um boot loader para 
reconhecer todos os sistemas operacionais 
distintos presentes nos discos; 
 Cada partição de disco tem seu próprio boot 
loader de segundo estagio; 
 Há somente um MBR, logo temos que decidir 
qual boot loader irá se tornar o “mestre”; 
 
 31 
Boot Loaders: Lilo e Grub 
 Fazendo boot múltiplo em PCs 
 LILO e GRUB são as melhores opções para um 
sistema que tenha uma partição Linux; 
 
32 
Boot Loaders: Lilo e Grub 
 Fazendo boot múltiplo com o LILO 
 Comece com a configuração padrão LILO 
conforme descrito anteriormente; 
 Depois você poderá retornar e adicionar 
entradas para os demais sistemas 
operacionais ao arquivo /etc/lilo.conf; 
 Entrada de lilo.conf, para boot do Windows: 
 other = /dev/hda1 
 label = windows 
 table = /dev/hda 
 
33 
Boot Loaders: Lilo e Grub 
 Fazendo boot múltiplo com o LILO 
 Um arquivo lilo.conf que faça o boot do 
Windows na partição 1, do Linux na partição 2 
e do FreeBSD na partição 3 ficaria parecido: 
 
34 
Boot Loaders: Lilo e Grub 
 Fazendo boot múltiplo com o LILO 
 Um arquivo lilo.conf que faça o boot do 
Windows na partição 1, do Linux na partição 2 
e do FreeBSD na partição 3 ficaria parecido: 
 
35 
Inicializando em Modo 
Monousuario 
 Definição 
 Normalmente você entrará no modo 
monousuário do Linux através do LILO; 
 Se estiver usando hardware PC padrão, 
poderá chegar ao prompt LILO selecionando a 
opção de “linha de comando” na tela de boot 
gráfica nos sistemas Red Hat e SuSE; 
 No Debian, deve-se manter a tecla shift 
pressionada imediatamente depois de o 
sistema ter finalizado; 36 
Inicializando em Modo 
Monousuario 
 Definição 
 O LILO aceita uma série de opções de linhas 
de comando no momento da inicialização: 
37 
Exercicios 
 1) O que você entende por bootstrapping ? 
 
 2) Qual a relação existente entre BIOS e boot ? 
 
 3) O que é lilo ? 
 
38 
Resposta: 
 1) O que você entende por bootstrapping ? 
R: É o termo nerd equivalente a “inicializar um computador”. 
Durante o bootstrapping, o kernel é carregado na memória e começa 
a ser executado. 
 2) Qual a relação existente entre BIOS e boot ? 
R: Em PCs, o código de boot inicial é geralmente chamado de BIOS 
e é extremamente simplista quando comparado ao firmware de uma 
máquina proprietária. A BIOS nos permitirá selecionar os 
dispositivos nos quais queremos tentar fazer o boot. 
 3) O que é lilo ? 
R: Lilo é o boot loader tradicional do Linux. O Lilo vem com quase 
todas as distribuições do Linux 
 
39 
Scripts de Inicialização 
 Definição 
 Após sair do modo monousuário, init executa 
os scripts de inicialização de sistema; 
 Estes scripts são realmente apenas scripts 
shell que são interpretados por sh; 
 A localização, a organização e o conteúdo 
exatos dos scripts variam consideravelmente 
de sistema para sistema; 
40 
Scripts de Inicialização 
 Algumas tarefas executadas nos scripts de 
inicialização: 
 Configurar o nome do computador; 
 Configurar a zona de horários; 
 Verificar os discos com fsck; 
 Montar os discos do sistema; 
 Eliminar arquivos antigos do diretório /tmp; 
 Configurar interfaces de rede; 
 
41 
Scripts de Inicialização 
 init e níveis de execução 
 init define sete níveis de execução 
 
42 
Scripts de Inicialização 
 init e níveis de execução 
 Os níveis 0 e 6 são especiais no sentido de que 
o sistema não pode realmente permanecer 
nestes níveis; 
 Na maioria dos sistemas, o nível de execução 
multiusuário normal é 2 ou 3; 
 O nível de execução 5 é usado para os 
processos de login X Windows como xdm; 
 
43 
Scripts de Inicialização 
 init e níveis de execução 
 O nível de execução 4 raramente é usado, e os 
níveis de execução 1 e S são definidos 
diferentemente em cada sistema; 
 Quando a máquina inicializa, init avança 
gradativamente do nível 0 para o nível de 
execução-padrão configurado em /etc/inittab; 
 
44 
Scripts de Inicialização 
 init e níveis de execução 
 Exemplo de um script de inicialização simples: 
 
45 
Reiniciando e Desligando 
 Definição 
 O buffer de sistemas de arquivos do Linux 
muda na memória e atualiza estas 
informações no disco somente 
esporadicamente; 
 Em sistemas operacionais voltados no mercado 
de consumo, reinicializar o sistema 
operacional é um primeiro tratamento 
apropriado para quase todos os problemas; 
46 
Reiniciando e Desligando 
 Definição 
 Os problemas no Linux tendem a ser mais 
sutis e mais complexos, portanto reinicializar 
cegamente é eficiente apenas numa pequena 
porcentagem de casos; 
 Talvez seja necessário reinicializarmos o 
sistema ao adicionarmos um dispositivo de 
hardware novo; 
 
47 
Reiniciando e Desligando 
 Definição 
 Se modificarmos um arquivo de configuração 
que é usado somente em tempo de boot, temos 
de reinicializar para que nossas alterações 
entrem em efeito; 
 Se o sistema estiver tão empacado a ponto de 
não conseguirmos fazer o login para 
realizarmos um diagnóstico apropriado do 
problema, obviamente temos que reinicializar 
o sistema; 
 
48 
Reiniciando e Desligando 
 Definição 
 Há uma série de maneiras para se desligar ou 
reinicializar o sistema: 
 
49 
Reiniciando e Desligando 
 Desligar a força elétrica 
 Há o risco de perdermos dados e deixarmos os 
arquivos de sistema num estado inconsistente; 
 Algumas máquinas possuem um “chave soft 
power” que significa que ao pressionarmos o 
botão power, a máquina executa alguns 
comandos para executar uma sequencia de 
desligamento apropriada; 
 
50 
Reiniciando e Desligando 
 Desligar a força elétrica 
 Caso não esteja seguro se sua máquina fornece 
esse recurso, não pressione o botão Power para 
descobrir isso. É melhor você mesmo proceder 
à sequencia de desligamento; 
 No caso de uma inundação ou incêndio, é 
aceitável desligar a força elétrica caso não 
tenha tempo suficiente para fazer toda a 
sequencia de desligamento; 
 
51 
Reiniciando e Desligando 
 Shutdown 
 É a maneira mais completa, segura e 
ponderada de iniciar o processo de parada ou 
de reinicialização ou de retornar ao modo 
monousuário; 
 Durante o período de espera, shutdown envia 
mensagens para usuários logados em 
intervalos progressivamente menores, 
alertando-os do downtime; 
 
52 
Reiniciando e Desligando 
 shutdown 
 Shutdown permite especificar se a máquina 
deve parar (-h) ou reinicializar (-r) após o 
processo de desligamento estar completado; 
 Podemos especificar se queremos forçar a 
execução do comando fsck nos discos após uma 
reinicialização(-F) ou não (-f); 
53 
Reiniciando e Desligando 
 shutdown 
 Um comando shutdown que lembre uma 
manutenção programada e pare o sistema às 
09:30: 
 
shutdown –h 09:30 “Desativando o sistema” 
54 
Reiniciando e Desligando 
 shutdown 
 Comando para realizar o desligamento 15 
minutos após sua execução:: 
 
shutdown –h +15 “Desativando o sistema” 
55 
Reiniciando e Desligando 
 halt 
 Realiza as tarefas essenciais necessárias para 
desligar o sistema; 
 É chamado por shutdown –h; 
 halt loga o desligamento, mata processos não 
essenciais, executa a chamada de sistema 
sync; 
 
56 
Reiniciando e Desligando 
 halt 
 halt -n impede a chamada de sync. É usado 
por fsck após reparar a partição-raiz; 
 Se fsck não usar –n, o kernel poderia 
sobregravar os reparos feitos pelo fsck com 
versões antigas do superbloco que foram 
lançadas na memória; 
 
57 
Reiniciando e Desligando 
 reboot 
 reboot é praticamente idêntico ao comando 
halt, porém ele faz com que a máquina seja 
reinicializada em vez de parar; 
 reboot é chamado por shutdown –r. Como 
halt, ele suporta o flag –n; 
 
58 
Reiniciando e Desligando 
 telinit 
 Podemos usar telinit para direcionar init para 
um determinado nível de execução. Por 
exemplo: 
 # telinit 1 
 
 Leva o sistema para o modo monousuário; 
 
59 
Reiniciando e Desligando 
 telinit 
 Ao usarmos telinit, não recebemos as 
mensagens de alerta amistosas que temos no 
caso de shutdown; 
 telinit é mais útil para testar mudanças feitas 
no arquivo inittab; 
 
60 
Reiniciando e Desligando 
 poweroff 
 É identico ao comando halt, exceto pelo fato de 
que após o Linux ter sido desativado, 
poweroff envia uma solicitação ao sistema de 
gerenciamento de energia para desligar a 
alimentação principal do sistema; 
 Este recursos facilita o desligamento de 
máquinas remotas, por exemplo durante uma 
tempestade com raios; 
61 
Exercicios 
 4) Cite 3 tarefas do script de inicialização ? 
 5) Quantos níveis de execução é definido pelo init ? 
 6) Em se tratando de desligar sistema operacional, em 
qual situação é aceitável desligar a força elétrica ? 
 7) Explique a diferença entre os comandos shutdown, halt 
e reboot ? 
62 
Respostas 
 4) Cite 3 tarefas do script de inicialização ? 
R: Configurar o nome do computador; Configurar a zona de horários; 
Verificar os discos com fsck; Montar os discos do sistema; Eliminar 
arquivos antigos do diretório /tmp; Configurar interfaces de rede. 
 5) Quantos níveis de execução é definido pelo init ? 
 R: 7 níveis. 
 6) Em se tratando de desligar sistema operacional, em 
qual situação é aceitável desligar a força elétrica ? 
 R: No caso de uma inundação ou incêndio, é aceitável desligar a força 
elétrica caso não tenha tempo suficiente para fazer toda a sequencia 
de desligamento. 
 
63 
Respostas 
 7) Explique a diferença entre os comandos shutdown, 
halt e reboot ? 
R: shutdown é a maneira mais completa, segura e ponderada de 
iniciar o processo de parada ou de reinicialização ou de retornar ao 
modo monousuário. Durante o período de espera, shutdown envia 
mensagens para usuários logados em intervalos progressivamente 
menores, alertando-os do downtime. 
halt realiza as tarefas essenciais necessárias para desligar o 
sistema. halt loga o desligamento, mata processos não essenciais, 
executa a chamada de sistema sync. 
reboot é praticamente idêntico ao comando halt, porém ele faz com 
que a máquina seja reinicializada em vez de parar. 
 
 
 
64 
Referencia Bibliografica 
 passeidireto.com 
o NEMETH, E. ; SNYDER, G. ; TRENT, R. H. 
Manual Completo do LINUX: Guia do 
Administrador. Pearson, 2004. 
65

Continue navegando