Baixe o app para aproveitar ainda mais
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
Compartilhar