sistema de arquivos do linux

Started by insanity, 13 de March , 2006, 07:48:32 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

insanity

ins4n!tY "keep it simple, stupid"

O sistema de arquivos no linux é semelhante a uma arvoré de cabeça para baixo, começando pelo diretorio

raiz "/" e a estrutura de diretorio abaixo.

-------------------------------------------------------------------------------------------------------------

/
Diretorio raiz do sistema de arquivos.

/boot
Arquivos nessesarios para inicialização do sistema.

/tmp
arquivos temporarios

/bin
Arquivos executaveis de comandos essenciais.

/sbin
Arquivos relacionados diretamente ao sistema. Normalmente só o super usuario (root) tem acesso aos arquivos.

/etc
Arquivos de configuraçoes do sistema.

/home
Onde as pastas locais dos usuarios.

/lib
Arquivos de bibliotecas essenciais ao sistema ultizadas pelos programas em /bin.

/proc
Informaçoes do kernel,dos processos e interrupçoes da maquina.

/root
Pasta local do super usuario (root).

/var
Pasta onde sao guardadas informaçoes variaveis sobre o sistema.

/usr
Arquivos pertencentes aos usuarios ex. Documentaçao do sistema, e outros arquivos.

/dev
Dispositivos do sistema.

/mnt
Ponto de montagem de dispositivos na maquina e dispositivos de rede.


Cloudy

Hmmm, eu achei que vc fosse falar sobre os sistemas de arquivos mesmo, ext3, ext2, etc.

...by Cloudy
"You have to be trusted by the people tou lied to, so when they turn their back on you, you have the chance to the put the knife in." (Roger Waters)

...by Cloudy

Anonymous

Ele deu é uma noção da árvore de diretórios do Linux...
Mas legal, é bom para alguns newbies em linux terem uma noção...
Mas faltou o sbin, que é aonde ficam os executáveis que só root pode executar

insanity

QuoteHmmm, eu achei que vc fosse falar sobre os sistemas de arquivos mesmo, ext3, ext2, etc.

...by Cloudy

O tempo e curto só deu para falar só isso .

sem mais

nibbles

pra complementar então...

"Sistema EXT2


O EXT2 é o sistema de arquivos utilizado na grande maioria das distribuições Linux. Na verdade, o EXT2 já está de certa forma ultrapassado, pois já existe um sucessor, o EXT3, que veremos com detalhes mais adiante. Apesar das vantagens, ainda não se sabe se o EXT3 realmente virá a substituir o EXT2.

O sistema de arquivos do Linux passou por uma grande evolução desde sua aparição. Na verdade, nos estágios primários de desenvolvimento, o Linux utilizava um sistema de arquivos bem mais antigo, o Minix filesytem. O Minix é um mini Unix, que Linux Torvalds usou como base nos estágio primários do desenvolvimento do Linux. Mas, o Minix filesytem possuía várias limitações, mesmo para a época. Os endereços dos blocos de dados tinham apenas 16 bits, o que permitia criar partições de no máximo 64 megabytes. Além disso, o sistema não permitia nomes de arquivos com mais de 14 caracteres. Não é de se estranhar que em pouco tempo o Linux ganharia seu sistema de arquivos próprio, o Extended File System, ou simplesmente EXT, que ficou pronto em Abril de 92 a tempo de ser incluído no Kernel 0.96c.

Nesta primeira encarnação, o EXT permitia a criação de partições de até 2 GB e suportava nomes de arquivos com até 255 caracteres. Foi um grande avanço, mas o sistema ainda estava muito longe de ser perfeito. Logo começariam a aparecer no mercado HDs com mais de 2 GB e o sistema não tinha um bom desempenho, além da fragmentação dos arquivos ser quase tão grande quanto no sistema FAT. Em resposta a estes problemas, surgiu em Janeiro de 93, o EXT2 que finalmente viria a tornar-se o sistema de arquivos definitivo para o Linux.

O EXT2 trouxe o suporte a partições de até 4 Terabytes, manteve o suporte a nomes de arquivos com até 255 caracteres, além de vários outros recursos, que veremos a seguir. Uma coisa interessante é que no Linux os arquivos não precisam necessariamente ter uma extensão. É claro, possível ter extensões como .ps, .gif, etc. de fato, a maioria dos programas gera arquivos com extensões, como no Windows. A diferença é que no Linux, as extensões são apenas parte do nome do arquivo, não um item obrigatório. Por este motivo, é possível criar arquivos com vários caracteres após o ponto, ou mesmo não usar ponto algum. No Linux, o mais importante são os atributos do arquivo, são eles que fazem com que o arquivo seja executável ou não por exemplo. Isto é mais seguro e traz uma flexibilidade maior, apesar de ser um pouco confuso no início.


