aspectos do kernel do linux e instalação
Post on 06-Apr-2018
232 Views
Preview:
TRANSCRIPT
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 1/48
Aspectos do Kernel doLinux e Instalação
Prof. Mauro Tapajós
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 2/48
ObjetivosNivelar os participantes do projeto Itautec nos
vários aspectos do kernel do sistema Linuxque será uma das plataformas a serem
analisadas sobre as máquinas Itautec Levantar as questões relevantes sobre o
assunto para a pesquisa em andamento do
projeto Investigar as dúvidas que ocorrerem aos
participantes e esclarecê-las para que apesquisa siga adiante
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 3/48
Kernel do Linux Trata-se do componente central deste sistema
operacional (core) Totalmente customizável – pode ficar pequeno e
compacto Monolítico (é 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 SO’s
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 4/48
Características do Kernel
Multitarefa real - gerencia o tempo de CPU entre osvários processos
Multiprocessamento – pode trabalhar com vários
processadores Gerenciamento otimizado de memória, com suporte a
memória virtual (swap)
Faz a gestão de recursos da máquina (portas seriais,
impressoras, rede, etc) Continuamente atualizado (evolução de hardware)
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 5/48
Características do Kernel
Controla e media o acesso ao hardware
Controla os filesystems, apresentando qualquer dispositivo de armazenamento numa formapadronizada
Implementa e suporta abstrações fundamentais ao
sistema como processos, arquivos, dispositivos,
usuários, rede, filesystems
Controla a distribuição de recursos do sistema
Realiza tarefas de manutenção rotineiras
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 6/48
Modo de Operação
Execução de processos em modo kernel / usuário
Kernel reentrante – possibilidade de rodar vários
processos em kernel mode
Não preemptivo (em sistemas monoprocessados)
Kernel control path – sequência de instruções
executada pelo kernel em resposta a chamadas de
sistema, interrupções ou exceções
É interessante se rodar com as interrupções
habilitadas na maior parte do tempo
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 7/48
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)
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 8/48
Numeração dos kernels
Formato X.Y.Z, ondeX – número de versão
Y
se for par – é uma versão estável se for ímpar – é uma versão em desenvolvimento
Z – número do release (estável ou beta)
O kernel 2.4 (atual) foi lançado em jan/2001
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 9/48
Características da Versão 2.4 do kernel
Não há mais a limitação de 1024 processos/threads
Melhor suporte multiprocessador (SMP)
Suporte USB e PCMCIA interno no kernel e não em
pacotes separados Suporte genérico a portas paralelas
Melhor suporte a filesystems e NFSv3
Facilidade na importação de filesystems externos(tecnologia de filesystem virtual)
Melhor suporte a memória virtual
Novos dispositivos são suportados
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 10/48
Algumas Distribuições Linux
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 11/48
Layout Básico dos diretórios do Linux
/binArquivos aplicativos/utilitários binários executáveis
/sbin Arquivos binários executáveis essenciais ao sistema
/etc Arquivos de inicialização, configuração e administração do sistema
/root Diretório pessoal do usuário root
/dev Arquivos de dispositivos
/lib Bibliotecas
/lib/modules Módulos que podem ser carregados no kernel
/mnt Ponto de montagem de filesystems temporários
/var Arquivos permanentemente atualizados e que mudam muito detamanho como, por exemplo, logs e spools de impressão
/usr Arquivos de aplicações do sistema
/usr/src/linux Arquivos de código-fonte do kernel do Linux
/usr/doc Alguns arquivos com documentação específica
/boot Arquivos usados na inicialização (boot)
/tmp Arquivos temporários
/home Arquivos locais dos usuários
/opt Arquivos de instalação de aplicações
/lost+found Blocos de filesystem encontrados perdidos pelo comando fsck
/proc Informações do sistema: processos, dispositivos, memória,filesystems, etc.
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 12/48
Diretório /proc
Diretório especial ilusório criado pelo kernel em memória paradisponibilizar informações online sobre o sistema
Permite acesso à várias informações sobre o que está
acontecendo na máquina
Exemplos:
/proc/x – informações do processo de número x/proc/cpuinfo – processador, tipo, modelo, etc
/proc/devices – lista de dispositivos no kernel atual
/proc/modules – lista os módulos carregados no momento
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 13/48
Applications
System Libraries (libc)
System Call Interface
Hardware
Architecture-Dependent Code
I/O Related Process Related
Scheduler
Memory Management
IPC
File Systems
Networking
Device Drivers
M o
d u
l e s
Arquitetura do Kernel
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 14/48
Arquitetura do Kernel
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 15/48
Kernel
Isola o hardware das aplicações (intermediário)
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 16/48
Memória Memória usada pelos processos (Texto, dados e pilha)
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 17/48
Gerenciamento de Memória
Parte da memória física de um sistema é alocada parao kernel e suas estruturas de dados estáticas
A outra parte é gerenciada pelo sistema de memóriavirtual, atendendo ao kernel, processos e caches de
dispositivos de I/O
Cada processo terá sua área de endereçamentoprivativa
Várias cópias do mesmo processo podem compartilhar
sua execução, separando apenas as áreas de dados
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 18/48
Usada para disponibilizar memória virtual e task
swapping
Vantagens – Rodar processos que exigem mais memória que a fisicamente
instalada no sistema – Somente parte do código de um programa é armazenada na
memória físisca – Pode-se realocar programas para qualquer área da memória
física do sistema
O kernel cria um espaço de endereçamento virtualúnico de forma que memória física e memória virtualse tornam transparente para processos
Um mapeamento automático traduz endereços de
memória em endereços físicos
Memória Virtual
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 19/48
Swapping – cópia de todo o escopo de um processopara o disco
Paginação – cópia de partes (páginas) para o disco (4kb)
Dependendo da aplicação, velocidade desejada etamanho da RAM, o espaço de memória virtual podeter 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
Memória Virtual
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 20/48
Interação com o Kernel
Chamadas de Sistema - normalmente exigemendereços de memória como parâmetros
Endereços errados podem causar crash
O kernel deve checar se os endereços estãocoerentes antes de realizar a chamada(através de funções específicas) ou apenas
tratar as falha a nível de kernel modeNeste caso é enviado um sinal para o
processo falho (SIGSEGV)
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 21/48
Interrupções Possibilidade do hardware se comunicar com o
sistema
Usadas pelos device drivers
Números de interrupções – Primeiro conjunto : 0-7
– Segundo conjunto : 8-15
Em placas SMP – irq13 para interrupções Interprocessador
– irq16 para SMP reschedule
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 22/48
Chamadas de Sistema
Exemplos:
kill ()
sigaction ()sigprocmask ()
sigpending ()
ssetmask()
sigsuspend()
settimer
fork
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 23/48
Interação com o Kernel
Exceções – falha de hardware ou instruçãofalha
Processos podem criar seus timers paracontrole temporizado de eventos
Necessidade de controle do kernel para estes
timers (ordenação e ticks de 10 ms - i386)
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 24/48
Sinais
Mensagens do sistema para processos emexecução
Cada sinal tem um número e significação
Exemplos:
SIGHUP 1 hangupSIGINT 2 interruptSIGQUIT 3 quitSIGILL 4 illegal instructionSIGTRAP 5 trace trapSIGBUS 7 bus error SIGFPE 8 arithmetic exceptionSIGKILL 9 kill (cannot be caught, blocked, or ignored)
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 25/48
Devices Device driver – permite a interação do kernel com o dispositivo de
I/O Os DD podem ser módulos do kernel e podem se carregados e
descarregados dinamicamente sob demanda
O diretório /dev contém os arquivos de dispositivos (não sãodrivers para o dispositivo) Existem arquivos de dispositivos para dispositivos abstratos como
/dev/null e /dev/log Exemplo: Dispositivos para HD’s
/hda1: primeiro HD primeira partíção
/hda2: primeiro HD segunda partíção
/hdb1: segundo HD primeira partíção
/hdb2: segundo HD segunda partíção
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 26/48
Arquivo de dispositivo
O arquivo de dispositivo é o arquivo que representa ohardware no sistema
O ponto de montagem é o diretório onde o filesystem é
montado Os drivers dos dispositivos são partes do kernel
responsáveis em controlar os diversos hardwares damáquina
Os dispositivos se comunicam com o kernel atravésdos arquivos do diretório /dev
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 27/48
Acesso a dispositivos
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 28/48
SMP - Symmetrical MultiProcessor O kernel suporta o trabalho de vários processadores
em paralelo Sistemas Multiprocessados – vários kernels control
path
O procedimento de desabilitar interrupções dehardware não faz sentido em sistemasmultiprocessados (outros processo de kernel podemacessar os dados protegidos na região crítica)
Semáforos ou spin locks podem ser usados paramanter a integridade de estruturas de dados emsistemas multiprocessados
As estruturas de dados de processos (tasks) deveconter informação de que processador está
executando o processo
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 29/48
Compilação do Kernel
Razões:
1. Kernel mais simples / leve2. Kernel mais genérico
3. Kernel com suportes específicos
Pode-se gerar um kernel numa máquina maisrápida e depois copiá-lo para uma mais lenta
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 30/48
Compilação do Kernel
Procedimento:
1. make config / menuconfig / xconfig
2. make dep
3. make clean
4. make zImage/bzimage/bzdisk
5. Cópia da imagem gerada para o diretório
/usr/src/Linux/arch/i386/boot/zImage ou umdiskette (bzdisk)
6. make modules
7. Make modules_install
8. Atualização do LILO (ou outro boot manager)
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 31/48
Compilação do Kernel
HARDWARE-How To – listas de compatibilidade como kernel
Checar se as versões de gcc e libc são as corretas Ao chamar algum dos comandos config, será
apresentado um lista das opções possíveis do kernel Itens que variam de acordo com a versão do kernel,
como:
– Suporte SCSI – Itens de Networking – Adequação para determinadas famílias de
processadores
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 32/48
Suporte a Módulos Alternativas para um kernel lidar com vários
dispositivos: microkernel (exige muita comunicaçãointerprocesso) e suporte a módulos
Linux usa módulos em razão da eficiência,
normalmente device drivers Quase todas as partes do kernel podem ser
transformadas em módulos O kernel possui uma tabela de símbolos que indica o
módulo que deve ser carregado Modernas arquiteturas podem realizar o check dohardware e o kernel pode identificar os dispositivos emtempo de boot para carregar os móduloscorrespondentes
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 33/48
Suporte a Módulos
Processo kerneld – não é mais usado
Nos novos kernels, esta função pode ser feita pelo
próprio kernel (opção kmod de compilação) Alguns comandos envolvidos:
modprobe
insmod
rmmod
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 34/48
Instalação do Kernel
Make bzlilo (somente se o lilo estiver em/sbin/ e o kernel está em vmlinuz)
Ou usar o lilo diretamente configurando oarquivo /etc/lilo.conf
Outro boot manager - GRUB
Á
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 35/48
/usr/src/linuxDocumentation
arch
fs
init kernel
include
ipc
drivers
net
mmlib
scripts
alphaarm
i386
ia64
m68k
mips
mips64
ppc
s390
sh
sparc
sparc64
acorn
atm
block cdrom
char
dio
fc4
i2c
i2o
ide
ieee1394
isdn
macintosh
misc
net
…
adfs
affs
autofs
autofs4
bfs
code
cramfs
devfsdevpts
efs
ext2
fat
hfs
hpfs
…
asm-alpha
asm-armasm-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
devfsdevpts
efs
ext2
fat
hfs
hpfs
…
802
appletalk
atmax25
bridge
core
decnet
econet
ethernet
ipv4
ipv6
ipx
irda
khttpd
lapb
…
Formato da Árvore de Código Fonte do Linux
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 36/48
documentation – documentos dos desenvolvedores divididos por itens
específicos arch
– um subdiretório para cada arquitetura, sendo que cada umpode ter subdiretórios para /usr/src/linux/ específicos para aarquitetura
– O lib contém rotinas já otimizadas para a plataforma emquestão (memcpy, checksums, etc)
drivers – Maior parte do código (~1.5M) – Subdiretórios específicos (por exemplo: SCSI)
fs – Mecanismos de virtual filesystem (VFS) – Subdiretórios para cada tipo de fs
Código Fonte do Linux
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 37/48
include – Contém os arquivos de definições (include) usadoslinux
math-emu
net pcmcia
scsi
video
– Porções específicas do kernel sao guardadas com estruturas
#ifdefs
#ifdef __KERNEL__
/* kernel stuff */
#endif
Código Fonte do Linux
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 38/48
init – Processos de inicialização – Somente dois arquivos
version.c – contains the version banner that prints at boot
main.c – architecture-independent boot code
– Implementam a função start_kernel
ipc – Implementação de comunicação interprocesso System V
(semáforos, memória compartilhada e filas de mensagens)
Código Fonte do Linux
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 39/48
kernel
– Código core do sistema
– sched.c (o arquivo principal do kernel) - scheduler, wait
queues, timers, alarms, task queues – Interrupçoes (irq.c)
– Controle de processos (fork.c, exec.c, signal.c,
exit.c - acct.c, capability.c, exec_domain.c)
– Suporte a módulos (kmod.c, ksyms.c, module.c)
– Outras operações (time.c, resource.c, dma.c,softirq.c, itimer.c, printk.c, info.c,
panic.c, sysctl.c, sys.c)
Código Fonte do Linux
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 40/48
lib – Compressores do tipo gzip – Analisadores de comandos e erros – Rotinas de suporte
mm – Gerenciamento de memória – Paginação e swapping , políticas, rotinas de baixo nível – Alocação e liberação de memória – Memória virtual – Mapeamento de memória
net – Networking
– Em constante alteração scripts
– Configurações do kernel em menus – Patching
Código Fonte do Linux
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 41/48
Desenvolvimento no Linux
Scripts (Awk, perl, shells)
WEB: html, php, javascript
Linguagem C, C++ Java
Velhas Linguagens: cobol e lisp
Bibliotecas: sockets, rpc, motif (paga)Comunicação entre processos: FIFO, RPC,
IPC
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 42/48
Desenvolvimento no Linux -Ferramentas
Script configure (autoconf)
gcc (cc)
Ambientes gráficos (xwpe, proprietários)
Bibliotecas dinâmicas e estáticas (.a e .so)
Linkagem: ld
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 43/48
Ferramenta make
make: determina que partes de um programadevem ser recompiladas em função de umaalteração.
Aceita qualquer linguagem
Arquivo Makefile
Várias possibilidades (target )
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 44/48
Instalação de Aplicativos
Aplicações no Linux são, como nos outrossistemas, um conjunto de arquivos com pelomenos um executável
Normalmente vem num formato padrão ouapresentarão um script que automatiza astarefas de instalação
Utilitário install
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 45/48
RPM – RedHat Packets Management
Formato padrão desenvolvido pela RH
Baseado num pequeno utilitário de mesmo nome
Modos de operação (Instalação, verificação, consulta,desinstalação, etc)
Nomenclatura dos arquivos dos pacotes
Nome-versão-release.arquitetura.rpm
Base de dados RPM: /var/lib/rpm/*
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 46/48
RPM – RedHat Packets Management
Comandos básicos
Listagem dos pacotes instaladosrpm –qi(a)
Instalação de um pacoterpm –i <pacote>
Desinstalação
rpm –e <pacote>
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 47/48
Outras Maneira de Instalar
Aplicativos na forma de código fonte
Deve-se compilar o pacote, gerando seus
executáveisNormalmente vem na forma de um arquivo tar
LER A DOCUMENTAÇÃO!!!
O sistema deverá ter os aplicativos decompilação, linkagem e controle (citados nadocumentação)
8/3/2019 Aspectos do Kernel do Linux e Instalação
http://slidepdf.com/reader/full/aspectos-do-kernel-do-linux-e-instalacao 48/48
Compilação de Pacotes
Nem sempre é da mesma forma
Procedimento genérico
./configure
makemake install
top related