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: 24.417 ]

Por: Raul Kaio em 24/08/2011


Diretórios e Partições



3 - Diretórios

Indo ao foco da parte principal, conforme a computação evoluía era necessário se utilizar de arquivos, com isso foi surgindo a ideia de diretórios e partições.

A partição é uma divisão lógica do HD, antigamente o tamanho máximo era de 2TB e o numero máximo de partições era de 4, ela era criada por uma estrutura chamada MBR (Master Boot Record). Hoje em dia as partições são feitas por GPT (GUID Partition Table) e suporta até 128 partições e com até 264, é uma boa solução na hora de formatar o SO, porém criar várias partições acaba causando uma lentidão no sistema.

Já os diretórios são mais simples, são as conhecidas pastas em nível de usuário, porém em nível de sistema são arquivos com atributos especiais.

3.1 - Tipos de diretórios

Inicialmente era usado apenas um diretório com todos os arquivos dos usuários (diretório linear), porém na multiprogramação ele rapidamente poderia se tornar inoperante se um ou mais usuários utilizassem o mesmo nome de arquivo, além do mais era desorganizado e nada prático.

Conforme a necessidades de vários arquivos crescia, crescia também a necessidade de organizá-los, dessa forma surgiu o segundo modelo de diretório (diretório linear em 2 níveis), onde cada usuário tem um diretório próprio no diretório raiz, isso resolveu parcialmente o problema dos nomes dos arquivos, porém ainda não resolvia o problema da organização. Com isso surgiu a próxima ideia que é um diretório em formato de árvore, o qual resolveu os problemas de desorganização e colisão de nomes.

Hoje os diretórios em Unix são organizados em uma estrutura chamada 'nó-i' (em inglês inode) onde eles funcionam como uma árvore e cada nó-i armazena informações sobre os arquivos e diretórios como nome, dono/grupo, permissões, datas de criação e modificação, e é claro o ponteiro para o arquivo em si. De modo geral, o nó-i é a identidade de um arquivo ou diretório, ele é que torna cada diretório único.

Antes de abrir um diretório, o kernel abre o seu nó-i e verifica as permissões que o usuário tem sobre o diretório, caso ele não tenha as devidas permissões, o usuário obtém como retorno a famosa frase "Permission denied".

3.2 - Organização

A organização de diretórios é feita de forma que cada diretório contém informações próprias e relativas ao seu nome.

O diretório raiz é apenas o '/' chamado de root, um subdiretório do root é o '/etc' que contém arquivos de informação do sistema, o '/bin' contém arquivos executáveis, o '/home' contém arquivos do usuário e etc. Para interligar esses diretórios são utilizados os links que apontam para um diretório ou arquivo, estes links são grafos acíclicos, ou seja, ele nunca vai criar um círculo de ponteiros, ele sempre aponta pra frente ou retorna.

Os links são divididos em Soft Link (link simbólico) e Hard Link (link físico), o Soft fornece o caminho do arquivo de forma lógica, já o Hard mostra de forma física.

Há também diretório organizado em grafo acíclico. Este permite que um arquivo ou mesmo um diretório seja apontado por múltiplas entradas presentes em diferentes diretórios, ou seja, que tal arquivo ou diretório simultaneamente presentes como conteúdo de vários diretórios ao mesmo tempo, permitindo seu compartilhamento.

3.3 - Controles de acesso

Como citado anteriormente, nos sistemas multiprogramados surgiu a necessidade de limitar o acesso e alteração a certos usuários, essa necessidade de compartilhamento se aplica também aos diretórios, porém aqui ela é feita de forma diferente.

As permissões definidas para diretórios são:
  • Leitura : permite acesso ao diretório para listar o conteúdo do mesmo;
  • Escrita : permite alterar o conteúdo do diretório, criar, modificar ou apagar arquivos;
  • Execução : permite entrar no diretório ou atravessá-lo.
Para consultar permissões de diretórios é usado o comando "ls -alias" onde alias é o seu nome de usuário.

4 - Partições

Partições são uma representação de disco rígido, ou seja uma partição é um disco lógico. Cada partição tem seu próprio sistema de arquivos, podendo ter seu próprio sistema operacional. Todas as informações necessárias para acessar os arquivos daquela partição estão contidas nela mesma.

Da mesma forma que um disco rígido pode sofrer uma formatação, uma partição pode sofrer uma formatação lógica que consiste em inicializar as estruturas dados que a compõem.

Há uma parte no disco reservada para informar dados da partição como tamanho, uso no disco, delimitações, e etc. Falaremos sobre 2 tipos dessas estruturas, o MBR e o GPT.

4.1 - MBR

A MBR (Master Boot Record) foi popularizada pela IBM, é baseada em BIOS. O BIOS é parte integrante de qualquer computador, e atua entre o momento que o computador é ligado até o SO (Sistema Operacional) tomar o controle.

