Beruflich Dokumente
Kultur Dokumente
Objetivos
Apresentar
aos participantes do projeto Itautec vrios aspectos do processo de startup dos sistemas Linux que podero vir a ser usados na distribuio para as mquinas Itautec as questes relevantes sobre o assunto para a pesquisa em andamento do projeto as dvidas que ocorrerem aos participantes e esclarec-las para que a pesquisa siga adiante
Levantar
Investigar
Ao ser ligado, o sistema roda sua BIOS normalmente armazenada em EPROM O programa de bootstrap da BIOS
Executa auto-testes Sonda o barramento para descobrir o dispositivo bootvel L o programa de boot do dispositivo bootvel
A BIOS permite configuraes bsicas como a ordem de procura dos dispositivos de armazenamento para disparo O primeiro setor da mdia de boot carregado em memria e executado Este pequeno programa responsvel em carregar o SO. Aqui podem existir boot managers como o LILO (/etc/lilo.conf) ou o GRUB
Carrega o primeiro programa (kernel) Normalmente carregado em dois estgios Requer suporte firmware (hardware bootstrap) memory firmware
(PROM)
primary
bootloader
secondary
cpu
boot device?
memory
boot sector
0xc700
1. 2. 3. 4.
Power On Self Test (POST) Gerao de INT 19h (bootstrap) Seleo do boot device Carga do setor de boot 1. 2. floppy: first sector hard disk: MBR (mboot) or partition boot block (pboot)
cpu
5. BIOS (64K)
0xfffffff0
BIOS_start
2GB
Boot Managers
Permitem: Escolher dentre vrios kernels (til para ns!) Definir parmetros de boot Boot de outros kernels (windows) Se localizam no setor de boot ou no setor de boot da partio No tem conhecimento prvio da estrutura de filesystem Para encontrar os kernels tem que fazer uma mapa (block map) arquivo /boot/map /boot/boot.b parte do loader (no sei se a secundria do LILO ou a primria)
Exemplo: LILO
/sbin/lilo (map installer) /etc/lilo.conf /boot/boot.b
/boot/chain.b
/boot/map /boot/vmlinuz
O kernel indicado (image) carregado Como ele normalmente est comprimido, um pequeno cdigo de descompresso embutido no incio da imagem do kernel para descomprimi-lo O kernel ento analisa o hardware e tenta configur-lo carregando os drivers adequados Depois ele tenta montar o filesystem root (/) normalmente em modo read-only Com o filesystem montado, ele roda o programa init (/sbin/init) que ser o processo de nmero 1 e ir carregar os servios configurados no sistema O sistema ento vem para o runlevel single-user e/ou multi-user
Uma vez carregado, o kernel ocupa uma rea fixa de memria e fica durante todo o tempo de operao do sistema Ao ser carregado, ele indica quanta memria ainda est disponvel O primeiro cdigo do kernel a ser rodado o startup_32: (label Assembler) que chama a funo start_kernel()
Power on
Boot
Kernel Init
OS Init
RUN!
Shut down
Power off
Sequncia start_kernel()
1. 2. 3. 4. 5.
lock_kernel tranca o kernel para carregamento trap_init - ? init_IRQ Inicializao das rotinas de manipulao de IRQs sched_init Inicializao do scheduler de processos softirq_init - Inicializao das rotinas de manipulao de interrupes de software time_init - ? console_init - ? init_modules - Inicializao dos mdulos (se houverem) kmem_cache_init caches de memria Sti - ? calibrate_delay - ? mem_init - ? kmem_cache_sizes_init - ? pgtable_cache_init - ? fork_init Suporte a forks proc_caches_init - ? vfs_caches_init cache de VFS
Sequncia init()
1. 2.
Lock_kernel Do_basic_setup
3. 4. 5. 6.
Programa init
0-halt 1-Single user mode 2-Multiuser, without NFS 3-Full multiuser mode 4-unused 5-X11 6-Reboot