O Kernel
O que é um Kernel?
- É um processo? Algo distinto?
- Kernel é um programa (ou biblioteca) que corre directamente no
HW;
- Implementa o modelo de processos e os outros serviços do
sistema;
- Reside num arquivo habitual chamado /vmunix,
/unix, /boot/vmlinux (RedHat), /kernel.
- Sistema usa bootstrapping para carregar o kernel de
disco;
- Kernel inicializa dispositivos e fica em memória até shutdown.
- Inicialmente: "small is beautiful´':
- Versatilidade é necessária: múltiplos sistemas de arquivos,
múltiplos formatos de execução.
4 Maneiras de aceder ao kernel:
- Explicitamente através da System CALL
Interface.
- Excepção em HW como divisão por 0, ou overflow de pilha,
ou acesso a posição ilegal da memória. O Kernel sabe quem causou a
excepção.
- Interrupções de periféricos: não se sabe quem activou o
dispositivo.
- Processos correm sempre dentro do kernel e fazem serviços
(kernel daemons): nfsd, swapper,
pagedaemon.
vitor@cos.ufrj.br