Sistemas Operacionais
Teoria e prática
Iniciando Processos e o Sistema
Bootstrapping
• Linux é um sistema operacional complexo;
• A inicialização (bootstrapping) deve seguir
passos;
• Durante a inicialização o Kernel é carregado
para memória e inicia-se uma série de tarefas;
Para isso
• BIOS é executado;
• O Bootloader é executado (GRUB);
• O intird é carregado e executado;
• O Kernel é montado e inicializado por init;
BIOS
• Contem o software básico para validar os dispositivos e
carregar o sistema operacional.
• Reside na ROM (read only memory);
• Permite o carregamento de parâmetros usados para
inicialização
– Data e hora
– sequencia de inicialização de hardware
– sequencia de boots
– periféricos
– parâmetros para processador
– parâmetros para memoria.
BIOS
• Quando liga o computador a BIOS
passa por 4 processos
– Valida dados da CMOS, Checa as configurações
de Hardware;
– Teste físicos em dispositivos, como HD, memória e
Processador com o POST (power on self test)
– Ativa componentes instalados no computador, tal
como USB;
– E tudo OK, inicia o Bootloader do SO.
BIOS
MBR
• Criado em 1983
• Contem informações de partições do Disco
• Códigos de BOOT do sistema operacional
• Está no Cilindro 0, head 0 e setor 1
• Possui a posição de carregamento do
Bootloader.
GRUB Legacy
• O arquivo de configuração do menu está
localizado em "/boot/grub/menu.lst”
GRUB 2
• O arquivo de configuração do menu está
localizado em "/boot/grub/grub.cfg";
• É gerado automaticamente pelo
"/usr/sbin/update-grub" uetc/grub.d/*" e
definições de "/etc/default/grub";
• tilizando modelos de "/
Bootloader
• Carrega o Kernel em 2 estágio:
– Estágio 1: Inicialização do initrd
– Estágio 2: Inicialização do Kernel
Estágio 1
• O initrd (Initial RAM Disk) que está em /boot/ é
descompactado em /tmp;
• é montado como /tmpfs neste processo
carrega-se drivers e arquivos;
• monta o kernel;
• finaliza o initrd.
Estágio 2
• O sistema Debian normal é iniciado pelo initrd
Debian;
• O kernel do sistema para o initrd Debian
continua a correr no seu ambiente;
• O sistema de arquivos raiz é mudado daquele
em memória (/tmpfs) para o que está no
sistema de arquivos do disco rígido real (/).
Estágio 2
• O programa init é executado como o primeiro
programa com PID=1
• /sbin/init é um link simbólico para o arranque do
sistema que usa.
Systemd
init
• Debian antes de squeeze (6 February 2011) a
iniciação de estilo SysV simples (saiba mais
aqui);
• Debian wheezy (4 May 2013) melhora a
iniciação de estilo SysV ao ordenar a
sequência de arranque com cabeçalho LSB e
arrancando scripts de arranque em paralelo.
init
• Debian jessie (26 April 2015) muda o seu init
predefinido para o systemd para a inicialização
em paralelo e gerida por eventos.
init do Systemd
• O processo init do systemd carrega processos
em paralelo com base em arquivos de
configuração de unit
– /lib/systemd/system: Arquivos de configuração
predefinidos do SO
– /etc/systemd/system: Arquivos de configuração do
administrador do sistema
– /run/systemd/system: Arquivos de configuração
gerados em run-time.
Systemd
Systemd
runlevel
• Nível de execução;
• Controle que o sistema é executado;
• Níveis 0 ao 6;
• Cada runlevel roda alguns serviços;
• Configurado por arquivos de configuração.
Principais
• 0 - se eleva ele desliga o computador;
• 1 - Mono usuário para manutenção
• 2, 3, 4, 5 Multiusuários:
– 2 Debian Terminal;
– 3 Red Hat;
– 5 Ubuntu Gráfico.
• 6 está reiniciando o sistema.
Scripts em runlevel
init
• Quando os comandos init ou telinit vão para o
runlevel, o sistema basicamente executa os
scripts de inicialização;
• Os scripts cujos nomes começam com um "K" em
"/etc/rc<runlevel>.d/" são executados por ordem
alfabética com o único argumento "stop".
• Os scripts cujos nomes começam com um "S" em
"/etc/rc<runlevel>.d/" são executados por ordem
alfabética com o único argumento "start".
Local dos scripts
Systemctl
Executando ações
Status dos serviços
SysV e systemd runlevel
Qual meu runlevel?
Como criar um script no init
• O objetivo desta prática é demonstrar a criação
e registro de um script na inicialização por
systemd.
Como criar um script no init
Como criar um script no init
Como criar um script no init
Como criar um script no init
Como criar um script no init
Referência
• TANENBAUM, A. S. , Sistemas Operacionais
Modernos. Segunda Edição, Prentice Hall, 2003.
• NEMETH, Evi; Snyder, Garth Hein, Trent R.; Boggs,
Adam; Crosby, Matt; McClain, Ned. Manual
completo do Linux: guia do administrador. Pearson
Makron Books, 2007.
• https://www.debian.org/

LInux - Iinit e systemd

  • 1.
    Sistemas Operacionais Teoria eprática Iniciando Processos e o Sistema
  • 2.
    Bootstrapping • Linux éum sistema operacional complexo; • A inicialização (bootstrapping) deve seguir passos; • Durante a inicialização o Kernel é carregado para memória e inicia-se uma série de tarefas;
  • 3.
    Para isso • BIOSé executado; • O Bootloader é executado (GRUB); • O intird é carregado e executado; • O Kernel é montado e inicializado por init;
  • 4.
    BIOS • Contem osoftware básico para validar os dispositivos e carregar o sistema operacional. • Reside na ROM (read only memory); • Permite o carregamento de parâmetros usados para inicialização – Data e hora – sequencia de inicialização de hardware – sequencia de boots – periféricos – parâmetros para processador – parâmetros para memoria.
  • 5.
    BIOS • Quando ligao computador a BIOS passa por 4 processos – Valida dados da CMOS, Checa as configurações de Hardware; – Teste físicos em dispositivos, como HD, memória e Processador com o POST (power on self test) – Ativa componentes instalados no computador, tal como USB; – E tudo OK, inicia o Bootloader do SO.
  • 6.
  • 7.
    MBR • Criado em1983 • Contem informações de partições do Disco • Códigos de BOOT do sistema operacional • Está no Cilindro 0, head 0 e setor 1 • Possui a posição de carregamento do Bootloader.
  • 8.
    GRUB Legacy • Oarquivo de configuração do menu está localizado em "/boot/grub/menu.lst”
  • 9.
    GRUB 2 • Oarquivo de configuração do menu está localizado em "/boot/grub/grub.cfg"; • É gerado automaticamente pelo "/usr/sbin/update-grub" uetc/grub.d/*" e definições de "/etc/default/grub"; • tilizando modelos de "/
  • 10.
    Bootloader • Carrega oKernel em 2 estágio: – Estágio 1: Inicialização do initrd – Estágio 2: Inicialização do Kernel
  • 11.
    Estágio 1 • Oinitrd (Initial RAM Disk) que está em /boot/ é descompactado em /tmp; • é montado como /tmpfs neste processo carrega-se drivers e arquivos; • monta o kernel; • finaliza o initrd.
  • 12.
    Estágio 2 • Osistema Debian normal é iniciado pelo initrd Debian; • O kernel do sistema para o initrd Debian continua a correr no seu ambiente; • O sistema de arquivos raiz é mudado daquele em memória (/tmpfs) para o que está no sistema de arquivos do disco rígido real (/).
  • 13.
    Estágio 2 • Oprograma init é executado como o primeiro programa com PID=1 • /sbin/init é um link simbólico para o arranque do sistema que usa.
  • 14.
  • 15.
    init • Debian antesde squeeze (6 February 2011) a iniciação de estilo SysV simples (saiba mais aqui); • Debian wheezy (4 May 2013) melhora a iniciação de estilo SysV ao ordenar a sequência de arranque com cabeçalho LSB e arrancando scripts de arranque em paralelo.
  • 16.
    init • Debian jessie(26 April 2015) muda o seu init predefinido para o systemd para a inicialização em paralelo e gerida por eventos.
  • 17.
    init do Systemd •O processo init do systemd carrega processos em paralelo com base em arquivos de configuração de unit – /lib/systemd/system: Arquivos de configuração predefinidos do SO – /etc/systemd/system: Arquivos de configuração do administrador do sistema – /run/systemd/system: Arquivos de configuração gerados em run-time.
  • 18.
  • 19.
  • 20.
    runlevel • Nível deexecução; • Controle que o sistema é executado; • Níveis 0 ao 6; • Cada runlevel roda alguns serviços; • Configurado por arquivos de configuração.
  • 21.
    Principais • 0 -se eleva ele desliga o computador; • 1 - Mono usuário para manutenção • 2, 3, 4, 5 Multiusuários: – 2 Debian Terminal; – 3 Red Hat; – 5 Ubuntu Gráfico. • 6 está reiniciando o sistema.
  • 22.
  • 23.
    init • Quando oscomandos init ou telinit vão para o runlevel, o sistema basicamente executa os scripts de inicialização; • Os scripts cujos nomes começam com um "K" em "/etc/rc<runlevel>.d/" são executados por ordem alfabética com o único argumento "stop". • Os scripts cujos nomes começam com um "S" em "/etc/rc<runlevel>.d/" são executados por ordem alfabética com o único argumento "start".
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
    Como criar umscript no init • O objetivo desta prática é demonstrar a criação e registro de um script na inicialização por systemd.
  • 31.
    Como criar umscript no init
  • 32.
    Como criar umscript no init
  • 33.
    Como criar umscript no init
  • 34.
    Como criar umscript no init
  • 35.
    Como criar umscript no init
  • 36.
    Referência • TANENBAUM, A.S. , Sistemas Operacionais Modernos. Segunda Edição, Prentice Hall, 2003. • NEMETH, Evi; Snyder, Garth Hein, Trent R.; Boggs, Adam; Crosby, Matt; McClain, Ned. Manual completo do Linux: guia do administrador. Pearson Makron Books, 2007. • https://www.debian.org/