linux - um estudo de caso

Post on 16-Jun-2015

164 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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.

TRANSCRIPT

Universidade Federal de Mato Grosso

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

ProcessosChamadas relacionadas

Fork: Filho = Pid = 0.

pid_t fork(void);

Universidade Federal de Mato Grosso

ProcessosChamadas relacionadas

Getpid: Fornece o Pid do processo.

pid_t getpid(void);

Universidade Federal de Mato Grosso

ProcessosChamadas 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

ProcessosChamadas 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

ProcessosChamadas 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

ProcessoImplementaçã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

ProcessoImplementação

Thread: Multi-thread no núcleo.

Chamada Clone: Útil na implementação de threads

Universidade Federal de Mato Grosso

ProcessoEscalonamento

Chaveamento.

FIFO: Não preemptivo.

Circular: Preemptivo e utiliza o quantum.

Tempo Compartilhado: Prioridades.

Universidade Federal de Mato Grosso

ProcessoEscalonamento

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/SChamadas 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.

top related