VFS


O Linux é provavelmente o sistema Operacional que suporta um maior número de sistemas de arquivos diferentes. Além do EXT2, EXT, Minix e Xia, são suportados os sistemas FAT 16 e FAT 32 do Windows, o HPFS do OS/2 além de vários outros sistemas como o proc, smb, ncp, iso9660, sysv, affs e ufs.

O segredo para toda esta versatilidade é o uso do VFS ou "Virtual Filesystem", um divisor de águas entre o sistema de arquivos e o Kernel e programas. A função do VFS é assumir toda a parte administrativa, traduzindo via software, todos os detalhes e estruturas do sistema de arquivos e entregando apenas os dados ao Kernel, que por sua vez, os entrega aos programas.

Graças ao VFS, o Linux pode rodar em qualquer um dos sistemas de arquivos suportados. É por isso que existem várias distribuições do Linux que podem ser instaladas em partições FAT 16 ou FAT 32 (como o Winlinux, que pode ser instalado numa pasta da partição Windows) e até mesmo inicializar direto do CD-ROM, sem a necessidade de instalar o sistema (neste caso, apenas para fins educativos ou para experimentar o sistema, já que não é possível salvar arquivos, entre várias outras limitações).

Mas claro, também existem várias desvantagens. Ao ser instalado numa partição FAT 32, o Linux ficará muito mais lento, pois o VFS terá que emular muitas estruturas que não existem neste sistema.


Suporte a NTFS


O suporte a NFTS ainda está sendo implementado no Linux. Mesmo o Kernel 2.4.9, que enquanto escrevo é a última versão estável, permite acesso apenas de leitura. Isto significa que você pode instalar uma distribuição do Linux e acessar um HD formatado em NTFS apartir dela, mas poderá apenas ler os dados, nada de alterar ou gravar novos arquivos. Por isso que so é possível instalar o Winlinux caso seu HD esteja formatado em FAT 16 ou FAT 32. Como o Winlinux é instalado na mesma partição do Windows, ele precisa ter acesso de leitura e escrita.

Existe um projeto para acrescentar suporte completo ao NTFS, o Linux-ntfs. Você pode visitar a página oficial em: http://sourceforge.net/projects/linux-ntfs/. Já existe uma versão estável, mas o programa ainda não está completamente desenvolvido.

Além do sistema NTFS ser bastante complexo, ele é proprietário, o que significa que a única forma de desenvolver um driver para acessa-lo é através de engenharia reversa, um processo bastante trabalhoso. Mas, pessoalmente eu acredito que não demore muito para que consigam acrescentar suporte completo no próprio kernel, afinal o NTFS é o sistema de arquivos nativo do Windows 2000 e do XP, o que significa que será cada vez mais usado.

Um suporte completo a ele faz muita falta para quem mantém o Linux e o Windows 2000 em dual boot, já que o Windows 2000 não enxerga partições Linux e o Linux consegue apenas ler, mas não gravar dados na partição do Windows. No final das contas, o usuário acaba sendo obrigado a ou instalar o W2K numa partição Fat 32, ou criar uma terceira partição formatada no sistema FAT para poder trocar facilmente arquivos entre os dois sistemas.


Estruturas do EXT2


Como disse, tanto o NTFS, quando o EXT2 utilizam estruturas muito diferentes (e até certo ponto bem mais complexas) que as usadas no sistema FAT. Agora que já estudamos os sistemas FAT 16, FAT 32 e NTFS usados pelo Windows, chegou a hora de conhecer um pouco mais sobre o sistema usado no Linux.

Boot block : É onde tudo começa, pois é aqui que são gravadas as informações necessárias para inicializar o sistema

Inodes: Os inodes armazenam informações sobre cada arquivo armazenado. A função dos inodes é muito semelhante às entradas no MFT do sistema NTFS. Cada inode armazena os detalhes sobre um determinado arquivo, incluindo o tipo de arquivo, permissões de acesso, identificação do(s) usuário (s) dono(s) do(s) arquivo(s), data em que foi criado e modificado pela última vez, tamanho e, finalmente, ponteiros para os blocos de dados onde o arquivo está armazenado. Ao ler qualquer arquivo, o VFS lê primeiro o inode correspondente, para depois chegar ao arquivo.

