Sistemas Operacionais II Prof. Fernando Freitas Estudo de Caso 1: UNIX e LINUX 10.1 História do Unix 10.2 Visão geral do Unix 10.3 Processos no Unix 10.4 Gerenciamento de memória no Unix 10.5 Entrada/Saída no Unix 10.6 O sistema de arquivos do Unix 10.7 Segurança no Unix Material adaptado de: TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 2ª edição. Disponível em: http://www.prenhall.com/tanenbaum_br Pearson Education Sistemas Operacionais Modernos 2ª Edição 1
História do UNIX e do Linux UNICS MULTICS (pesquisadores Mit e Bell Labs) Bell Labs abandona o projeto Ken Thompson escreve UNICS (assembly), posteriormente grafado UNIX Minicomputador PDP-7 Pearson Education Sistemas Operacionais Modernos 2ª Edição 2
História do UNIX e do Linux UNIX PDP-11 Sucesso leva Unix para PDP-11 Resolve-se utilizar linguagem de alto nível Thompson propõe e escreve B Falta de recursos de B leva Ritchie a produzir e implementar sua sucessora: C C possuía compilador excelente Linguagem certa no momento certo Tomou conta de universidades, onde sofreu grandes melhorias Pearson Education Sistemas Operacionais Modernos 2ª Edição 3
História do UNIX e do Linux UNIX Portátil Portabilidade mais fácil devido ser escrito em C Interdata 8/32 foi o primeiro depois dos PDP s Nasce a rede Unix Com a dissolução da AT&T (detentora dos direitos do Unix), ela ativa uma subsidiária que lança a primeira versão comercial do Unix, o System III Um ano depois é lançado o System V devido a pouca aceitação do System III Pearson Education Sistemas Operacionais Modernos 2ª Edição 4
História do UNIX e do Linux UNIX de Berkeley Universidade da Califórnia em Berkeley, de posse da Versão 6 do Unix e com vários incentivos propõe inúmeras melhorias como uso de memória virtual e paginação, melhorias no tratamento de sinais, nomes de arquivos superiores a 14 caracteres, etc. Conhecido com BSD Introduziu vários programas utilitários como vi, compiladores Pascal e Lisp DEC e Sun baseiam suas versões de Unix nesta Pearson Education Sistemas Operacionais Modernos 2ª Edição 5
História do UNIX e do Linux UNIX Padrão System V e BSD totalmente incompatíveis Dificuldades no desenvolvimento de programas para Unix Várias tentativas de padronização frustradas IEEE com o projeto POSIX propõe 1003.1 (intersecção do System V e do BSD) Pearson Education Sistemas Operacionais Modernos 2ª Edição 6
MINIX História do UNIX e do Linux Lançado em 1987, foi desenvolvido por Andrew S. Tanenbaum, visava ser um código simples, compreensível e de fins educacionais Baseado no projeto de micronúcleo Em 2004, a versão 3 priorizou ainda mais a modularização, buscando se tornar um sistema extremamente confiável. Deixa de ser voltado para a área educacional e passa a ser um sistema altamente confiável. Pearson Education Sistemas Operacionais Modernos 2ª Edição 7
Linux História do UNIX e do Linux Lançado em 1991 por Linus Torvalds, a versão 0.01 era um sistema de produção completo que abrangia áreas que o MINIX não atendia. Duas GUIs diferentes (KDE e Gnome) Se tornou um clone poderoso do Unix Teve como maior impulso uma disputa judicial entre a AT&T e a Universidade da Califórnia que retirou o FreeBSD (sistema maduro e estável, com grande multidão de seguidores desde 1977) do mercado por algum tempo Pearson Education Sistemas Operacionais Modernos 2ª Edição 8
Objetivos do Linux Princípio da surpresa mínima ls A* rm A* Fazer somente uma coisa, mas fazê-la bem feita (desempenho e flexibilidade) Evitar redundância inúteis cp ao invés de copy Pearson Education Sistemas Operacionais Modernos 2ª Edição 9
Linux As camadas de um sistema Linux Pearson Education Sistemas Operacionais Modernos 2ª Edição 10
Interfaces para o Linux A maioria das distribuições do linux para PC substitui a interface orientada para teclado, pela interface orientada para mouse, sem modificar o SO. As interfaces gráficas, são semelhantes as já existentes, e englobam conceitos como arrastar e soltar, clique para executar programas, etc. Pearson Education Sistemas Operacionais Modernos 2ª Edição 11
Interfaces para o Linux Estas interfaces gráficas são executadas pelo Sistema X Window, comumente chamado X11 ou simplesmente X Além dos recursos oferecidos pela interface gráfica, usuários podem optar pela emulação de um terminal Pearson Education Sistemas Operacionais Modernos 2ª Edição 12
Programas Utilitários do Linux Alguns dos programas utilitários comuns do Linux necessários para o POSIX Pearson Education Sistemas Operacionais Modernos 2ª Edição 13
Núcleo do Linux Estrutura do núcleo do Linux Pearson Education Sistemas Operacionais Modernos 2ª Edição 14
Processos no Linux As entidades ativas no Linux são os processos Cada processo executa inicialmente um único programa e uma única thread Threads podem ser criadas posteriormente O Linux é um sistema multiprogramado Pearson Education Sistemas Operacionais Modernos 2ª Edição 15
Processos no Linux Fork cria novos processos no linux, retornando 0 para filho e PID do filho para o processo pai. Processos comunicam através de canais chamados pipes ou através de sinais Processos só podem emitir sinais para seu grupo de processos, ou seja, seus parentescos. Pearson Education Sistemas Operacionais Modernos 2ª Edição 16
Chamadas ao Sistema para Gerenciamento de Processos O processo progenitor (pai) cria processos progénitos (filhos), os quais, por sua vez, criam outros processos, formando uma árvore de processos. O filho criado pela chamada ao sistema fork() duplica o espaço de memória do pai. Pai e filho(s) executam concorrentemente a partir da instrução a seguir o fork() A função fork() devolve valores diferentes para o processo pai e processo filho permitindo assim o programa pode tomar varias linhas de ação através de uma instrução de controle (if) Pearson Education Sistemas Operacionais Modernos 2ª Edição 17
Chamadas ao Sistema para Gerenciamento de Processos Pearson Education Sistemas Operacionais Modernos 2ª Edição 18
Chamadas ao Sistema para Gerenciamento de Processos Pearson Education Sistemas Operacionais Modernos 2ª Edição 19
Processos no UNIX Criação de processo no Linux Pearson Education Sistemas Operacionais Modernos 2ª Edição 20
Sinais POSIX Sinais necessários para o POSIX Pearson Education Sistemas Operacionais Modernos 2ª Edição 21
Chamadas ao Sistema para Gerenciamento de Processos s é um código de retorno pid é um ID de processo residual é o tempo restante no alarme anterior Pearson Education Sistemas Operacionais Modernos 2ª Edição 22
Shell do POSIX Um shell altamente simplificado Pearson Education Sistemas Operacionais Modernos 2ª Edição 23
Implementação de processos no Linux Informações da tabela de processos Parâmetros de escalonamento Prioridade, qtde de tempo de CPU Imagem da memória Ponteiros para suas tabelas de páginas Sinais Sinais que estão sendo ignorados, capturados, etc. Pearson Education Sistemas Operacionais Modernos 2ª Edição 24
Implementação de processos no Linux Informações da tabela de processos Registradores de máquina Local que salva as informações quando ocorre um desvio de execução para o núcleo Estado da chamada de sistema Informações sobre a chamada de sistema (parâmetros e resultados) Tabela de descritor de arquivo Informações que indicam onde estão os descritores de arquivos (i-node) Pearson Education Sistemas Operacionais Modernos 2ª Edição 25
Implementação de processos no Linux Informações da tabela de processos Contabilidade Tempo gasto de CPU em modo usuário e durante chamadas de sistemas Pilha do Núcleo Pilha fixa a ser usada pela parte do núcleo do processo Miscelânia Estado do processo atual (está esperando evento?, PID, PID do pai, etc) Pearson Education Sistemas Operacionais Modernos 2ª Edição 26
Implementação de processos no Linux Copy on write (copiar-se-escrita) Técnica utilizada nos sistemas Linux para reduzir custos com cópias de memória do processo pai para processo filho Consiste em inicialmente apontar as tabelas de página do filho para as tabelas do pai, e só alocar novos espaços de memória se alguma escrita for solicitada Economia de RAM Pearson Education Sistemas Operacionais Modernos 2ª Edição 27
O Comando ls Passos na execução do comando ls digitado no shell Pearson Education Sistemas Operacionais Modernos 2ª Edição 28
Flags para o clone do Linux CLONE_PARENT O novo thread tem o mesmo pai que o chamador O chamador é o pai do novo thread Bits do mapa de bits sharing_flags Pearson Education Sistemas Operacionais Modernos 2ª Edição 29
Escalonamento no Linux O Linux distingue 3 classes de threads para questões de escalonamento: FIFO em tempo real Não preemptivel exceto por outra thread de FIFO de tempo real Chaveamento circular em tempo real Semelhantes aos anteriores, porém preemptíveis e associados ao quantum de tempo Tempo compartilhado Classe de prioridade mais baixa A palavra tempo real vêm do padrão P1003.4 (extensões de tempo real para UNIX) Pearson Education Sistemas Operacionais Modernos 2ª Edição 30
Escalonamento no Linux Possui uma fila de execução (runqueue) que mantém dois vetores: Ativo Threads na fila de execução Expirado Threads que já foram executadas e tiveram seu quantum de tempo expirado antes de concluírem suas tarefas Pearson Education Sistemas Operacionais Modernos 2ª Edição 31
Escalonamento no Linux Quando o vetor de ativos está vazio, é feito uma varredura no vetor de expirados para que as threads passem a fazer parte do vetor de ativos e vice-versa Objetivo de evitar a inanição em threads de baixa prioridade Exceto quando threads FIFO de tempo real tomem todo o tempo da CPU Pearson Education Sistemas Operacionais Modernos 2ª Edição 32
Inicializando o Linux Passos para inicialização 1. BIOS executa POST (Power-On-Self-Test) e detecta e inicializa dispositivos 2. Lê e executa MBR 3. Executa o programa boot 4. Lê o diretório raiz do dispositivo de boot 5. Lê o núcleo no SO e transfere o controle para ele. 6. Cálculo de RAM, desabilitação de interrupção e habilitação de MMU, etc. Pearson Education Sistemas Operacionais Modernos 2ª Edição 33
Inicializando o Linux Passos para inicialização 7. Chama a rotina main em C para iniciar a parte principal do SO 8. Inicializações lógicas 9. Processo de detecção e auto configuração de drivers e dispositivos 10.Alocar processo 0, ajustá-lo e executá-lo (programação do relógio, montagem do sistema de arquivos raiz, criação do init e do daemon de paginação processos 1 e 2) Pearson Education Sistemas Operacionais Modernos 2ª Edição 34
Inicializando o Linux Passos para inicialização 11.Verifica se o sistema é mono ou multi-usuário 12.Login 13.Senha 14.Se ok, carrega shell do usuário, senão senha novamente 15.Pronto, aguarda comandos Pearson Education Sistemas Operacionais Modernos 2ª Edição 35
Inicializando o Linux A seqüência de processos usada para iniciar alguns sistemas Unix Pearson Education Sistemas Operacionais Modernos 2ª Edição 36
Gerenciamento de Memória O espaço de endereçamento de um processo consiste de 3 segmentos: Código Código executável do programa Imutável Dado Variáveis do programa 2 partes: dados inicializados e não incializados (BSS) Página zero estática Pilha Variáveis de ambiente Comando de invocação Pearson Education Sistemas Operacionais Modernos 2ª Edição 37
Gerenciamento de Memória a) Espaço de endereçamento virtual do processo A b) Memória física c) Espaço de endereçamento virtual do processo B Pearson Education Sistemas Operacionais Modernos 2ª Edição 38
Gerenciamento de Memória Se mesmo programa executando duas vezes: Segmentos de códigos compartilhados Dados e pilhas nunca são compartilhados, exceto quando um fork é executado Arquivos mapeados na memória Mapeamento de arquivos em parte do espaço de endereçamento do processo Leitura de vetor de bytes na memória ao invés de chamadas E/S Dois ou mais processos podem mapear o mesmo arquivo Pearson Education Sistemas Operacionais Modernos 2ª Edição 39
Arquivos Mapeados em Memória Dois processos podem compartilhar um arquivo mapeado Pearson Education Sistemas Operacionais Modernos 2ª Edição 40
Chamadas ao Sistema para Gerenciamento de Memória s é um código de retorno (-1 se erro) a e addr são endereços de memória len é um comprimento prot controla proteção flags arquivo privado/compartilhado, addr obrigatório/sugestão fd é um descritor de arquivo offset é um deslocamento de arquivo Pearson Education Sistemas Operacionais Modernos 2ª Edição 41
Gerenciamento de Memória Física no Linux 3 tipos de zonas de memória: ZONE_DMA Zonas para operações de DMA ZONE_NORMAL Páginas de mapeamento normal ZONE_HIGHMEN Endereços de memória alto Não são permanentemente mapeados OBS: Divisão exata varia com hardware Pearson Education Sistemas Operacionais Modernos 2ª Edição 42
Gerenciamento de Memória Física no Linux Na versão Alpha o Linux utilizava tabelas de páginas de três níveis Pearson Education Sistemas Operacionais Modernos 2ª Edição 43
Gerenciamento de Memória Física no Linux A partir da versão 2.6.11 o Linux passou a utilizar o esquema de 4 níveis para se tornar eficiente em sistemas 32 e 64 bits Pearson Education Sistemas Operacionais Modernos 2ª Edição 44
Mecanismos de Alocação de Linux suporta diversos mecanismos de alocação: Algoritmo do companheiro Vetor contém as cabeças de listas de blocos com tamanhos de 0, 2, 4... Unidades (múltiplos de 2) Fácil localização de um bloco Muita fragmentação Memória Alocador de fatias Obtém blocos com algoritmo do companheiro Divide-os em fatias (unidades menores) Gerencia as fatias separadamente Fatias podem estar cheias, parcialmente cheias ou vazias. Pearson Education Sistemas Operacionais Modernos 2ª Edição 45
Mecanismos de Alocação de Memória Operação do algoritmo companheiro (buddy) Pearson Education Sistemas Operacionais Modernos 2ª Edição 46
Paginação no Linux Unix confiava em um processo trocador que movimentava processos inteiros entre memória e disco O Linux passou a trabalhar com páginas Daemon de paginação (processo 2) verifica e faz alocação e liberação de memória física de acordo com a demanda Pearson Education Sistemas Operacionais Modernos 2ª Edição 47
Paginação no Linux Segmentos de textos e arquivos mapeados são paginados para seus arquivos no disco O restante vai para uma área de troca (arquivos de paginação de tamanho fixo) Páginas são alocadas no dispositivo ou partição de paginação somente quando são necessárias Pearson Education Sistemas Operacionais Modernos 2ª Edição 48
Algoritmo de Recuperação de Molduras de Páginas O Linux tenta manter algumas páginas livres de forma que elas possam estar disponíveis quando necessárias Esse grupo é constantemente renovado Algoritmo de Recuperação de Molduras de Páginas (PFRA) é responsável por esta tarefa Pearson Education Sistemas Operacionais Modernos 2ª Edição 49
Linux distingue 4 tipos de páginas: Não recuperáveis Não podem ser excluídas da memória Trocável Algoritmo de Recuperação de Molduras de Páginas Devem ser escritas de volta, antes de serem solicitadas Sincronizável Devem ser escritas no disco se estiverem sujas Descartável Podem ser imediatamente solicitadas Pearson Education Sistemas Operacionais Modernos 2ª Edição 50
Algoritmo de Recuperação de Molduras de Páginas Cada vez que o PFRA é executado ele tenta recuperar as páginas mais fáceis, para em seguida recuperar as mais difíceis. Se uma página for inválida, estiver bloqueada, sendo usada para DMA, etc. ela é ignorada Pearson Education Sistemas Operacionais Modernos 2ª Edição 51
E/S no Linux O linux integra dispositivos de E/S no sistema de arquivos, chamando os de arquivos especiais Estes arquivos podem ser acessados da mesma forma que arquivos comuns Arquivos especiais são divididos em duas categorias: bloco e caracteres Pearson Education Sistemas Operacionais Modernos 2ª Edição 52
E/S no Linux Arquivos especiais de bloco consistem em uma sequência de blocos enumerados, onde cada bloco pode ser acessado individualmente. Arquivos especiais de caractere são empregados em dispositivos em que a E/S ocorre em forma de fluxo de caracteres. Associado a cada arquivo especial existe um driver que por sua vez possui um número de dispositivo principal (talvez um secundário também, se dispositivo >= 2) que identifica o dispositivo Pearson Education Sistemas Operacionais Modernos 2ª Edição 53
Transmissão em Rede O conceito de transmissão em rede do linux foi copiado quase que literalmente do Unix Trabalha com o conceito de soquete Cada soquete dá suporte a um tipo específico de transmissão em rede: Fluxo confiável de bytes orientado a conexão (protocolo TCP padrão) Fluxo confiável de pacotes orientado a conexão Transmissão não confiável de pacotes (protocolo UDP padrão) Pearson Education Sistemas Operacionais Modernos 2ª Edição 54
Transmissão em Rede Uso de sockets para transmissão em rede Pearson Education Sistemas Operacionais Modernos 2ª Edição 55
Chamadas de Sistema para E/S no Linux As principais chamadas do POSIX para o gerenciamento de terminal: As 4 primeiras ajustam a velocidade do terminal. Ex: ADSL As 2 últimas são usadas para configuração, interrupção de processos, tratar o fluxo de controle, etc. Pearson Education Sistemas Operacionais Modernos 2ª Edição 56
Implementação de E/S no Linux Algumas operações de arquivos para dispositivos de caracteres típicos Pearson Education Sistemas Operacionais Modernos 2ª Edição 57
Implementação de E/S no Linux O Sistema de E/S é dividido em 2 partes: Manipulador de arquivos especiais de bloco Minimizar o nº de transferências: cache Reduzir a latência de movimentos repetidos da cabeça do disco: escalonador de E/S Escalonador do elevador de Linus (causa inanição) Versão revisada do escalonador inclui duas listas adicionais que mantém as operações de r/w ordernadas pelo prazo Manipulador de arquivos especiais de caracteres Disciplinas de linhas Pearson Education Sistemas Operacionais Modernos 2ª Edição 58
Módulos no Linux Durante décadas, os drivers de dispositivos UNIX eram estaticamente ligados ao núcleo Cada centro computacional construía um núcleo Se um novo dispositivo fosse adquirido ele religava o núcleo Funcionou bem nas estações de trabalho Com a chegada do Linux para PC a quantidade de dispositivos de E/S é muito grande e tudo mudou Usuários embora tenham acesso ao código fonte, sente dificuldades para incluir e atualizar drivers e religar o núcleo Surgem os módulos carregáveis (blocos de códigos que podem ser carregados com o sistema em execução) Pearson Education Sistemas Operacionais Modernos 2ª Edição 59
Módulos no Linux Tarefas realizadas durante o carregamento de um módulo: 1. Realocação dinâmica durante o carregamento 2. Verificar se recursos estão disponíveis 3. Vetores de interrupção necessários devem ser ajustados 4. Tabela de drivers deve ser ajustada para tratar deste novo tipo de dispositivo 5. Driver executado para inicializar as características específicas do dispositivo que forem necessárias Quando as 5 etapas forem concluídas o driver estará totalmente instalado. Pearson Education Sistemas Operacionais Modernos 2ª Edição 60
O Sistema de Arquivos do Linux Origem com o MINIX Busca por melhorias Ext 255 caracteres e 2 GB Ext2 Melhorias na capacidade e nos nomes dos arquivos Principal sistema de arquivos por vários anos Suporte a vários sistemas utilizando VFS (Virtual File System Pearson Education Sistemas Operacionais Modernos 2ª Edição 61
O Sistema de Arquivos do Linux 255 caracteres Características Não faz distinção entre arquivos ASCII e binários O proprietário conhece o arquivo, o sistema não se preocupa com isso Qualquer caractere é aceito, exceto NUL Extensões ilimitadas em tamanho e quantidade Pearson Education Sistemas Operacionais Modernos 2ª Edição 62
O Sistema de Arquivos do Linux Características Diretórios podem ser usados por conveniência Utiliza / (barra) para separar diretórios Permite caminhos relativos e absolutos Permite a criação de links Permite arquivos especiais para mapear dispositivos de bloco e caractere Pearson Education Sistemas Operacionais Modernos 2ª Edição 63
O Sistema de Arquivos do Linux Diretórios Alguns diretórios importantes encontrados na maioria dos sistemas Linux Pearson Education Sistemas Operacionais Modernos 2ª Edição 64
O Sistema de Arquivos do Linux Links (a) Antes da ligação (b) Depois da ligação Pearson Education Sistemas Operacionais Modernos 2ª Edição 65
O Sistema de Arquivos do Unix Mapeamento de Arquivos Especiais (a) (b) (a) Sistemas de arquivos separados. Ex: Windows 98 (b) Após a montagem. Ex: Linux Pearson Education Sistemas Operacionais Modernos 2ª Edição 66
Arquivos com Impedimento Permite travamento de arquivos refinado Dois tipos de travamento Compartilhado Exclusivo (a) Arquivo com um impedimento (b) Adição de um segundo impedimento (c) Um terceiro impedimento Pearson Education Sistemas Operacionais Modernos 2ª Edição 67
Chamadas ao Sistema para Gerenciamento de Arquivos s é um código de retorno fd é um descritor de arquivo position é um deslocamento no arquivo Pearson Education Sistemas Operacionais Modernos 2ª Edição 68
A Chamada ao Sistema stat Campos retornados pela chamada ao sistema stat Pearson Education Sistemas Operacionais Modernos 2ª Edição 69
Chamadas ao Sistema para Gerenciamento de Diretório s é um código de retorno dir identifica um diretório entradir é uma entrada no diretório Pearson Education Sistemas Operacionais Modernos 2ª Edição 70
Sistema de Arquivos do Linux VFS (Virtual File System) Superbloco Sistema de arquivos específicos read_inode, sync_fs Dentry Representa uma entrada de diretório create, link I-node Descreve um arquivo d_compare, d_delete Arquivo Representação na memória de um arquivo aberto read, write Pearson Education Sistemas Operacionais Modernos 2ª Edição 71
Bloco 0 Sistema de Arquivos do Linux ext2 (2º sistema de arquivos estendido) Não usado Contém código para inicialização do sistema Depois dele, a partição é dividida em grupos de blocos, onde cada um contém: Superbloco Informações sobre a organização do sistema de arquivos Descritor de grupo Informações sobre a localização do mapa de bits, o nº de blocos livres e o número de diretórios no grupo Pearson Education Sistemas Operacionais Modernos 2ª Edição 72
Sistema de Arquivos do Linux ext2 (2º sistema de arquivos estendido) Esquema do sistema de arquivos Ext2 do Linux Pearson Education Sistemas Operacionais Modernos 2ª Edição 73
Sistema de Arquivos do Linux ext2 (2º sistema de arquivos estendido) Estrutura do i-node no Linux Pearson Education Sistemas Operacionais Modernos 2ª Edição 74
Sistema de Arquivos do Linux ext2 (2º sistema de arquivos estendido) A relação entre a tabela de descritores de arquivos, a tabela de descrição de arquivos abertos e a tabela de i-nodes Pearson Education Sistemas Operacionais Modernos 2ª Edição 75
Sistema de Arquivos do Linux ext3 (sistema de arquivos com diário) Altamente compatível com o ext2 Trabalha com uma espécie de diário onde todas as operações realizadas são descritas em sequência, até que tenham sido concluídas Utiliza um dispositivo de blocos para diário (JBD) para controlar as operações de r/w no diário. Este por sua vez suporta 3 operações: Registro de diário Gerenciador de operações atômicas Transação Pearson Education Sistemas Operacionais Modernos 2ª Edição 76
Sistema de Arquivos do Linux /proc (processo) Consiste basicamente em criar diretórios dentro de /proc para cada processo em execução O nome do diretório é o número PID do processo em decimal Dentro deste diretório ficam os arquivos quem contém informações acerca deste processo Pearson Education Sistemas Operacionais Modernos 2ª Edição 77
Exercícios 1. Quais as vantagens de se utilizar módulos no linux? 2. Cite pelo menos 4 características do sistema de arquivos do linux. 3. Quais são os tipos de travamento permitidos pelo Linux. Comente sobre eles. 4. Comente sobre o funcionamento do sistema de arquivos ext3. Pearson Education Sistemas Operacionais Modernos 2ª Edição 78
NFS - Sistema de Arquivos em Rede a) Exemplos de sistemas de arquivos montados remotamente b) Diretórios são mostrados como quadrados e arquivos como círculos Pearson Education Sistemas Operacionais Modernos 2ª Edição 79
NFS - Sistema de Arquivos em Rede Utiliza 2 protocoloas cliente-servidor O primeiro trata da montagem de diretórios Retorna um controle de arquivo se caminho for válido Esse controle identifica de modo único o sistema de arquivo, o disco, o i-node e as informações de segurança Permite montagem estática ou a automontagem O segundo é para acesso a arquivos e diretórios Suporta as chamadas do sistema Linux, exceto as chamadas open e close Utiliza lookup para substituir a chamada open Tem a vantagem de não copiar qualquer informação para as tabelas do sistema. A chamada read tem os parâmetros: controlador do arquivo, deslocamento no arquivo e nº de bytes a ser lido Um servidor com essas caracterísiticas é conhecido como sem estado (stateless) Servidores sem estado, não podem utilizar os travamentos, por isso utilizam a proteção rwx e a proteção por chave pública Pearson Education Sistemas Operacionais Modernos 2ª Edição 80
NFS - Sistema de Arquivos em Rede A estrutura em camadas do NFS Pearson Education Sistemas Operacionais Modernos 2ª Edição 81
Segurança no Linux Alguns exemplos de modos de proteção de arquivos OBS: x em arquivo = execução x em diretório = busca Pearson Education Sistemas Operacionais Modernos 2ª Edição 82
Chamadas ao Sistema para Segurança no Unix s é um código de retorno uid e gid são o identificador de usuário - UID e o identificador de grupo - GID, respectivamente SETUID e GETGID dão permissão de root a usuários temporariamente Pearson Education Sistemas Operacionais Modernos 2ª Edição 83
FIM Na próxima aula, entrega dos trabalhos e início das apresentações sobre o Estudo de Caso 2: Windows Vista Pearson Education Sistemas Operacionais Modernos 2ª Edição 84