Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
CURSO DE LINUX Aula 2
Kernel e sinais do sistemaEnrico Manfron e Lucas Ricardo
Revisão
revisãoHardware
◆ Placa Mãe◆ Processador◆ Memórias
● Memória RAM● HD
◆ Placas de expansão
Além disso:
◆ Fonte de alimentação◆ Cabos◆ Gabinete
revisãodispositivos para o linux
◆ Localizados na pasta de Devices - /dev● /dev/sda1● /dev/stty1● /dev/ttyacm0
◆ $ sudo dmidecode● Lista os devices identificados pelo Kernel
revisãoTipos de dispositivo
◆ Plug and play● Mais legais do planeta!!!!
◆ Dispositivos “chatinhos”. Exigem configuração manual.
◆ TODOS OS DISPOSITIVOS POSSUEM:● IRQ
○ Interruption Requirement● DMA
○ Direct Access Memory● I/O
○ Input/Output
revisãodiscos e partições
◆ Disco● Dispositivo para armazenamento de dados
◆ Partição● Setor no Disco
◆ Utilidades:● Dualboot● Armazenamento de arquivos em diferentes partições● Segurança
revisãosistemas de arquivos
◆ ext4● Sistema mais atual para o Linux
◆ NTFS● Sistemas para Windows NT
◆ swap● Proporciona vantagens à um sistema Linux
revisãoPontos de montagem
➔ $ mount /dev/sda2 -t ext2◆ Faz um ponto de montagem para o dispositivo /dev/sda2, no sistema ext2
➔ $ UNmount /dev/sda2 ◆ Desfaz o ponto criado
revisãoComo o sistema inicia?
1. Apertamos o botão de ligar
2. Fonte alimenta a placa mãe, iniciando a BIOS (ROM).
3. A BIOS executa as instruções na memória, basicamente, fazendo a placa mãe
realizar teste nos dispositivos.
4. Terminados os testes, inicia-se a busca pelo setor de boot no disco rígido
5. Esse setor de boot é criado por um gerenciador de inicialização.
revisãoGErenciadores de inicialização
➔ GRUB - Grand Unified Bootloader➔ LILO - LInux LOader
◆ Podemos configurar ambos de acordo com a nossa necessidade◆ São importantes para a correta inicialização dos sistemas operacionais
manutenção do sistema
quee?
manutenção do sistemaManutenção no sistema de arquivos
◆ Windows faz isso automaticamente pra você!● Isso não é bom!!!
manutenção do sistemaManutenção no sistema de arquivos
➔ $ fsck <opções> <dispositivo>◆ FileSystem Check ◆ Existe uma para cara sistema de arquivo diferente:
● fsck.ext2● fsck.ext3
➔ $ badblocks <opções> <dispositivo>◆ Marca blocos defeituosos no HD
● Ajuda na hora de gravar informações● O sistema já sabe onde está defeituoso
manutenção do sistematarefas automáticas do sistema
➔ cron◆ Daemon que permite agendar execução de comando ou programa◆ Edição no arquivo /etc/crontab
● cron.daily, ...
➔ $ at◆ Agendar tarefa:
● echo ls | at 19:54◆ Visualizar tarefas:
● $ atq◆ Remover tarefas:
● $ atrm <NÚMERO DA TAREFA>
manutenção do sistemaManutenção no sistema de arquivos
◆ No linux, é possível fazer essa mesma checagem de uma maneira mais segura e controlável
● $ fsck <opções> <dispositivo>○ FileSystem Check ○ Existe uma para cara sistema de arquivo diferente:
◆ fsck.ext2◆ fsck.ext3
Kernel e módulos
kernelREVISANDO kernel
◆ Peça central do sistema operacional◆ Controla os dispositivos e periféricos do sistema
Linux não é um Sistema Operacional, é um Kernel
◆ Windows 10 é um sistema operacional● Kernel = Windows NT
https://en.wikipedia.org/wiki/Comparison_of_operating_system_kernels
kernel REVISANDO kernel
kernel REVISANDO kernel
kernelREVISANDO kernel
◆ Controla periféricos do sistema
◆ Esses dispositivos pode possuir suporte incluso: O Kernel deve estar pronto para recebê-lo, ou seja, deve conter suas configurações pré-estabelecidas.
https://www.tldp.org/HOWTO/Hardware-HOWTO/
kernel informações do sistema
➔ $ UNAME <opções> ◆ Mostra informações do sistema
● Exercício:○ Consulte o manual do comando○ Veja a versão do Sistema operacional, do Kernel e do processador
kernel mensagens do kernel
➔ $ dmesg <opções> ◆ Mostra o processo de inicialização do sistema
◆ Ao conectar um dispositivo, ele deve ser iniciado pelo Kernel.◆ Este comando é bastante útil quando você quer verificar essa inicialização.
módulosPartes do kernel
◆ Partes do kernel que são carregadas quando solicitadas
◆ Evita a ocupação de memória somente pelo Kernel● Imagine se o núcleo carrega tudo o que ele vai precisar usar?
O sistema trava!
◆ Módulos kernel estão localizados /lib/modules/<versão do kernel>
módulosPartes do kernel
◆ E como eu posso iniciar esses módulos?
➔ $ lsmod ◆ Lista os módulos carregados pelo sistema
➔ $ MODINFO <módulo>◆ Lista informações sobre um determinado módulo
módulos comandos para módulos
➔ $ insmod <módulo> <opções> ◆ Carrega os módulos manualmente
➔ $ rmmod ◆ Remove módulos carregados no kernel
➔ $ depmod ◆ Checa dependência entre os módulos
➔ $ modprobe ◆ INSMOD + DEPMOD◆ Carrega um módulo e suas dependências, manualmente
➔ $ modconf ◆ Configurar I/O, DMA e IRQ manualmente
módulos arquivos específicos de módulos
◆ /etc/modules● Carregador de módulos de inicialização do sistema● Possui a lista de módulos● Editado pelo comando modconf
◆ modules.conf● Guarda as informações de configuração de cada módulo
atualizações no kerneldiff e patch
➔ $ diff ● Mostra a diferença entre um arquivo e outro● Útil para checar mudanças em um programa, por exemplo.
https://www.kernel.org/doc/html/v4.11/process/applying-patches.html
daemons e logsque?
daemons e logslogs
◆ São arquivos de registro que ficam em /var/log
◆ Contém Hora, Data, Mensagem emitida pelo programa
◆ Logs nunca são sobrescritos.
◆ Ajuda os administradores a acompanhar o funcionamento do sistema, comportamento dos programas ou na solução e prevenção de problemas.
◆ Uma ferramenta muito importante para administradores, já que guarda os principais registros do sistema.
daemons e logsFormato do arquivo log
◆ Normalmente formados pelos seguintes campos:
● data | hora | máquina | daemon | mensagem
◆ Onde:● máquina : nome do computador que gravou a mensagem● daemon : qual programa registrou a mensagem
◆ Daemons de logs do sistema registram mensagens de saída do kernel e do sistema e guardam em /var/log, entre outros também.
daemons e logsDaemons
◆ “Mas o que são daemons, e o que eles fazem ?”● daemons controlam (iniciam, reiniciam, param, etc.) algum serviço provido
pelo sistema.
◆ Basicamente eles são mecanismos que servem para controlar coisas quando necessário.
Imagine um daemon como um guarda de trânsito quando um sinaleiro não funciona, ou seja, manualmente ele organiza o fluxo de carros e chama o pessoal da manutenção do sinaleiro para que o sistema se normalize e volte a funcionar automaticamente.
daemons e logslogs importantes
◆ /var/log/apt/ - Logs do uso do gerenciador de pacotes apt-get.
◆ boot.log - Registros dos serviços carregados durante a inicialização do sistema .
◆ auth.log - Registro do uso de autorização do sistema. como mecanismos que exigem senha. ex: sudo …
◆ kern.log - Mensagens detalhadas do kernel
◆ syslog - Mensagens que não foram armazenadas em logs mais específicos.
◆ Xorg.0.log - Informações sobre drivers da placa de vídeo e do ambiente gráfico.
daemons de logs➔ $ rSYSLOGD <opções>
◆ Esse daemon controla o registro de logs do sistema
➔ $ klogctl <opções>◆ Controla o registro das mensagens do kernel
➔ $ logger <opções> <mensagem>◆ Permite enviar mensagens nos logs do sistema.
execução de programas
o que é execução de programa?
execução de programastipo de execução
◆ Duas formas:
○ Primeiro Plano - foreground
○ Segundo Plano - backgroud
execução de programascomandos iniciais:
➔ $ <comando> ; <comando>: ...◆ Executa comandos em sequência.
➔ $ ps <opções>◆ Apresenta processos em execução no terminal que foram iniciados.
➔ $ top <opções> ◆ Apresenta todos os processos.
execução de programascontrole de execução:
➔ $ CTRL + C ◆ Cancela a execução de um processo em primeiro plano.
➔ $ CTRL + z ◆ Para a execução de um processo em primeiro plano.
➔ $ jobs◆ Apresenta processos parados ou em segundo plano.
➔ $ fg <numero>◆ Passa um processo para o primeiro plano.
➔ $ bg <numero>◆ Passa um processo para o segundo plano.
execução de programascomandos iniciais:
➔ $ kill <opções> <sinal> <número> ◆ Permite que você envie um sinal a um programa.
(e você aí pensando que o kill só matava processos em...)
alguns daemons de logsSinais
◆ São usados quando se deseja enviar uma mensagem a um processo
Exemplo: Quando você digita “kill 40301”, na verdade você está mandando o número 15 para o programa, que significa algo como:
“Caro programa, quero ,gentilmente, terminar sua execução”
◆ Já o número 9 ...
alguns daemons de logsSinais
◆ Sinal 1: Significa reinício do programa. O programador deve escrever uma rotina que faça o que ele considera como reinício (como reler arquivos de configurações por exemplo). Senão o tratamento padrão é o encerramento. Este sinal é chamado de SIGHUP.
◆ Sinal 2: Sinal chamado de SIGINT. Causa uma interrupção e morte no programa. Falando em termos práticos, é um sinal 2 que o programa recebe quando se pressiona Control+C.
alguns daemons de logsSinais
◆ Sinal 15: esta é a solicitação de morte, chamada de SIGTERM. Ao receber um sinal 15 o processo deveria preparar-se para terminar, fazendo "seus últimos pedidos" e ele mesmo encerrando normalmente sua execução. Claro, isto se o programador tratar o sinal, senão será o Sistema Operacional quem o fará.
◆ Sinal 9: SIGKILL. Este é a morte indefensável. Não pode ser mascarado, ou seja, o programador não consegue substituir a rotina de tratamento do Sistema Operacional que simplesmente tira o processo da fila de prontos. Deve ser usado em último caso, pois um sinal 15 é mais elegante por dar a chance ao processo de se preparar para sua morte.
alguns daemons de logsSinais
◆ Sinal 14: SIGALRM. Adoro este sinal. Um desconhecido que permite coisas fantásticas. Posso agendar antecipadamente o envio sinal. Tratarei dele com mais detalhes.
◆ Sinal 20: SIGTSTP. Este sinal de STOP faz com que o processo interrompa a sua execução. Veja, ele não termina, apenas interrompe. Se não for tratado pelo programa o Sistema Operacional irá tirar ele da fila de prontos, mas sem o encerrar. Bom exemplos falam mais alto: quando tu digita Control+Z tu gera um sinal 20. Captou? (processo fica parado, um fg volta a ele ou um bg para colocar em background).
Esta foi a aula 2!Aula 3 nesta mesma sala, no
mesmo horário.Dúvidas? Perguntas?
Comentários? Presentes?
Guenta ae! Tem chamada!