Sistemas de arquivos no Unix - Arquivos, Diretórios e Partições

Trabalho de graduação sobre Arquivos, Diretórios e Partições.
Possui conteúdo de pesquisas em diversas fontes. Trabalho completo, incluindo exemplos práticos: http://pt.scribd.com/doc/59138201/Trabalho-de-SO-Gerencia-de-Arquivos. Página do autor: http:about.me/raulkaio

[ Hits: 21.718 ]

Por: Raul Kaio em 24/08/2011


Introdução, Arquivos e suas características



1 - Introdução

Desde o início da computação houve a necessidade de guardar arquivos, dados, programas e etc. Hoje em dia, esses arquivos são parte importante da computação, são armazenados e recuperados facilmente graças à Gerencia de Arquivos. Essa ferramenta faz exatamente o que foi citado anteriormente, armazena os arquivos em um dispositivo não-volátil, para que as informações continuem a existir após o desligamento do computador.

O conceito de arquivo diz que este é um conjunto de informações armazenado em um dispositivo de armazenamento não-volátil e é bastante versátil, já que pode conter desde um simples texto em ASCII com alguns bytes de tamanho, até um vídeo com vários Gigas de tamanho.

Os dispositivos de armazenamento são organizados em hierarquias chamadas Diretórios. A organização física e lógica dos arquivos e diretórios em um dispositivo é chamada de Sistema de Arquivos, e é sobre ele que iremos falar aqui.

Existe um grande número de sistemas de arquivos, dentre os quais podem ser citados o NTFS(Windows), Ext2/Ext3/Ext4 (Linux), HPFS (MacOS), FFS (Solaris) e FAT (usado em pendrives USB, máquinas fotográficas digitais e leitores MP3), após uma introdução a arquivos, focaremos na parte de particionamento e diretórios nos sistemas Unix.

2 - Arquivos, seus atributos e características

Os arquivos tem atributos que identificam suas origens, seus tipo, os diferenciam dos demais e etc, essas características variam de acordo com os sistemas de arquivos, porém no geral esses atributos são:
  • Nome: nome do arquivo, é armazenado em uma string e utilizado para identificação pelo usuário;
  • Tipo: identifica o tipo de conteúdo do arquivo, há centenas de tipos de arquivos, os mais comuns são .pdf, .exe, .jpeg, .avi, .doc, .mp3, e etc. Os SA (Sistema de Arquivos) normalmente usam a extensão ao final do nome do arquivo;
  • Tamanho: mostra tamanho em bytes do arquivo;
  • Datas: data de criação, modificação, exclusão, são úteis para organização e localização;
  • Proprietário: em um sistema multi usuário mostra a qual conta pertence o arquivos;
  • Permissões de acesso: auxilia a característica anterior, o SA restringe as permissões a criação, modificação e exclusão de arquivos
  • Localização: guarda o local físico onde o arquivo está armazenado;
  • Etc: há ainda vários outros atributos como ocultar arquivos, indicar se é um arquivo de sistema, etc.
É claro que há SA que não comporta todas as informações que certos usuários podem precisar, nesse caso uma solução viável seria usar parte do nome para definir certas informações, como por exemplo trabalho_1.pdf, trabalho_2.pdf ou programa.exe, programa_v2.exe, e por aí vai.

2.1 - Operações com arquivos

A parte legal de SA's que podemos utilizar os arquivos, certo? Os arquivos são utilizados pelos usuários e também pelas aplicações, e como na informática (quase) tudo tem de ser previsto previamente, as ações também são limitadas.

A seguir, vos apresento o que é possível fazer com um arquivo:

  • Create: criar um arquivo significa alocar espaço para ele na memória, e definir os atributos, nome, tipo, etc;
  • Open: isso implica em uma chamada de sistema onde o SO verifica se a solicitação, localização do arquivo e permissões são válidas, caso forem, ele cria uma referencia na aplicação apontando para o arquivo;
  • Read: transfere dados presentes no arquivo para a memória;
  • Write: transfere dados da memória para o arquivo em disco, pode sobrescrever ou adicionar informações;
  • Get Attributes: solicita informações do arquivo necessárias à execução;
  • Set attributes: modifica atributos do arquivo;
  • Close: a aplicação informa ao SO que o uso do arquivo não é mais necessário e este libera o espaço da memória reservado ao arquivo;
  • Delete: remove o arquivo da memória e libera o espaço ocupado por ele;
  • Append: Adicionar arquivos apenas ao final do documento, comumente utilizado para adicionar arquivos a discos multisseção;
  • Seek: procura um ponto específico do arquivo.
