O documento descreve como o kernel Linux funciona, desde o carregamento pelo bootloader até iniciar o processo init. Ele explica que o kernel cria uma máquina virtual entre o hardware e os processos, gerenciando recursos e recebendo chamadas de sistema. O documento também detalha as etapas do boot, incluindo inicialização do hardware e carregamento dos drivers antes de montar o sistema de arquivos e iniciar o init.
1. Como Funciona o Kernel Linux
Fábio Olivé Leite
fabio.olive@gmail.com
1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
2. Tópicos
●
O que é um Sistema Operacional
●
Onde está o Kernel
●
O que é o Kernel Linux
●
Como ele é carregado
●
Do boot ao init
1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
3. O que é um Sistema Operacional
●
Conjunto de programas responsável por
gerenciar o hardware, fornecendo às
aplicações uma interface virtualizada,
padronizada e controlada aos recursos da
máquina.
●
Composto de:
– Boot loader, kernel, bibliotecas e utilitários
1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
4. Onde está o Kernel
●
Entre o hardware e as bibliotecas, utilitários e
aplicações
●
Qualquer acesso ao “mundo externo” passa
pelo kernel
●
O kernel cria uma “máquina virtual” para os
processos
●
Chamadas de sistema (syscalls)
1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
5. O que é o Kernel Linux
●
Kernel criado por Linus Torvalds
– Inicialmente era um hobby
●
Segue os padrões Unix (POSIX, SUS, etc)
– Sistema Unixlike
●
Criado para o i386, para explorar as
possibilidades do processador
●
Baseado no minix
1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
6. O que é o Kernel Linux
●
Mas é só um kernel!
●
Faltava todo o resto do sistema
– Projeto GNU!
●
O nascimento do GNU/Linux
●
Portado para outras arquiteturas
●
Distribuições de Linux
– Coleções de programas de fácil instalação
1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
7. Como ele é carregado
●
Arquitetura i386 (x86, Intel, etc)
●
Boot do PC
●
Modo Real, BIOS
●
Boot Loader
– Sistemas de Arquivos
●
Carga do kernel
1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
8. Como ele é carregado
●
O boot loader “prepara” os detalhes do modo
protegido (ou privilegiado)
●
Cada arquitetura tem um ponto de entrada
específico
●
O kernel é linkado de forma a cair no ponto
certo
1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
9. Como ele é carregado
●
O boot loader prepara um modelo de memória
básico
●
Carrega o kernel pro ponto certo da arquitetura
●
Salta para o endereço mágico
●
O kernel assume o controle
1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
10. Do boot ao init
●
Inicialização básica do hardware
– Flags e modos do processador de boot
– Interrupções
– Gerência de memória
– Outros processadores
●
Controladores locais de interrupção
1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
11. Do boot ao init
●
Drivers de dispositivos
●
Protocolos
●
Kernel threads
●
Monta o /
●
Roda o /sbin/init
1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
12. Do boot ao init
●
/sbin/init
– Estruturas iniciais hardcoded no kernel
– Imagem uselevel do init é carregada
– Salta para o endereço inicial do init em userlevel
●
Saiu do modo protegido
●
Primeira instrução em userlevel
●
Fork()/exec() outros processos
●
“O Linux que a gente vê”
1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre
13. Demonstração / Perguntas
A única pergunta boba é a não perguntada.
1° Workshop de Desenvolvimento TcheLinux http://www.tchelinux.org
31/03/2007 – FTEC – Porto Alegre