Professional Documents
Culture Documents
Objetivos
Nivelar
os participantes do projeto Itautec nos vrios aspectos do kernel do sistema Linux que ser uma das plataformas a serem analisadas sobre 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
Kernel do Linux
Trata-se do componente central deste sistema operacional (core) Totalmente customizvel pode ficar pequeno e compacto Monoltico ( a escolha Pode rodar em hardwares modestos Grande compatibilidade
Filesystems (Windows, OS/2, MAC OS, Solaris, SunOS, NeXTSTEP, BSD, etc) Rede (Ethernet, Fast e Giga, FDDI, HIPPI, Token Ring, WaveLAN, DEC Roamabout) Com as bibliotecas adequadas pode at rodar programas escritos para outros SOs
Caractersticas do Kernel
Multitarefa real - gerencia o tempo de CPU entre os vrios processos Multiprocessamento pode trabalhar com vrios processadores Gerenciamento otimizado de memria, com suporte a memria virtual (swap) Faz a gesto de recursos da mquina (portas seriais, impressoras, rede, etc) Continuamente atualizado (evoluo de hardware)
Caractersticas do Kernel
Controla e media o acesso ao hardware Controla os filesystems, apresentando qualquer dispositivo de armazenamento numa forma padronizada Implementa e suporta abstraes fundamentais ao sistema como processos, arquivos, dispositivos, usurios, rede, filesystems Controla a distribuio de recursos do sistema Realiza tarefas de manuteno rotineiras
Modo de Operao
Execuo de processos em modo kernel / usurio Kernel reentrante possibilidade de rodar vrios processos em kernel mode No preemptivo (em sistemas monoprocessados) Kernel control path sequncia de instrues executada pelo kernel em resposta a chamadas de sistema, interrupes ou excees interessante se rodar com as interrupes habilitadas na maior parte do tempo
Plataformas Suportadas
alpha (HP) arm cris (thin servers) i386 Ia64 itanium m68k mips e Mips64 parisc (HP) ppc s390 e s390x (IBM zSeries) sh (superH Hitachi) sparc e sparc64 (SUN)
se for par uma verso estvel se for mpar uma verso em desenvolvimento
No h mais a limitao de 1024 processos/threads Melhor suporte multiprocessador (SMP) Suporte USB e PCMCIA interno no kernel e no em pacotes separados Suporte genrico a portas paralelas Melhor suporte a filesystems e NFSv3 Facilidade na importao de filesystems externos (tecnologia de filesystem virtual) Melhor suporte a memria virtual Novos dispositivos so suportados
Diretrio /proc
Diretrio especial ilusrio criado pelo kernel em memria para disponibilizar informaes online sobre o sistema Permite acesso vrias informaes sobre o que est acontecendo na mquina
Exemplos: /proc/x informaes do processo de nmero x /proc/cpuinfo processador, tipo, modelo, etc /proc/devices lista de dispositivos no kernel atual /proc/modules lista os mdulos carregados no momento
Arquitetura do Kernel
Applications System Libraries (libc) System Call Interface I/O Related File Systems Networking Device Drivers Process Related Scheduler Memory Management IPC
Modules
Arquitetura do Kernel
Kernel
Memria
Gerenciamento de Memria
Parte da memria fsica de um sistema alocada para o kernel e suas estruturas de dados estticas A outra parte gerenciada pelo sistema de memria virtual, atendendo ao kernel, processos e caches de dispositivos de I/O
Cada processo ter sua rea de endereamento privativa Vrias cpias do mesmo processo podem compartilhar sua execuo, separando apenas as reas de dados
Memria Virtual
Rodar processos que exigem mais memria que a fisicamente instalada no sistema Somente parte do cdigo de um programa armazenada na memria fsisca Pode-se realocar programas para qualquer rea da memria fsica do sistema
O kernel cria um espao de endereamento virtual nico de forma que memria fsica e memria virtual se tornam transparente para processos Um mapeamento automtico traduz endereos de memria em endereos fsicos
Memria Virtual
Swapping cpia de todo o escopo de um processo para o disco Paginao cpia de partes (pginas) para o disco (4 kb) Dependendo da aplicao, velocidade desejada e tamanho da RAM, o espao de memria virtual pode ter de 1 a 3 vezes o tamanho da RAM Pode-se ter 16 reas de swap em disco, inclusive em discos diferentes! Alguns comandos envolvidos: mkswap swapon / swapoff free
de Sistema - normalmente exigem endereos de memria como parmetros errados podem causar crash kernel deve checar se os endereos esto coerentes antes de realizar a chamada (atravs de funes especficas) ou apenas tratar as falha a nvel de kernel mode caso enviado um sinal para o processo falho (SIGSEGV)
Neste
Interrupes
Possibilidade
sistema
Usadas
Nmeros
Em
placas SMP
Chamadas de Sistema
Exemplos:
kill () sigaction () sigprocmask () sigpending () ssetmask() sigsuspend() settimer fork
falha
Processos
podem criar seus timers para controle temporizado de eventos de controle do kernel para estes timers (ordenao e ticks de 10 ms - i386)
Necessidade
Sinais
Mensagens
Devices
Device driver permite a interao do kernel com o dispositivo de I/O Os DD podem ser mdulos do kernel e podem se carregados e descarregados dinamicamente sob demanda O diretrio /dev contm os arquivos de dispositivos (no so drivers para o dispositivo) Existem arquivos de dispositivos para dispositivos abstratos como /dev/null e /dev/log Exemplo: Dispositivos para HDs
/hda1: primeiro HD primeira parto /hda2: primeiro HD segunda parto /hdb1: segundo HD primeira parto /hdb2: segundo HD segunda parto
Arquivo de dispositivo
O arquivo de dispositivo o arquivo que representa o hardware no sistema O ponto de montagem o diretrio onde o filesystem montado Os drivers dos dispositivos so partes do kernel responsveis em controlar os diversos hardwares da mquina Os dispositivos se comunicam com o kernel atravs dos arquivos do diretrio /dev
Acesso a dispositivos
O kernel suporta o trabalho de vrios processadores em paralelo Sistemas Multiprocessados vrios kernels control path O procedimento de desabilitar interrupes de hardware no faz sentido em sistemas multiprocessados (outros processo de kernel podem acessar os dados protegidos na regio crtica) Semforos ou spin locks podem ser usados para manter a integridade de estruturas de dados em sistemas multiprocessados As estruturas de dados de processos (tasks) deve conter informao de que processador est executando o processo
Compilao do Kernel
Razes: Kernel mais simples / leve Kernel mais genrico Kernel com suportes especficos
1. 2. 3.
Pode-se gerar um kernel numa mquina mais rpida e depois copi-lo para uma mais lenta
Compilao do Kernel
Procedimento: make config / menuconfig / xconfig make dep make clean make zImage/bzimage/bzdisk Cpia da imagem gerada para o diretrio /usr/src/Linux/arch/i386/boot/zImage ou um diskette (bzdisk) make modules Make modules_install Atualizao do LILO (ou outro boot manager)
1. 2. 3. 4. 5.
6. 7. 8.
Compilao do Kernel
HARDWARE-How To listas de compatibilidade com o kernel Checar se as verses de gcc e libc so as corretas Ao chamar algum dos comandos config, ser apresentado um lista das opes possveis do kernel Itens que variam de acordo com a verso do kernel, como: Suporte SCSI Itens de Networking Adequao para determinadas famlias de processadores
Suporte a Mdulos
Alternativas para um kernel lidar com vrios dispositivos: microkernel (exige muita comunicao interprocesso) e suporte a mdulos Linux usa mdulos em razo da eficincia, normalmente device drivers Quase todas as partes do kernel podem ser transformadas em mdulos O kernel possui uma tabela de smbolos que indica o mdulo que deve ser carregado Modernas arquiteturas podem realizar o check do hardware e o kernel pode identificar os dispositivos em tempo de boot para carregar os mdulos correspondentes
Suporte a Mdulos
Processo kerneld no mais usado Nos novos kernels, esta funo pode ser feita pelo prprio kernel (opo kmod de compilao) Alguns comandos envolvidos:
Instalao do Kernel
Make bzlilo (somente se o lilo estiver em /sbin/ e o kernel est em vmlinuz) Ou usar o lilo diretamente configurando o arquivo /etc/lilo.conf Outro boot manager - GRUB
/usr/src/linux
init fs include
asm-alpha asm-arm asm-generic asm-i386 asm-ia64 asm-m68k asm-mips asm-mips64 linux math-emu net pcmcia scsi video adfs affs autofs autofs4 bfs code cramfs devfs devpts efs ext2 fat hfs hpfs
ipc
kernel
alpha arm i386 ia64 m68k mips mips64 ppc s390 sh sparc sparc64
adfs affs autofs autofs4 bfs code cramfs devfs devpts efs ext2 fat hfs hpfs
documentation
documentos dos desenvolvedores divididos por itens especficos um subdiretrio para cada arquitetura, sendo que cada um pode ter subdiretrios para /usr/src/linux/ especficos para a arquitetura O lib contm rotinas j otimizadas para a plataforma em questo (memcpy, checksums, etc) Maior parte do cdigo (~1.5M) Subdiretrios especficos (por exemplo: SCSI) Mecanismos de virtual filesystem (VFS) Subdiretrios para cada tipo de fs
arch
drivers
fs
include
init
ipc
kernel
Cdigo core do sistema sched.c (o arquivo principal do kernel) - scheduler, wait queues, timers, alarms, task queues Interrupoes (irq.c) Controle de processos (fork.c, exec.c, signal.c, exit.c - acct.c, capability.c, exec_domain.c) Suporte a mdulos (kmod.c, ksyms.c, module.c) Outras operaes (time.c, resource.c, dma.c, softirq.c, itimer.c, printk.c, info.c, panic.c, sysctl.c, sys.c)
lib
Compressores do tipo gzip Analisadores de comandos e erros Rotinas de suporte Gerenciamento de memria Paginao e swapping, polticas, rotinas de baixo nvel Alocao e liberao de memria Memria virtual Mapeamento de memria Networking Em constante alterao Configuraes do kernel em menus Patching
mm
net
scripts
Desenvolvimento no Linux
Scripts WEB:
Linguagens: cobol e lisp sockets, rpc, motif (paga) entre processos: FIFO, RPC,
Bibliotecas:
Comunicao
IPC
configure (autoconf)
Ferramenta make
make:
determina que partes de um programa devem ser recompiladas em funo de uma alterao. qualquer linguagem Makefile possibilidades (target)
Aceita
Arquivo Vrias
Instalao de Aplicativos
Aplicaes
no Linux so, como nos outros sistemas, um conjunto de arquivos com pelo menos um executvel vem num formato padro ou apresentaro um script que automatiza as tarefas de instalao install
Normalmente
Utilitrio
Formato padro desenvolvido pela RH Baseado num pequeno utilitrio de mesmo nome Modos de operao (Instalao, verificao, consulta, desinstalao, etc) Nomenclatura dos arquivos dos pacotes Nome-verso-release.arquitetura.rpm
compilar o pacote, gerando seus executveis vem na forma de um arquivo tar A DOCUMENTAO!!!
Normalmente LER O
Compilao de Pacotes
Nem
Procedimento