Linux: 
Um estudo de caso 
Tiago Roberti Sampaio 
www.trsampaio.com 
Universidade Federal de Mato Grosso
Linux: 
Um estudo de caso 
Universidade Federal de Mato Grosso
Introdução 
 Sistema de Arquivos 
 Processos 
 Gerenciamento de Memoria 
 Entrada/Saída 
Universidade Federal de Mato ...
História do Linux 
 Uma breve história... 
Universidade Federal de Mato Grosso
Licença 
 A liberdade nº 0 
 A liberdade nº 1 
 A liberdade nº 2 
 A liberdade nº 3 
Universidade Federal de Mato Gros...
Família Linux 
Universidade Federal de Mato Grosso
Processos 
 Comunicação Entre Processos 
 Implementação de um processo 
 Escalonamento 
Universidade Federal de Mato Gr...
Processos 
 Único thread de controle inicial (único Program 
Counter) 
 Executa um único programa 
Universidade Federal ...
Processos 
 Daemon 
 Cron 
 Cron é necessário? 
Universidade Federal de Mato Grosso
Processos 
Chamadas relacionadas 
 Fork: Filho = Pid = 0. 
 pid_t fork(void); 
Universidade Federal de Mato Grosso
Processos 
Chamadas relacionadas 
 Getpid: Fornece o Pid do processo. 
 pid_t getpid(void); 
Universidade Federal de Mat...
Processos 
Chamadas relacionadas 
 Waitpid: Chamada bloqueante. 
 pid_t waitpid(pid_t pid, int *status, int options); 
...
Processos 
Chamadas relacionadas 
 Exec: Substitui a imagem. 
 execl, execlp, execle, execv, execvp, execvpe – 
executa ...
Processos 
Chamadas relacionadas 
 Sigaction: Modifica a ação de um sinal recebido pelo 
processo. 
 Signal vs Sigaction...
Comunicação 
Inter-Processos 
 Uso do Pipe: Bloqueante. 
 Uso de Signals. 
Universidade Federal de Mato Grosso
Processo 
Implementação 
 Task_struct: Representação de um processo. 
 PCB: Lista duplamente encadeada no núcleo. 
 Cri...
Processo 
Implementação 
 Thread: Multi-thread no núcleo. 
 Chamada Clone: Útil na implementação de threads 
Universidad...
Processo 
Escalonamento 
 Chaveamento. 
 FIFO: Não preemptivo. 
 Circular: Preemptivo e utiliza o quantum. 
 Tempo Com...
Processo 
Escalonamento 
 Runqueue: faz uso de dois vetores. 
 Ativo. 
 Expirado: limite quantum excedido. 
Universidad...
Gerenciamento de Memoria 
 Chamadas de sistema relacionadas 
 Implementação do Gerenciador 
 Gerenciador de memória fís...
Gerenciamento de Memoria 
 Espaço de endereçamento é composto de código, 
dados e pilha. 
 Código (instruções de máquina...
Chamadas de Sistema 
Relacionadas 
 Mmap: mapeia um bloco para a memória 
 Munmap: remove um arquivo mapeado 
 Bkr: Alt...
Implementação do 
Gerenciador 
 Cada processo recebe 3GB de espaço virtual. (32 
bits) 
 E 1GB reservado para a tabela d...
Gerenciamento de Memória 
Física 
 Três zonas de memória: 
 ZONE_DMA: para operações DMA. 
 ZONE_NORMAL: páginas normai...
Gerenciamento de Memória 
Física 
 Memória Principal formada por: 
 Núcleo. 
 Mapa de Memória. 
 Moldura de páginas. 
...
Mecanismo de alocação de 
Memória 
 O espaço de endereçamento se encontra dividido em 
áreas homogêneas contíguas e alinh...
Paginação no Linux 
 Implementada pelo núcleo e outra parte por um 
processo chamado daemon de paginação 
 O Linux faz d...
PFRA 
 Responsável por manter o reabastecimento de 
páginas livres a serem usadas . 
 Ele tenta recuperar as páginas mai...
Entrada e Saída 
 Transmissão de rede 
 Chamada de sistema para E/S 
 Implementação E/S 
 Módulos 
Universidade Federa...
Entrada e Saída 
 Arquivos especiais (/dev). 
 Esses arquivos são divididos em duas categorias: 
Blocos; 
Caracteres; 
...
Dispositivos 
Universidade Federal de Mato Grosso
Transmissão de Rede 
 Implementada em soquetes. Estes são os tipos mais 
comuns: 
 1) Fluxo confiável de bytes orientado...
E/S 
Chamadas de Sistema 
 Apesar de cada dispositivo ter um arquivo especial 
associado a ele, não necessita sempre de c...
Implementação E/S 
 Feita por um conjuntos de drivers e cada dispositivo 
tem seu próprio. Sua função é interfacear o 
di...
Módulos 
 Módulos são trechos de códigos que podem ser 
carregados enquanto o sistema está em execução 
Universidade Fede...
Sistemas de arquivos 
 História 
 I-Nodes 
 Implementação 
 Principais Sistemas de arquivos suportados 
Universidade F...
Estrutura dos I-Nodes 
 Permissões do arquivo 
 Tipo 
 identificação do grupo relativo e do dono 
 tempos (último aces...
Implementação 
 VFS (Virtual File System) 
 Superbloco 
 Dentry 
 I-Node 
 Estrutura de dados Arquivo 
 Suporte a di...
Principais Sistemas de 
Arquivos Suportados 
 EXT 
 EXT2 
 EXT3 
 EXT4 
 NFS 
Universidade Federal de Mato Grosso
EXT 
 Surgiu a partir do MINIX FS 
 Extended File System 
 Nomes de arquivos de até 255 caracteres 
 Sistema de Arquiv...
EXT2 
 Evolução do EXT 
 Second Extended File System 
 Nomes de arquivos de até 255 caracteres 
 Sistema de Arquivos d...
EXT2 
 Superbloco 
 I-Node 
 Grupo de Blocos 
 Mapa de bits de blocos 
 Mapa de bits de I-Nodes 
 tabelas de I-Nodes...
EXT3 
 Evolução do EXT2 
 Third Extended File System 
 Implementa Jornaling ( Diario ) 
 Nomes de arquivos de até 255 ...
EXT4 
 Surgiu a partir de uma bifurcação no 
desenvolvimento do EXT3 
 Fourth Extended File System 
 Nomes de arquivos ...
NFS 
 Sistema de arquivos distribuido 
 Criado para facilitar acesso remoto de arquivos 
 Utiliza protocolos Cliente/Se...
Bibliografia 
 CARRIER, Brian. File system forensic analysis. Upper 
Saddle River: Addison-Wesley, 2005. 
 TANENBAUM, An...
Próximos SlideShares
Carregando em…5
×

Linux - Um estudo de caso

678 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
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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

×