Sistemas Operacionais Sistemas de Arquivos Thiago Leite [email protected] 1 Sistemas de Arquivos • O que é um Sistema de Arquivos? • forma de armazenamento de dados em mídia de memória não-volátil • comparativamente a uma biblioteca onde o bibliotecário organiza livros conforme um padrão 2 Sistemas de Arquivos • Sistemas de Arquivos realizam armazenamento da informação a longo prazo • Armazenar grande quantidade de informações • Informação sobrevive após o término de processos • Múltiplos processos acessando a informação concorrentemente 3 Sistemas de Arquivos • O sistema de arquivos que determina como os dados podem ser acessados, copiados, movidos, renomeados, protegidos e eliminados. 4 Camadas do Sistema de Arquivos 5 Sistemas de Arquivos • Três tipos de arquivos na forma de armazenamento dos dados • seqüência de bytes • seqüência de registros • árvore 6 Tipos de Arquivos 7 Sistemas de Arquivos • Acesso aos arquivos • acesso seqüencial • acesso aleatório 8 Sistemas de Arquivos • Acesso aos arquivos • acesso seqüencial • lê bytes/registros a partir do início • não pode saltar ou ler fora de seqüência • ex: fita magnética 9 Sistemas de Arquivos • Acesso aos arquivos • acesso aleatório • bytes/registros lidos em qualquer ordem • essencial em sistemas de banco de dados • ex: qualquer sistema de arquivos moderno 10 Sistemas de Arquivos • Sistemas de arquivos Unix • Unix utiliza sistema de arquivos com hierarquia composta por arquivos e diretórios • Tratam diretórios como arquivos especiais 11 Sistemas de Arquivos • Tipos de arquivos Unix • Regular • Diretório • Arquivos especiais de caractere • Arquivos especiais de bloco 12 Sistemas de Arquivos • Tipo de arquivo Regular • ASCII (dados ou texto) • conteúdo binário 13 Sistemas de Arquivos • Tipo de arquivo Diretório • estrutura do sistema de arquivos • apenas para organização 14 Sistemas de Arquivos • Tipo de arquivo especial em caractere • Abstração de dispositivos de entrada e saída seriais • Ex: terminais, impressoras, rede, pipes, sockets 15 Sistemas de Arquivos • Tipo de arquivo especial em bloco • Abstração de dispositivos de entrada e saída em bloco (caractere) • Ex: disco rígido, CD-ROM, DVD 16 Sistemas de Arquivos • Os sistemas de arquivos em Unix são organizados hierarquicamente em uma única árvore 17 Sistema de Diretórios em Unix 18 Sistemas de Arquivos • Para fazer uso de um sistema de arquivo é necessário o comando mount • indexa um ponto do sistema de arquivos como meio de acesso de outro sistema de arquivos 19 Montando um sistema de arquivos para uso no Unix 20 Diferentes tipos de Sistemas de Arquivos • ADFS • AdvFS • AFS • AthFS • BFS • Btrfs • CBMFS • CMDFS • CP/M • DDFS • DTFS • DOS 3.x • FFS • Fossil • Files-11 • HFS • HFS+ • HPFS • HTFS • ISO 9660 • JFS • JXFS • LisaFS • LFS • EAFS • Extent File System • ext • ext2 • ext3 • ext4 • ext3cow • FAT • VFAT • FATX • FFS (Amiga) 21 • MFS • Next3 • MFS • Minix file system • NILFS • NTFS • NetWare File System • NSS • OneFS • etc... Sistemas de Arquivos • Características do EXT2 e evoluções • Case sensitive • Em cada diretório só é possível um arquivo de mesmo nome • Organização dos diretórios em uma árvore hierárquica com uma única raiz • As extensões não são tratadas pelo sistema de arquivos • não são obrigatórias; e • são utilizadas apenas para critério de organização 22 Extensões de Arquivos 23 Sistemas de Arquivos • Estruturas internas do EXT2 e evoluções • Bloco • Superbloco • I-node 24 Obtendo dados sobre sistemas de arquivos locais 25 Sistemas de Arquivos • Bloco • É a menor unidade de alocação de dados • Arquivos no disco são armazenados em um número inteiro de blocos de tamanho fixo • Por menor que um arquivo seja, ele irá ocupar um bloco inteiro • É composto por diversos setores de tamanho também fixos (a partir de 512 bytes cada) 26 Sistemas de Arquivos • Superbloco • inicia no terceiro setor de cada partição • dados para acesso à partição • nome do volume • tamanho dos blocos • número de blocos • número de i-nodes • caminho para o último ponto de montagem esta região esteja danificada, provavelmente a leitura dos • Caso dados do resto do grupo de blocos será prejudicada. 27 Sistemas de Arquivos • I-node • descritor sobre cada arquivo do sistema • contém informações sobre cada arquivo • dono e grupo do arquivo • número de blocos do arquivo • número de hard links para o arquivo • dados MAC (Modified, Access, Created) • ponteiro para os blocos 28 Estrutura de um i-node 29 Sistemas de Arquivos • Diretórios também possuem i-nodes • Arquivo especial contendo uma lista de entradas para outros arquivos 30 Sistemas de Arquivos • Hard links e Soft links • Hard links são inodes que apontam para inodes • invisíveis ao usuário • Soft links são blocos que possuem apontamento para outro caminho • visíveis ao usuário 31 Hard link e Soft link 32 Estrutura de cada partição 33 Sistemas de Arquivos • Cada partição é composto de grupos de blocos de mesmo tamanho • cada grupo possui metadados locais • permitir acesso local e otimizar o acesso • possui também um superbloco local 34 Super Bloco Descrito- Mapa de Mapa de Tabela de Blocos res do bits de i-nodes i-nodes de dados grupo blocos Composição de um grupo de blocos 35 Sistemas de Arquivos • Descritores do grupo • o número de blocos e i-nodes no grupo; • local da tabela de i-nodes • tabela com blocos livres • tabela com i-nodes livres 36 Sistemas de Arquivos • Mapa de bits dos blocos • indica se os blocos desse grupo de blocos estão ocupados ou livres • Mapa de i-nodes • vetor que indica quais i-nodes estão livres 37 Sistemas de Arquivos • Tabela de i-nodes • cada entrada na tabela refere-se a um inode • informações sobre cada arquivo do grupo 38 Sistemas de Arquivos • Diferenças do EXT2 para o EXT3 • Journaling • crescimento do sistema de arquivos de forma online • indexação de arquivos mais eficiente em diretórios que possuem muitos arquivos 39 Sistemas de Arquivos • Journaling • atualizações realizadas em disco na forma de transações • apenas são efetivadas se a operação ocorreu com sucesso 40 Sistemas de Arquivos • Não há limite para níveis de aninhamento • arquivo é referenciado através do path • Diretório corrente ou diretório de trabalho (process work directory - pwd) • Arquivos podem ser referenciados usando caminhos absolutos ou relativos ao diretório corrente • Nome especial para diretório corrente e diretório imediatamente acima. • Em Unix “.” (ponto) e “..” (ponto-ponto) 41 Revisão • Armazenamento de informações por longo prazo • Arquivo • Diretório • Extensões de arquivos • Tipos de arquivos • Tipos de arquivos Unix • Arquivo regular • Acesso aos • Arquivo • Árvore de • Arquivo • Caminho Unix diretório Unix dispositivo em bloco Unix • Arquivo dispositivo de caracter Unix 42 arquivos diretórios relativo • Caminho absoluto • Estrutura de partições DETRAN-RN (FGV) Em um sistema de arquivos organizado como uma árvore de diretório, define-se como caminho absoluto: a) O caminho do diretório de trabalho do usuário. b) O caminho do diretório atual. c) O caminho formado entre o diretório de trabalho do usuário e o diretório atual. d) O caminho formado entre o diretório raiz e o arquivo. e) O caminho formado entre o diretório corrente e o arquivo. 43 FUB (CESPE) A conversão de um sistema de arquivos do sistema operacional de NTFS para FAT é vantajosa por questões de desempenho e segurança dos discos rígidos e partições. a) Certo b) Errado 44 Assembléia Legislativa de Roraima Analise os seguintes enunciados relacionados aos sistemas de arquivos e, em seguida, selecione a alternativa correta. I) Arquivos são mecanismos de abstração que oferecem uma maneira de armazenar informações no disco e permitir lê-las de volta mais tarde; II) Os arquivos são organizados em diretórios e são acessíveis através de caminhos absolutos ou relativos; III)O comando chmod do sistema operacional Windows estabelece permissões de leitura, escritura e execução em arquivos; IV)A fragmentação ocorre quando o sistema operacional não consegue armazenar determinado arquivo de uma só vez, gravando-o em diferentes regiões; V) O Sistema Operacional Windows XP funciona em sistemas de arquivos NTFS, FAT32 ou Ext3. a) Os enunciados I, II e III estão corretos. b) Os enunciados III e V estão corretos. c) Os enunciados I, II e IV estão corretos. d) Os enunciados I e V estão corretos. e) Todos os enunciados estão corretos. 45 Universidade Federal Fluminense (UFF) Em relação à formatação lógica de discos rígidos, é um tipo de sistema de arquivos utilizado nos sistemas operacionais Windows ou Linux os abaixo relacionados, exceto: a) FAT; b) NTFS; c) SATA; d) Ext3; e) ReiserFS. 46 Petrobrás (CESGRANRIO) Um sistema operacional pode utilizar várias técnicas para fazer a gerência de alocação de espaço em disco. A técnica de alocação que organiza um arquivo como um conjunto de blocos ligados logicamente no disco, independente de sua localização física, é a alocação: a) contígua b) indexada c) segmentada d) encadeada e) por mapa de bits 47 TSE (CONSULPLAN) Ao instalar o Windows 7 Ultimate em um microcomputador, um programador de sistemas da empresa utiliza, por default, o seguinte formato para o sistema de alocação de arquivos: a) NTFS. b) HPFS. 48 Prefeitura de Resende (CONSULPLAN) São sistemas de arquivos válidos para instalação do sistema operacional Windows XP Professional: a) FAT16 e FAT32 b) FAT32 e NTFS c) EXT2 e NTFS d) EXT3 e FAT32 e) EXT3 e NTFS 49 MEC (FGV - adaptado) Acerca do Sistema Operacional Linux, analise as afirmativas a seguir: I. Um inode é uma estrutura de dados contendo informações sobre arquivos num sistema de arquivo Linux. Há um inode para cada arquivo, e cada arquivo é unicamente identificado pelo sistema de arquivo no qual reside e por seu número de inode neste sistema. II. O Linux divide todos os dispositivos em três classes: Bloco, Leitura/Escrita e Rede. Assinale: a) se somente a afirmativa I estiver correta. b) se somente a afirmativa II estiver correta. c) se todas as afirmativas estiverem corretas. 50 Laboratório • Dispositivos de bloco /dev/sda1 • Extraindo dados do dispositivo de bloco # dd if=/dev/sda1 of=saida_sda1 bs=4096 count=2 51 Laboratório • Dispositivos de caractere /dev/pts/0 • Enviando uma mensagem para outro terminal # echo “ola voce ai” > /dev/pts/1 52 Laboratório • Pseudo-dispositivos • /dev/null • aceita e descarta qualquer entrada. Não produz saída • /dev/zero • produz fluxo contínuo de zeros (nulls) 53 Laboratório • Pseudo-dispositivos • /dev/random • produz fluxo de tamanho variável contendo caracteres pseudoaleatórios • obtém os dados através da pilha de dados entrópicos do kernel • caso a pilha esteja vazia irá esperar por novos dados • /dev/urandom • produz fluxo também pseudo-aleatório • caso a pilha de dados entrópicos esteja vazia, irá gerar dados utilizando funções SHA (Secure Hash Algorithm) 54 Laboratório • Extrair dados dos pseudo-dispositivos # dd if=/dev/random of=saida_random bs=1 count=5 55 Laboratório • Lê o arquivo /etc/fstab para identificar quais sistemas de arquivos irá ler durante a inicialização • O arquivo /etc/mtab traz informações sobre quais sistemas de arquivos estão montados 56 /etc/fstab 57 Laboratório • Criar um disco “virtual” para análise dos blocos e arquivos • O comando a seguir irá criar uma imagem de bits zeros do tamanho especificado (4096 * 300 = 1.228.800 bytes) # dd if=/dev/zero of=pendrive.dd bs=4096 count=300 58 Formatar a imagem em EXT3 59 Laboratório • Montar a imagem criada anteriormente # mount -­‐o loop pendrive.dd /mnt 60 Laboratório • Recuperando um bloco inteiro da imagem e realizando a conversão dos dados para strings # dd if=pendrive.dd.blkls bs=4096 skip=9 count=1 | strings 61