Capítulo 5 Os Sistemas de Arquivos Neste capítulo nós iremos examinar, a partir da visão do usuário, as estruturas que possibilitam o armazenamento persistente de informações no sistema computacional: os sistemas de arquivos, os arquivos e diretórios. 5.1 Sistemas de Arquivos Um sistema de arquivos é o conjunto de estruturas lógicas e rotinas que permitem ao sistema operacional armazenar dados nas unidades de memória persistentes: discos flexíveis e rígidos, pendrivers, CDROMs e DVDs etc. É de acordo com os recursos oferecidos por essas estruturas que é possível determinar, por exemplo, o espaço disponível e ocupado em uma unidade de disco, ou gerenciar como partes de um arquivo podem ficar "distribuídas" nas áreas de armazenamento desta unidade. A medida que cresce a capacidade das unidades de armazenamento e aumenta a quantidade de arquivos, a complexidade desses sistemas também aumenta. Por tanto, é necessário o uso de sistemas de arquivos cada vez mais eficientes e robustos. Diferentes sistemas operacionais usam diferentes sistemas de arquivos. O sistema de arquivos é independente do hardware do sistema, sendo especificado através do sistema operacional na configuração das suas unidades de armazenamento. É através do sistemas de arquivos que gravamos e recuperamos os dados em nosso computador. Após a instalação física dessas unidades, uma formatação lógica é efetuada, determinando a maneira que os dados são gravados e recuperados e as propriedades desses conjuntos de dados. Essas propriedades estão relacionadas à segurança destes dados e às informações sobre eles, tais como: tamanho, data e hora da criação ou modificação, tipo do arquivo e diversas outras propriedades que os qualificam. Sistema de Arquivos Sistema Operacional FAT DOS 4.0 ou superior / Windows 1.X ou superior (1.x, 2.x, 3.x, 95, 98, ME, 2000, XP) FAT32 MS­DOS 7.1 e 8.0 / Windows 95 (versão OSR2!), ou superior (95 OSR2, 98, ME, NT, 2000, XP) NTFS Windows NT ou superior (NT, 2000, XP, 2003 Server) EXT2 Linux e Unix EXT3 Linux e Unix SWAP Linux e Unix JFS AIX e OS/2 HPFS AIX e OS/2 HFS Apple Macintosh Tabela 1: Lista dos sistemas de arquivos mais comuns 5.2 Arquivos Os arquivos, também conhecidos como documentos, são estruturas fornecidas pelos sistemas operacionais, através dos seus sistemas de arquivos, utilizadas para armazenar e recuperar informações em dispositivos, tais como disco rígidos, pendrivers, disquetes, CD, DVD etc. Apesar das regras para formação de identificadores de arquivos variarem de sistema para sistema, a maioria dos sistemas operacionais suportam identificadores compostos por duas partes: o nome do arquivo e a extensão. Estas partes são separadas pelo caractere “.” (ponto). 5.2.2 Formação dos Identificadores Os identificadores podem ser formados por caracteres numéricos e alfanuméricos, contudo existem alguns caracteres que não podem ser usados em sua formação, pois a maioria dos sistemas operacionais os utilizam como caracteres de controle, são eles: \ / : * ? " < > | O nome do arquivo é formado por um conjunto de caracteres que deve dar a noção ao usuário do conteúdo do arquivo sem que seja necessário abri­lo. Nomes significativos são bastante úteis, pois facilitam na busca de informações em seu sistema de arquivos. Já a extensão, em identificador de arquivo, é um conjunto de caracteres que ajuda ao sistema operacional “entender” qual tipo de informação e, de que forma esta, está armazenada dentro do arquivo. Através da extensão, o sistema operacional associa programas que podem interpretar este conteúdo. Cada programa instalado no seu computador foi projetado para abrir um ou mais tipos de arquivo em particular, cada um destes tipos são identificados por uma extensão. Se houver mais de um programa no computador capaz de abrir um mesmo tipo de arquivo, apenas um destes programas será definido como o padrão. Em alguns sistemas de arquivos, presentes em sistemas operacionais como o Unix e Linux, existe distinção entre as letras maiúsculas e as letras minúsculas. Por tanto, caso existissem identificadores, tais como: carta, Carta, CartA, CARTA; todos representariam arquivos diferentes. Entretanto, nos sistemas de arquivos que estão presentes no MSDOS e nas plataformas Windows, todos estes nomes representariam o mesmo arquivo! 5.2.3 Tamanho de identificadores O tamanho máximo de um identificador de arquivo varia entre os sistemas operacionais. Vejamos a tabela abaixo: Sistema Operacional Tamanho máximo de um identificador MS­DOS e Windows 3.X 8 caracteres alfanuméricos para o nome e 3 para extensão. Windows 95, ME, XP, Vista 255 caracteres alfanuméricos, estes incluindo o caminho completo de localização do arquivo (unidade + pasta + identificador). Linux e Unix Não existe restrições de tamanho para os identificadores. Tabela 2: Tamanhos dos Identficadores de Arquivos No Windows, apesar dos identificadores de arquivos poderem chegar até 255 caracteres, estes devem ser mais curtos que isso, já que o caminho completo (como “c:\meus documentos\planilha de despesas.xls”) está incluído nessa quantidade de caracteres. É por isso que você pode, ocasionalmente, encontrar um erro ao copiar um arquivo com um nome muito longo para um local que possua um caminho mais longo que o local atual. 5.2.4 Estratégias para formação de identificadores Como sugestão, você pode seguir os passos abaixo: 1. Atribua nomes significativos aos seus arquivos; 2. Organize o nome para expressar informações: data, assunto, origem, etc; 3. Agrupe os arquivos relacionados em diretórios. Um exemplo seria utilizar a seguinte lógica na formação de identificadores: [data]­[tipo]­[subtipo1]­[subtipo2].[extensão] Exemplos: ● 2008­09­22­exercício01­ciências­agrárias.odt ● set08­notas­finais­ufpb­virtual.ods 5.2.5 Atributos dos arquivos Além do nome e da extensão, o sistema operacional associa a cada arquivo algumas outras informações, como por exemplo, a data e a hora em que o arquivo foi criado e seu tamanho, se é um arquivo de sistema, se está oculto ou se está protegido contra gravação (só para leitura). Chamamos estes “itens extras” de atributos do arquivo. O número de atributos dos arquivos, varia de sistema para sistema e os ajustes destes atributos modificam a forma como trabalhamos os estes arquivos. Na tabela a seguir listamos alguns atributos de arquivos presentes nos sistemas operacionais. Nenhum destes sistemas utiliza todos estes atributos, entretanto cada atributo abaixo aparece em pelo menos um sistema operacional. Atributo Significado Proteção Quem tem acesso ao arquivo e de que maneira. Senha Senha necessária para acessar o arquivo. Proprietário Identificação do usuário que é dono do arquivo. Flag de leitura Identifica se o arquivo é apenas para leitura. Flag de ocultação Identifica se o arquivo é oculto. Flag de sistema Identifica se o arquivo é um arquivo do sistema. Flag de backup Identifica se já houve backup do arquivo. Flag de ascii/binário Identifica se o arquivo é texto ou binário. Flag temporário Identifica se o arquivo é temporário. Tamanho Indica o número de bytes do arquivo. Data e hora da criação Indica a data e a hora da criação do arquivo. Data e hora do último acesso Indica a data e a hora do último acesso ao arquivo. Data e hora do última modificação Indica a data e a hora da última modificação do arquivo. Tabela 3: Atributos de Arquivos fonte: Adaptado de Sistemas Operacionais Modernos, Tanenbaum, A. S; pág. 106 5.3 Diretórios Os Diretórios, também conhecidos como Pastas, são arquivos especiais do sistema de arquivos que tem a função de guardar as informações de identificação dos documentos em seu computador, tais como: o nome, atributos e localização física. Um diretório pode conter, tipicamente, arquivos e outros diretórios. Um diretório que é interno a outro é chamado de subdiretório ou sub­pasta. Os diretórios têm a formação de identificadores semelhante aos arquivos, entretanto não é comum o uso de extensões. A estrutura hierárquica é mais utilizada para a construção do sistema de arquivos. 5.3.1 O Diretório Raiz Em todos os sistemas de arquivos hierárquicos o diretório inicial é chamado de diretório raiz. Este é o diretório de maior nível hierárquico, normalmente, é representado pelo caractere “/” (“\” no MSDOS e na plataforma Windows) e é a partir dele que todos os outros diretórios têm origem. 5.3.2 Representação das unidades de armazenamento Cada unidade de armazenamento em seu computador é um sistema de arquivos independente e, deve ser representada de alguma forma. No MSDOS e nas plataformas Windows, cada unidade é representada por uma letra, como exemplo, imagine que em nosso computador existam três unidades de armazenamento: uma unidade de disco flexível, uma unidade de disco rígido e uma unidade de CD­ROM. Sendo assim, nos sistemas acima, estas unidades seriam representadas como: A:\, C:\ e D:\, respectivamente. No MSDOS e nas plataformas Windows, o diretório raiz de uma unidade de armazenamento é separado do identificador pelo caractere “:” (dois pontos). Já nos sistemas Unix e Linux, cada dispositivo tem um identificador mais complexo, seguindo o exemplo acima, seriam representados como: /floppy, /hd0, /cdrom, respectivamente. 5.3.3 Caminho de um arquivo O caminho de um arquivo corresponde ao “endereço completo” do arquivo em uma unidade de armazenamento. Por tanto, ele é formado pelo: identificador da unidade + identificador da pasta + identificador do arquivo Exemplos: ● c:\meus documentos\tarefa01.doc ● e:\virtual\disciplinas\informática\capítulo­iii.pdf ● ● /home/rostand/material_didático/software_livre.odt /mnt/cdrom/uab/glossário.pdf Não é possível ter nomes de arquivos iguais dentro de um diretório em uma unidade de armazenamento.