Há também operações como copiar, mover, truncar, porém estas apenas derivam das principais. Um detalhe é que os sistemas antigos ofereciam acesso sequencial aos arquivos. Hoje em dia o acesso sequencial é utilizado apenas em fitas de backup, DVDs, Cds, etc.

2.2 - Ainda sobre arquivos...

Ainda falando de arquivos, há alguns tópicos a serem comentados.

2.2.1 - Formatos de arquivos

O sistema reconhece apenas alguns tipos de arquivos como executáveis binários e bibliotecas, os outros formatos são vistos por ele apenas como sequencias de bytes e precisam ser interpretados pelas aplicações.

Os formatos são definidos pelas aplicações que criaram os arquivos. Há várias extensões públicas comuns, porém os aplicativos podem criar extensões próprias. Como exemplo há as extensões comuns de imagem que são .jpeg, .gif, .jpg, porém há extensões como a .psd que é própria do Photoshop.

2.2.2 - Identificando o formato

A extensão informa o tipo provável do conteúdo daquele arquivo, no Unix há os magic numbers, ou números mágicos, que são alguns bytes no início do nome do arquivo para identificar o seu tipo.

Por exemplo um arquivo GIF tem um código ASCII "GIF89a" (47 49 46 38 39 61) ou "GIF87a" (47 49 38 37 61), já um PDF começa com um "%PDF" (em hexa 25 50 44 46).

2.2.3 - Especiais?

Os arquivos são tão versáteis que podem guardar de quase tudo dentro de si, os Unix usam arquivos para mapear dispositivos físicos; usá-los para consultar ou modificar informações internas do núcleo do SO; em seus pipes, os Unix compartilham arquivos entre processos para comunicação.
    Próxima página

Páginas do artigo
   1. Introdução, Arquivos e suas características
   2. Diretórios e Partições
Outros artigos deste autor

Sistemas Operacionais Online

Google Chrome OS

Leitura recomendada

Ativando suporte ao NTFS no RedHat9 sem recompilar o kernel

Criando discos virtuais em máquinas remotas

ZFS no GNU/Linux

Negação de serviço: Implementação, defesas e repercussões

Montando partições em memória

  
Comentários
[1] Comentário enviado por albfneto em 25/08/2011 - 19:21h

muito bom artigo. 10

[2] Comentário enviado por ricardoolonca em 30/08/2011 - 08:45h

Alguns pontos:

Só se usar gpt com partições maiores que 2Gb. Em partições menores não há nenhum motivo para usar gpt.

Hardlink e softlink, não ficou claro. Hardlink são duas entradas na mbr (inode) apontando para o mesmo lugar físico do disco, ou seja, para o mesmo arquivo. Isso pode ser usado para dar permissões diferentes par ao mesmo arquivo, ou permitir que dois usuários diferentes acessem o mesmo conteúdo. Hardlink só funciona na mesma partição. Apagar o arquivo original não apaga o hardlink. Softlink funciona como um atalho, ou seja, é um arquivo que aponta para outro arquivo. Eles podem estar em partições separadas, ou até mesmo em discos e máquinas separadas. Apagar o arquivo original torna o softlink inútil.

"Permissão de execução em pasta: permite entrar no diretório ou atravessá-lo". O que você quer dizer com atravessá-lo?

"ls -alias" onde alias é o seu nome de usuário." Essa frase está estranha. O "alias" não tem nada haver com o nome de usuário. Esse comando mostra os arquivos da pasta num formato detalhado, com suas permissões, donos, grupos, tamanhos, etc.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts