SISTEMA DE ARQUIVOS

 

    No Windows NT, o sistema de arquivos mais antigo é o FAT-16. Este sistema foi criado para lidar com arquivos em uma unidade de disquete – ou seja, arquivos de pequenas extensões. Da ordem de Kbytes. Ele foi utilizado em sistemas operacionais tais como MS-DOS, Windows 3.11 e até na primeira versão do Windows 95. Porém este sistema desperdiçava grande quantidade de memória. Pois nele qualquer arquivo, grande ou pequeno, ocupava um tamanho na memória de 32 Kbytes alem disso possuía algumas limitações como não suportar compactação, criptografia ou segurança avançada utilizando listas de controle.
    O FAT-32 – introduzido na segunda versão Windows 95 (second edition) -, é basicamente o sistema FAT-16 estendido. Neste o problema da má utilização da memória foi melhorado, otimizando a utilização geral do disco por haver um menor desperdício. No entanto, as limitações no parágrafo anterior não foram solucionadas.
    Como o sistema de arquivos FAT apresentava muitas limitações, a Microsoft resolveu então desenvolver um sistema de arquivo de 32 bits recuperável em caso de falha do sistema, muito mais seguro, com compactação de arquivos, cotas e criptografia. Ele foi projetado desde o princípio para cuidar de tarefas complexas de E/S. Assim a Microsoft idealizou o NTFS. Esta é a principal estrutura desse tipo de sistema que substitui a FAT. Este sistema, é uma tabela que possui armazenado as localizações de todos os arquivos e diretórios. Até aí, não há muita diferença em relação à FAT. Pois ambos possuem esta tabela. A maior diferença está no modo como foi mapeada a localização desses arquivos e diretórios em tal tabela.

   UNIX é o precursor de muitos sistemas de arquivo em árvore de hoje. Estes sistemas de arquivo consistem em uma árvore de diretórios e sub-diretórios. Há comandos que lhe permitem mudar a estrutura de diretório. Estes comandos são geralmente bastante semelhantes entre sistemas.


   Em UNIX estes comandos são como segue:

  • cd ou chdir - muda de diretório
  • pwd - diz o nome do diretório atual
  • mkdir - faz um diretório novo
  • ls - lista os conteúdos do diretório (como dir em MS-DOS)


   O sistema de arquivos do UNIX possui as seguintes características fundamentais:

  • É estruturado na forma de uma árvore única, iniciando pelo diretório "/", que é chamado de "raiz". 
  • Há suporte para arquivos, diretórios e links (atalhos). 
  • Os arquivos podem ter qualquer nome, usando quaisquer caracteres, com distinção entre maiúsculas e minúsculas.
  • O caractere separador de diretórios é o "/" (barra). 
  • Arquivos e diretórios cujos nomes começam com "."(ponto) são considerados "ocultos" e normalmente não aparecem nas listagens de diretórios. 
  • As extensões são normalmente usadas apenas para facilitar a vida do usuário, mas não são importantes para o sistema operacional, que não depende delas para identificar o conteúdo de um arquivo. 
  • Os arquivos e diretórios possuem permissões de acesso controláveis por seus proprietários.


O sistema de gravação e leitura de arquivos do UNIX é bastante eficiente. No UNIX o sistema é dividido em quatro partes:

  • Bloco de Inicialização: contém as informações necessárias ao boot do computador.
  • Super Bloco: possui informações sobre o sistema, como o espaço livre em disco, os inodes livres, o espaço total do disco, e outras.
  • Blocos de Informações: são os blocos onde os dados são armazenados, cada um tem capacidade de 5k.
  • Ilist: (a lista de inodes) informa o endereço de inodes no disco.


Inodes
     São blocos especiais espalhados pelo disco que dão ao sistema varias informações sobre os arquivos, inclusive o seu tamanho, sua localidade. Toda vez que um arquivo é criado ou copiado, um inode é criado em um bloco anterior a ele. Cada inode possui até "treze ponteiros", os dez primeiros apontam quais os próximos que estão ocupados pelo respectivo arquivo, os outros três apontam blocos intermediários que indicam mais blocos de modo que um só arquivo em UNIX possa chegar a pouco mais de um Gigabyte.

Mapeando Arquivos para Discos

  • Administradores precisam saber como arquivos são mapeados para blocos de um disco.
  • Os atributos de um arquivo, inclusive a sua localização no disco, são armazenados em uma estrutura especial em disco: inode. Para cada arquivo existe um inode 
  • O nome e a localização do arquivo não são armazenados no inode 
  • Para cada partição de um disco é criado um número específico de inodes


Tipos de Arquivo

  • Arquivos normais sequências de bytes: texto, binário, executável, etc.
  • Diretórios e listas de outros arquivos (nome do arquivo e inode).
  • Arquivos especiais (dispositivos de interface entre o sistema e dispositivos de entrada e saída)
  • Ligações ("links")
    • Simbólicas: ponteiro para outro arquivo
    • Concretas: atribue mais um nome ao mesmo arquivo (na mesma partição)
  • Sockets e Pipes usados para comunicação entre processos (mecanismo para programação)