Linux - Um estudo de caso

619 visualizações

Publicada em

Linux é um termo utilizado para se referir a sistemas operativos (português europeu) ou sistemas operacionais (português brasileiro) que utilizem o núcleo Linux. O núcleo Linux foi desenvolvido pelo programador finlandês Linus Torvalds, inspirado no sistema Minix. O seu código fonte está disponível sob a licença GPL (versão 2) para que qualquer pessoa o possa utilizar, estudar, modificar e distribuir livremente de acordo com os termos da licença.

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
619
No SlideShare
0
A partir de incorporações
0
Número de incorporações
54
Ações
Compartilhamentos
0
Downloads
23
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Linux - Um estudo de caso

  1. 1. Linux: Um estudo de caso Tiago Roberti Sampaio www.trsampaio.com Universidade Federal de Mato Grosso
  2. 2. Linux: Um estudo de caso Universidade Federal de Mato Grosso
  3. 3. Introdução  Sistema de Arquivos  Processos  Gerenciamento de Memoria  Entrada/Saída Universidade Federal de Mato Grosso
  4. 4. História do Linux  Uma breve história... Universidade Federal de Mato Grosso
  5. 5. Licença  A liberdade nº 0  A liberdade nº 1  A liberdade nº 2  A liberdade nº 3 Universidade Federal de Mato Grosso
  6. 6. Família Linux Universidade Federal de Mato Grosso
  7. 7. Processos  Comunicação Entre Processos  Implementação de um processo  Escalonamento Universidade Federal de Mato Grosso
  8. 8. Processos  Único thread de controle inicial (único Program Counter)  Executa um único programa Universidade Federal de Mato Grosso
  9. 9. Processos  Daemon  Cron  Cron é necessário? Universidade Federal de Mato Grosso
  10. 10. Processos Chamadas relacionadas  Fork: Filho = Pid = 0.  pid_t fork(void); Universidade Federal de Mato Grosso
  11. 11. Processos Chamadas relacionadas  Getpid: Fornece o Pid do processo.  pid_t getpid(void); Universidade Federal de Mato Grosso
  12. 12. Processos Chamadas relacionadas  Waitpid: Chamada bloqueante.  pid_t waitpid(pid_t pid, int *status, int options);  0, espera qualquer processo do grupo  -1, espera qualquer processo  >0, espera o processo nº pid Universidade Federal de Mato Grosso
  13. 13. Processos Chamadas relacionadas  Exec: Substitui a imagem.  execl, execlp, execle, execv, execvp, execvpe – executa um arquivo  int execvp(const char *file, char *const argv[]);  Cria uma instância do shell para buscar o arquivo *file  Diretório padrão /usr/bin/ Universidade Federal de Mato Grosso
  14. 14. Processos Chamadas relacionadas  Sigaction: Modifica a ação de um sinal recebido pelo processo.  Signal vs Sigaction: Interrupções durante a execução do *handler. Universidade Federal de Mato Grosso
  15. 15. Comunicação Inter-Processos  Uso do Pipe: Bloqueante.  Uso de Signals. Universidade Federal de Mato Grosso
  16. 16. Processo Implementação  Task_struct: Representação de um processo.  PCB: Lista duplamente encadeada no núcleo.  Criado pela chamada Fork().  Copy on Write Universidade Federal de Mato Grosso
  17. 17. Processo Implementação  Thread: Multi-thread no núcleo.  Chamada Clone: Útil na implementação de threads Universidade Federal de Mato Grosso
  18. 18. Processo Escalonamento  Chaveamento.  FIFO: Não preemptivo.  Circular: Preemptivo e utiliza o quantum.  Tempo Compartilhado: Prioridades. Universidade Federal de Mato Grosso
  19. 19. Processo Escalonamento  Runqueue: faz uso de dois vetores.  Ativo.  Expirado: limite quantum excedido. Universidade Federal de Mato Grosso
  20. 20. Gerenciamento de Memoria  Chamadas de sistema relacionadas  Implementação do Gerenciador  Gerenciador de memória física  Mecanismo de alocação de memória  Paginação no linux  PFRA Universidade Federal de Mato Grosso
  21. 21. Gerenciamento de Memoria  Espaço de endereçamento é composto de código, dados e pilha.  Código (instruções de máquina, tamanho fixo)  Dados (variáveis dinâmicas)  Pilha (variáveis de ambiente: argumentos da linha de comando) Universidade Federal de Mato Grosso
  22. 22. Chamadas de Sistema Relacionadas  Mmap: mapeia um bloco para a memória  Munmap: remove um arquivo mapeado  Bkr: Altera o tamanho do segmento de dados Universidade Federal de Mato Grosso
  23. 23. Implementação do Gerenciador  Cada processo recebe 3GB de espaço virtual. (32 bits)  E 1GB reservado para a tabela de páginas e dados do núcleo.  Um novo espaço pode ser criado com Fork+Escrita e modificado pelo Exec. Universidade Federal de Mato Grosso
  24. 24. Gerenciamento de Memória Física  Três zonas de memória:  ZONE_DMA: para operações DMA.  ZONE_NORMAL: páginas normais.  ZONE_HIGHMEM: páginas com endereços altos e não permanentemente mapeadas.  O kernel mantém um estrutura de zonas para cada um. Universidade Federal de Mato Grosso
  25. 25. Gerenciamento de Memória Física  Memória Principal formada por:  Núcleo.  Mapa de Memória.  Moldura de páginas. Universidade Federal de Mato Grosso
  26. 26. Mecanismo de alocação de Memória  O espaço de endereçamento se encontra dividido em áreas homogêneas contíguas e alinhadas em página.  Separa e gerencia unidades fatiadas . Universidade Federal de Mato Grosso
  27. 27. Paginação no Linux  Implementada pelo núcleo e outra parte por um processo chamado daemon de paginação  O Linux faz distinção entre quatro tipos de páginas:  Não recuperáveis;  Trocável;  Sincronizável;  Descartável; Universidade Federal de Mato Grosso
  28. 28. PFRA  Responsável por manter o reabastecimento de páginas livres a serem usadas .  Ele tenta recuperar as páginas mais fáceis e depois as mais difíceis.  Durante o PFRA as páginas ficam ativas ou inativas.  As inativas podem sofrer despejo. Universidade Federal de Mato Grosso
  29. 29. Entrada e Saída  Transmissão de rede  Chamada de sistema para E/S  Implementação E/S  Módulos Universidade Federal de Mato Grosso
  30. 30. Entrada e Saída  Arquivos especiais (/dev).  Esses arquivos são divididos em duas categorias: Blocos; Caracteres;  Cada dispositivo tem um número associado (primário/secundário) Universidade Federal de Mato Grosso
  31. 31. Dispositivos Universidade Federal de Mato Grosso
  32. 32. Transmissão de Rede  Implementada em soquetes. Estes são os tipos mais comuns:  1) Fluxo confiável de bytes orientado a conexão;  2) Fluxo confiável de pacotes orientado à conexão;  3) Transmissão não confiável de pacotes;  TCP e UDP Universidade Federal de Mato Grosso
  33. 33. E/S Chamadas de Sistema  Apesar de cada dispositivo ter um arquivo especial associado a ele, não necessita sempre de chamadas especiais para ser acessado. Universidade Federal de Mato Grosso
  34. 34. Implementação E/S  Feita por um conjuntos de drivers e cada dispositivo tem seu próprio. Sua função é interfacear o dispositivo e o núcleo. Universidade Federal de Mato Grosso
  35. 35. Módulos  Módulos são trechos de códigos que podem ser carregados enquanto o sistema está em execução Universidade Federal de Mato Grosso
  36. 36. Sistemas de arquivos  História  I-Nodes  Implementação  Principais Sistemas de arquivos suportados Universidade Federal de Mato Grosso
  37. 37. Estrutura dos I-Nodes  Permissões do arquivo  Tipo  identificação do grupo relativo e do dono  tempos (último acesso, última alteração do i-node, última alteração do arquivo, etc.)  contador de referências (quando uma referência do arquivo é apagada o contador de referências é decrementado, quando esse contador chega a zero, o i-node e os blocos alocados para o arquivo são liberados)  tamanho em bytes e endereço dos blocos alocados para o arquivo. Universidade Federal de Mato Grosso
  38. 38. Implementação  VFS (Virtual File System)  Superbloco  Dentry  I-Node  Estrutura de dados Arquivo  Suporte a diversos sistemas de arquivos Universidade Federal de Mato Grosso
  39. 39. Principais Sistemas de Arquivos Suportados  EXT  EXT2  EXT3  EXT4  NFS Universidade Federal de Mato Grosso
  40. 40. EXT  Surgiu a partir do MINIX FS  Extended File System  Nomes de arquivos de até 255 caracteres  Sistema de Arquivos de até 2GiB  Tamanho de Arquivos de até 2GiB Universidade Federal de Mato Grosso
  41. 41. EXT2  Evolução do EXT  Second Extended File System  Nomes de arquivos de até 255 caracteres  Sistema de Arquivos de até 4TiB  Tamanho de Arquivos de até 2GiB Universidade Federal de Mato Grosso
  42. 42. EXT2  Superbloco  I-Node  Grupo de Blocos  Mapa de bits de blocos  Mapa de bits de I-Nodes  tabelas de I-Nodes Universidade Federal de Mato Grosso
  43. 43. EXT3  Evolução do EXT2  Third Extended File System  Implementa Jornaling ( Diario )  Nomes de arquivos de até 255 caracteres  Sistema de Arquivos de até 16TiB ( blocos de 4KiB )  Tamanho de Arquivos de até 2TiB ( blocos de 4KiB ) Universidade Federal de Mato Grosso
  44. 44. EXT4  Surgiu a partir de uma bifurcação no desenvolvimento do EXT3  Fourth Extended File System  Nomes de arquivos de até 255 caracteres  Sistema de Arquivos de até ~2EiB  Tamanho de Arquivos de até 16TiB Universidade Federal de Mato Grosso
  45. 45. NFS  Sistema de arquivos distribuido  Criado para facilitar acesso remoto de arquivos  Utiliza protocolos Cliente/Servidor Universidade Federal de Mato Grosso
  46. 46. Bibliografia  CARRIER, Brian. File system forensic analysis. Upper Saddle River: Addison-Wesley, 2005.  TANENBAUM, Andrew S. - Sistemas Operacionais Modernos - Tradução Ronaldo A. L. Gonçalves, Luís A. Consularo, Luciana do Amaral Teixeira - Revisão técnica Raphael Y. de Camargo - São Paulo: Pearson Prentice Hall, 2009. 3. ed. Universidade Federal de Mato Grosso

×