O documento fornece um resumo abrangente sobre o sistema operacional Linux, cobrindo tópicos como história, licenciamento, processos, gerenciamento de memória, entrada e saída, sistemas de arquivos. É dividido em seções que discutem esses diferentes aspectos do kernel Linux.
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
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