Diretórios: No EXT2 os diretórios são tipos especiais de arquivos, que armazenam uma lista de todos os arquivos e subdirectórios subordinados a ele. Nesta tabela são armazenados apenas os nomes e os inodes que representam cada um.

Links: Este é um recurso bastante versátil permitido pelo EXT2. Estes links funcionam de uma maneira muito parecida com os links usados nas páginas Web. Cada link pode apontar para um arquivo ou diretório qualquer. Ao acessar o link, você automaticamente acessa o destino.

Você pode por exemplo, criar um link "CD" dentro do diretório raiz para acessar o CD-ROM. Ao digitar "cd /root/cd" você verá os arquivos do CD-ROM.

Na verdade, os links nada mais são do que inodes que apontam para o arquivo ou diretório em questão. Ao abrir o link, o VFS lê as instruções e cai direto nos setores ocupados pelo arquivo.

Para criar um link simbólico, use o comando ln. Para criar o link CD, dentro do diretório raiz, apontando para o CD-ROM por exemplo, o comando seria ln -s /mnt/cdrom /CD

A estrutura de diretórios do Linux


O Linux usa uma estrutura de diretórios muito particular. Uma árvore de diretórios que abrange simplesmente tudo o que existe no sistema, desde os arquivos que estão na partição onde o sistema foi instalado, até outros HDs, CD-ROM e, como se não bastasse, todos os dispositivos de hardware, incluindo o modem, impressora, etc. Quando um programa "salva" arquivo no diretório da impressora por exemplo, ele são impressos.

Os dispositivos ficam dentro da pasta /dev. O drive de disquetes por exemplo, aparece como /dev/fd0. O primeiro disco rígido instalado na máquina aparece como /dev/hda, o segundo como /dev/hdb e assim por diante.

As partições aparecem com /dev/hdaX, onde o X é um número que representa a partição. Por exemplo /dev/hda1 mapeia a primeira partição do primeiro disco rígido instalado.

A vantagem neste caso é que você pode montar as partições nos diretórios que quiser, ou criar links simbólicos apontando para elas. Isso adiciona uma versatilidade muito grande, apesar de ser um pouco confuso e até mesmo trabalhoso no início.

Caso por exemplo, você tenha dividido o HD em duas partições, com o Windows instalado a primeira, formatada em FAT 32 e o Linux instalado na segunda, basta montar a partição Windows para ter acesso a todos os arquivos.

Caso você deseje montar a partição no diretório /win por exemplo, use o comando:

mount /dev/hda1 /win -t vfat

Este comando diz que você deseja montar a partição primária do primeiro HD (hda1) no diretório /win, ativando o suporte aos nomes de arquivos longos usados pelo Windows 95/98.


EXT3


O EXT3 é uma evolução do sistema atual, que apesar de não representar um avanço tão grande quanto foi o EXT2 sobre o EXT, traz alguns recursos importantes.

O mais importante é uma melhora no sistema de tolerância a falhas. No EXT3 o sistema mantém um "diário" de todas as operações realizadas. Quando houver qualquer falha, um reset ou travamento enquanto sistema está montado, o sistema consulta as últimas entradas do diário, para ver exatamente em qual ponto houve a falha e corrigir o problema automaticamente, em poucos segundos.

No EXT2, sempre que há uma falha, o sistema roda o e2fsck, um primo do scandisk, que verifica inode por inode do sistema de arquivos, em busca de erros. Este teste demora vários minutos, além de nem sempre conseguir evitar a perda de alguns arquivos.

Existe a opção de configurar as entradas no diário para aumentar a velocidade de acesso, mas em troca sacrificando um pouco da confiabilidade em caso de falhas, ou aumentar a tolerância a falhas, em troca de uma pequena perda de desempenho.

A Red Hat anunciou que a próxima versão da sua distro usará o EXT3 como sistema de arquivos defaut. Será possível converter a partição para EXT3, sem perda de dados, durante a instalação, ou através de um utilitário do sistema."

Fonte: Manual do Hardware Completo
Autor: Morimoto

tem o livro lá no www.guiadohardware.net

^^



"A diversão do inteligente é se fingir de burro para aquele que se finge de inteligente."
"ENGENHARIA SOCIAL. Porque não existe patch para a ignorância humana."

rodweb