Ela consiste em uma sequencia de 512 bytes localizada no primeiro setor do HD, contém informações sobre tipo de formatação, inicio e fim da partição, espaço utilizado no HD. Se houver um sistema operacional instalado, os seus dados de inicialização são gravados na MBR, e assim são usados 446 bytes pra informações de boot e 64 bytes guardam a tabela de partição.

Porém o ponto ruim da MBR é que nesses 64 bytes destinados a partições, serão usados 16 bytes para cada partição, ou seja, o numero máximo de partições será 4 (16x4=64) e também há a limitação de tamanho máximo da partição que é 2TB.

Com o passar do tempo e a evolução dessa tecnologia, foi criada a partição estendida que dentro dos mesmo 16 bytes consegue endereçar 63 partições lógicas. Mas tudo no Linux as coisas são um pouquinho diferentes, pois ele não enxerga partições como no Windows que as chama de 'C:' e 'D:', mas o Linux as chama pelo nome, alguns diretórios do Linux são montados em partições diferentes e ele tem a vantagem de compatibilidade com diversas partições.

Caso os 64 bytes da tabela sejam sobrescritos ou danificados, você perde o acesso às partições e dados contidos no HD, e é isso o que acontece numa formatação, o HD parece vazio. Ao instalar 2 ou mais SO no mesmo HD é instalado um boot manager na MBR, que sempre irá aparecer na inicialização perguntando qual SO você deseja iniciar.

4.2 - GPT

Já a GPT (Guide Partition Table) foi criada pela Intel e mantida por um consórcio de empresas que inclui Intel, IBM, Apple, Microsoft, dentre outras, e o seu objetivo é substituir o BIOS que foi criado a 25 anos e permanece o mesmo.

Ela foi escrita em linguagem C, enquanto o BIOS foi escrito em assembly, dentre outras coisas a GPT possibilita a redundância, verificação de integridade, um grande numero de partições, e os campos de endereçamento e tamanho de partições passam a ter 64 bits, ou 8 bytes, o que permite partições com até 8.589.934.592 TiB (8 x 270 bytes ou 8 ZiB).

O recurso já é usado pela Apple em todos os seus Macs baseados em Intel, ele pode reduzir o tempo de inicialização que é de 25 a 30 segundos, para algo de poucos segundos. Outra diferença importante é que, como ela foi escrita em blocos de linguagem C, é muito mais fácil atualizá-la.

Além de tudo isso, ela também possui uma interface gráfica, permitindo o uso do mouse para alterar as configurações de hardware do sistema, e é possível incluir outras funções como acesso direto ao drive de CD/DVD para execução de músicas e vídeos, acesso à internet, a rede e pastas específicas nas unidades de armazenamento locais, uso de messengers, browsers, games e outras aplicações, desde que os codecs/softwares e drivers necessários estejam inclusos na EFI.

Hoje temos no mercado algumas placas-mãe da MSI, dotadas com essa tecnologia e que trazem algumas dessas funcionalidades. As EFI podem ser carregadas a partir de qualquer dispositivo de armazenamento não volátil, e não é necessário ter uma VGA para carregar a EFI, diferentemente do BIOS.

4.3 - Ainda sobre partições

Há 3 tipos de partições, as primárias, as estendias e as lógicas. As primárias possuem sistema de arquivos próprio, todo SO tem pelo menos uma partição primária. As estendidas abrigam partições lógicas, ela terá pelo menos uma partição lógica.

As partições primárias são chamas pelo sistema de sda1, caso hajam mais partições primárias, elas poderão se chamar sda2, sda3 e sda4, porém o mais comum é criar uma partição primária, e as demais serão partições lógicas dentro de uma estendida. As partições estendidas são chamadas de sda5 em diante, mesmo que as sda2, 3 ou 4 não existam.

Para montar uma partição no Linux se usa o comando "mount -t [tipo] [caminho da pasta]", exemplo:

# mount -t vfat /home

Cada partição reserva um código que qualifica o seu tipo. No Linux, o código 0x82 para swap e 0x83 para 'native' Linux (native Linux é hoje em dia o ext2 para quase todas as distribuições). Quando você vai formatar a sua partição, é requisitado o tamanho que você quer para cada inode. Uma tabela de inodes é criada quando você formata a sua partição.

5 - Bibliografia

Página anterior    

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

Google Chrome OS

Sistemas Operacionais Online

Leitura recomendada

Osiris - Integridade do sistema de arquivos

Trabalhando com boot duplo ou múltiplo: estação para testes de sistemas operacionais

Recuperando discos danificados com o myrescue

Arquivos duplicados? fdupes neles!

Recuperando arquivos em um Windows corrompido com Linux

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts