SlideShare uma empresa Scribd logo
1 de 46
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 Grosso
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 Grosso
Família Linux 
Universidade Federal de Mato Grosso
Processos 
 Comunicação Entre Processos 
 Implementação de um processo 
 Escalonamento 
Universidade Federal de Mato Grosso
Processos 
 Único thread de controle inicial (único Program 
Counter) 
 Executa um único programa 
Universidade Federal de Mato Grosso
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 Mato Grosso
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
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
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
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. 
 Criado pela chamada Fork(). 
 Copy on Write 
Universidade Federal de Mato Grosso
Processo 
Implementação 
 Thread: Multi-thread no núcleo. 
 Chamada Clone: Útil na implementação de threads 
Universidade Federal de Mato Grosso
Processo 
Escalonamento 
 Chaveamento. 
 FIFO: Não preemptivo. 
 Circular: Preemptivo e utiliza o quantum. 
 Tempo Compartilhado: Prioridades. 
Universidade Federal de Mato Grosso
Processo 
Escalonamento 
 Runqueue: faz uso de dois vetores. 
 Ativo. 
 Expirado: limite quantum excedido. 
Universidade Federal de Mato Grosso
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
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
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
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
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
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
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
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
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
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
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
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 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
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
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
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
Sistemas de arquivos 
 História 
 I-Nodes 
 Implementação 
 Principais Sistemas de arquivos suportados 
Universidade Federal de Mato Grosso
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
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
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 Arquivos de até 2GiB 
 Tamanho de Arquivos de até 2GiB 
Universidade Federal de Mato Grosso
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
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
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
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
NFS 
 Sistema de arquivos distribuido 
 Criado para facilitar acesso remoto de arquivos 
 Utiliza protocolos Cliente/Servidor 
Universidade Federal de Mato Grosso
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

Mais conteúdo relacionado

Mais procurados

VMware vSphere technical presentation
VMware vSphere technical presentationVMware vSphere technical presentation
VMware vSphere technical presentationaleyeldean
 
1 introduction to windows server 2016
1  introduction to windows server 20161  introduction to windows server 2016
1 introduction to windows server 2016Hameda Hurmat
 
VIRTUALIZATION STRUCTURES TOOLS.docx
VIRTUALIZATION STRUCTURES TOOLS.docxVIRTUALIZATION STRUCTURES TOOLS.docx
VIRTUALIZATION STRUCTURES TOOLS.docxkumari36
 
VMware vSphere Performance Troubleshooting
VMware vSphere Performance TroubleshootingVMware vSphere Performance Troubleshooting
VMware vSphere Performance TroubleshootingDan Brinkmann
 
VMware Tutorial For Beginners | VMware Workstation | VMware Virtualization | ...
VMware Tutorial For Beginners | VMware Workstation | VMware Virtualization | ...VMware Tutorial For Beginners | VMware Workstation | VMware Virtualization | ...
VMware Tutorial For Beginners | VMware Workstation | VMware Virtualization | ...Edureka!
 
Introduction to Virtualization
Introduction to VirtualizationIntroduction to Virtualization
Introduction to Virtualizationelliando dias
 
Server virtualization
Server virtualizationServer virtualization
Server virtualizationofsorganizer
 
Virtualization VMWare technology
Virtualization VMWare technologyVirtualization VMWare technology
Virtualization VMWare technologysanjoysanyal
 
Traditioanal vs-cloud based Data Centers
Traditioanal vs-cloud based Data CentersTraditioanal vs-cloud based Data Centers
Traditioanal vs-cloud based Data CentersShreya Srivastava
 
Software defined datacenter SDDC
Software defined datacenter SDDCSoftware defined datacenter SDDC
Software defined datacenter SDDCpsjitha
 
Cloud computing using Eucalyptus
Cloud computing using EucalyptusCloud computing using Eucalyptus
Cloud computing using EucalyptusAbhishek Dey
 
Distributed web based systems
Distributed web based systemsDistributed web based systems
Distributed web based systemsReza Gh
 
Cloud Computing An introduction
Cloud Computing An introductionCloud Computing An introduction
Cloud Computing An introductionSanjay Sharma
 
A Buyer's Guide to Storage Virtualization
A Buyer's Guide to Storage VirtualizationA Buyer's Guide to Storage Virtualization
A Buyer's Guide to Storage VirtualizationHitachi Vantara
 
Hacking on OpenStack\'s Nova source code
Hacking on OpenStack\'s Nova source codeHacking on OpenStack\'s Nova source code
Hacking on OpenStack\'s Nova source codeZhongyue Luo
 
Cloud computing 8 cloud service models
Cloud computing 8 cloud service modelsCloud computing 8 cloud service models
Cloud computing 8 cloud service modelsVaibhav Khanna
 
Virtualization in cloud
Virtualization in cloudVirtualization in cloud
Virtualization in cloudAshok Kumar
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidoresMarco Guimarães
 

Mais procurados (20)

VMware vSphere technical presentation
VMware vSphere technical presentationVMware vSphere technical presentation
VMware vSphere technical presentation
 
1 introduction to windows server 2016
1  introduction to windows server 20161  introduction to windows server 2016
1 introduction to windows server 2016
 
VIRTUALIZATION STRUCTURES TOOLS.docx
VIRTUALIZATION STRUCTURES TOOLS.docxVIRTUALIZATION STRUCTURES TOOLS.docx
VIRTUALIZATION STRUCTURES TOOLS.docx
 
VMware vSphere Performance Troubleshooting
VMware vSphere Performance TroubleshootingVMware vSphere Performance Troubleshooting
VMware vSphere Performance Troubleshooting
 
VMware Tutorial For Beginners | VMware Workstation | VMware Virtualization | ...
VMware Tutorial For Beginners | VMware Workstation | VMware Virtualization | ...VMware Tutorial For Beginners | VMware Workstation | VMware Virtualization | ...
VMware Tutorial For Beginners | VMware Workstation | VMware Virtualization | ...
 
Introduction to Virtualization
Introduction to VirtualizationIntroduction to Virtualization
Introduction to Virtualization
 
Server virtualization
Server virtualizationServer virtualization
Server virtualization
 
Virtualization VMWare technology
Virtualization VMWare technologyVirtualization VMWare technology
Virtualization VMWare technology
 
Traditioanal vs-cloud based Data Centers
Traditioanal vs-cloud based Data CentersTraditioanal vs-cloud based Data Centers
Traditioanal vs-cloud based Data Centers
 
Windows server
Windows serverWindows server
Windows server
 
Software defined datacenter SDDC
Software defined datacenter SDDCSoftware defined datacenter SDDC
Software defined datacenter SDDC
 
Cloud computing using Eucalyptus
Cloud computing using EucalyptusCloud computing using Eucalyptus
Cloud computing using Eucalyptus
 
Distributed web based systems
Distributed web based systemsDistributed web based systems
Distributed web based systems
 
Cloud Computing An introduction
Cloud Computing An introductionCloud Computing An introduction
Cloud Computing An introduction
 
A Buyer's Guide to Storage Virtualization
A Buyer's Guide to Storage VirtualizationA Buyer's Guide to Storage Virtualization
A Buyer's Guide to Storage Virtualization
 
Hacking on OpenStack\'s Nova source code
Hacking on OpenStack\'s Nova source codeHacking on OpenStack\'s Nova source code
Hacking on OpenStack\'s Nova source code
 
Cloud computing 8 cloud service models
Cloud computing 8 cloud service modelsCloud computing 8 cloud service models
Cloud computing 8 cloud service models
 
Virtualization in cloud
Virtualization in cloudVirtualization in cloud
Virtualization in cloud
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores
 
Paas
PaasPaas
Paas
 

Semelhante a Linux - Um estudo de caso

Bit-Torrent em redes locais: Solução para transferir imagens de instalação
Bit-Torrent em redes locais: Solução para transferir imagens de instalaçãoBit-Torrent em redes locais: Solução para transferir imagens de instalação
Bit-Torrent em redes locais: Solução para transferir imagens de instalaçãoRicardo Pinheiro
 
Material sobre sistemas de arquivos do Windows,como é a organização e o supor...
Material sobre sistemas de arquivos do Windows,como é a organização e o supor...Material sobre sistemas de arquivos do Windows,como é a organização e o supor...
Material sobre sistemas de arquivos do Windows,como é a organização e o supor...Julio Oliveira
 
Unidade 3.3 Estrutura de Diretórios Linux
Unidade 3.3 Estrutura de Diretórios LinuxUnidade 3.3 Estrutura de Diretórios Linux
Unidade 3.3 Estrutura de Diretórios LinuxJuan Carlos Lamarão
 
Sistemas de arquivos feito em latex
Sistemas de arquivos feito em latexSistemas de arquivos feito em latex
Sistemas de arquivos feito em latexBruno Teixeira
 
Apresentação Monografia
Apresentação MonografiaApresentação Monografia
Apresentação MonografiaLeon Homar
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhsAnderson Lago
 
Icprl12_1-Servidores
Icprl12_1-ServidoresIcprl12_1-Servidores
Icprl12_1-Servidorespjpascoa
 
Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)Adriano Melo
 
Perícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de ArquivosPerícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de ArquivosSofia Trindade
 
PERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOS
PERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOSPERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOS
PERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOSVanessa Finoto
 
Sist operacionais
Sist operacionaisSist operacionais
Sist operacionaiskanatto
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Faculdade Mater Christi
 
Perícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de ArquivosPerícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de ArquivosThaís Favore
 

Semelhante a Linux - Um estudo de caso (20)

Bit-Torrent em redes locais: Solução para transferir imagens de instalação
Bit-Torrent em redes locais: Solução para transferir imagens de instalaçãoBit-Torrent em redes locais: Solução para transferir imagens de instalação
Bit-Torrent em redes locais: Solução para transferir imagens de instalação
 
Material sobre sistemas de arquivos do Windows,como é a organização e o supor...
Material sobre sistemas de arquivos do Windows,como é a organização e o supor...Material sobre sistemas de arquivos do Windows,como é a organização e o supor...
Material sobre sistemas de arquivos do Windows,como é a organização e o supor...
 
Unidade 3.3 Estrutura de Diretórios Linux
Unidade 3.3 Estrutura de Diretórios LinuxUnidade 3.3 Estrutura de Diretórios Linux
Unidade 3.3 Estrutura de Diretórios Linux
 
dotNet framework foundation
dotNet framework foundationdotNet framework foundation
dotNet framework foundation
 
Sistemas de arquivos feito em latex
Sistemas de arquivos feito em latexSistemas de arquivos feito em latex
Sistemas de arquivos feito em latex
 
Apresentação Monografia
Apresentação MonografiaApresentação Monografia
Apresentação Monografia
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs
 
Sistemas de arquivos
Sistemas de arquivosSistemas de arquivos
Sistemas de arquivos
 
Processos+threads.2pp
Processos+threads.2ppProcessos+threads.2pp
Processos+threads.2pp
 
Sgf
SgfSgf
Sgf
 
Icprl12_1-Servidores
Icprl12_1-ServidoresIcprl12_1-Servidores
Icprl12_1-Servidores
 
Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)Linux Desktop (Campus Party Recife)
Linux Desktop (Campus Party Recife)
 
Perícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de ArquivosPerícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de Arquivos
 
PERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOS
PERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOSPERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOS
PERSISTÊNCIA DAS INFORMAÇÕES DE ARQUIVOS EXCLUÍDOS
 
Sist operacionais
Sist operacionaisSist operacionais
Sist operacionais
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)
 
Perícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de ArquivosPerícia Forense - Análise dos Sistemas de Arquivos
Perícia Forense - Análise dos Sistemas de Arquivos
 
Aula06 - postfix
Aula06 -  postfixAula06 -  postfix
Aula06 - postfix
 
Aula06 - postfix
Aula06 -  postfixAula06 -  postfix
Aula06 - postfix
 

Mais de Tiago R. Sampaio

Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuídoTiago R. Sampaio
 
Padrão de projeto de software Composite
Padrão de projeto de software CompositePadrão de projeto de software Composite
Padrão de projeto de software CompositeTiago R. Sampaio
 
Web Semantica - Simple HTML Ontology Extension SHOE
Web Semantica - Simple HTML Ontology Extension SHOEWeb Semantica - Simple HTML Ontology Extension SHOE
Web Semantica - Simple HTML Ontology Extension SHOETiago R. Sampaio
 
Linguagem de Programação PERL
Linguagem de Programação PERLLinguagem de Programação PERL
Linguagem de Programação PERLTiago R. Sampaio
 

Mais de Tiago R. Sampaio (8)

Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuído
 
Padrão de projeto de software Composite
Padrão de projeto de software CompositePadrão de projeto de software Composite
Padrão de projeto de software Composite
 
Web Semantica - Simple HTML Ontology Extension SHOE
Web Semantica - Simple HTML Ontology Extension SHOEWeb Semantica - Simple HTML Ontology Extension SHOE
Web Semantica - Simple HTML Ontology Extension SHOE
 
Diagrama UML Pergamum
Diagrama UML PergamumDiagrama UML Pergamum
Diagrama UML Pergamum
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Banco de Dados XML
Banco de Dados XMLBanco de Dados XML
Banco de Dados XML
 
Linguagem de Programação PERL
Linguagem de Programação PERLLinguagem de Programação PERL
Linguagem de Programação PERL
 
Bioinformática
BioinformáticaBioinformática
Bioinformática
 

Linux - Um estudo de caso

  • 1. Linux: Um estudo de caso Tiago Roberti Sampaio www.trsampaio.com Universidade Federal de Mato Grosso
  • 2. Linux: Um estudo de caso Universidade Federal de Mato Grosso
  • 3. Introdução  Sistema de Arquivos  Processos  Gerenciamento de Memoria  Entrada/Saída Universidade Federal de Mato Grosso
  • 4. História do Linux  Uma breve história... Universidade Federal de Mato Grosso
  • 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. Família Linux Universidade Federal de Mato Grosso
  • 7. Processos  Comunicação Entre Processos  Implementação de um processo  Escalonamento Universidade Federal de Mato Grosso
  • 8. Processos  Único thread de controle inicial (único Program Counter)  Executa um único programa Universidade Federal de Mato Grosso
  • 9. Processos  Daemon  Cron  Cron é necessário? Universidade Federal de Mato Grosso
  • 10. Processos Chamadas relacionadas  Fork: Filho = Pid = 0.  pid_t fork(void); Universidade Federal de Mato Grosso
  • 11. Processos Chamadas relacionadas  Getpid: Fornece o Pid do processo.  pid_t getpid(void); Universidade Federal de Mato Grosso
  • 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. 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. 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. Comunicação Inter-Processos  Uso do Pipe: Bloqueante.  Uso de Signals. Universidade Federal de Mato Grosso
  • 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. Processo Implementação  Thread: Multi-thread no núcleo.  Chamada Clone: Útil na implementação de threads Universidade Federal de Mato Grosso
  • 18. Processo Escalonamento  Chaveamento.  FIFO: Não preemptivo.  Circular: Preemptivo e utiliza o quantum.  Tempo Compartilhado: Prioridades. Universidade Federal de Mato Grosso
  • 19. Processo Escalonamento  Runqueue: faz uso de dois vetores.  Ativo.  Expirado: limite quantum excedido. Universidade Federal de Mato Grosso
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  • 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. 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. 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. 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. Sistemas de arquivos  História  I-Nodes  Implementação  Principais Sistemas de arquivos suportados Universidade Federal de Mato Grosso
  • 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. 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. Principais Sistemas de Arquivos Suportados  EXT  EXT2  EXT3  EXT4  NFS Universidade Federal de Mato Grosso
  • 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. 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. 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. 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. 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. NFS  Sistema de arquivos distribuido  Criado para facilitar acesso remoto de arquivos  Utiliza protocolos Cliente/Servidor Universidade Federal de Mato Grosso
  • 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