Sistemas de Arquivos Virtuais no Linux: Specfs, devfs, udev, tmpfs, devtmpfs, initramfs, initrd, cramfs, SquashFS, UnionFS, aufs, rootfs

 

 

Com certeza já nos deparamos com alguns desses sistemas de arquivos mencionados no título desse post.

É comum a expressão “tudo é arquivo no linux”. Então já é para se esperar que os dispositivos de armazenamentos também são configurados por meio de edição de arquivos de textos.

Quando conectamos um disco rígido ele será representado por um arquivo dentro da pasta /dev. Temos por exemplo os arquivos sda  vinculado ao primeiro disco(HD, SSD…), o arquivo sdb ao segundo disco etc.. Quanto mais discos for conectado mais arquivos dentro de /dev será criado, como sdc, sdd, sde.

Obs.: /dev vem de device(dispositivo).

Através desses arquivos podemos gerenciar os discos, colocando neles um sistema de arquivos.

Sistema de Arquivos

O Sistema de Arquivos ou filesystem é responsável por estruturar e  ditar a maneira como as informações(arquivos) serão armazenadas dentro o disco(HD, SSD..).

Sistema de Arquivos Virtuais

Dentro da pasta /dev há sistemas de arquivos que não estão vinculados a um dispositivo físico, como HD ou SSD. Esses Sistemas de Arquivos são conhecidos como   “Sistema de Arquivo Virtual(VFS Virtual File System)” ou também como  pseudo-sistemas de arquivos.

Os Sistemas de Arquivos Virtuais só passam a existir quando ligamos o computador. Quando o Sistema de Arquivo Virtual é iniciado ele  traz de volta as configurações feitas anteriormente.

Segue lista de alguns:

specfs: Significa Special FileSystem ou Sistema de Arquivos Especiais. É um sistema de arquivos usado para acessar arquivos de dispositivos especiais.

Esses arquivos de dispositivos são encontrados dentro da pasta /dev. Conforme mencionado acima, dev é uma abreviação para device(dispositivo).

Os arquivos de dispositivos relacionados characteres dentro de /dev usam o sistema de arquivos specfs

Esse sistema de arquivos é diferente de outros visto que ele não requer um ponto de montagem, isto é, não é montado. Mesmo assim o sistema operacional usa specfs mesmo sem estar montado. Mas specfs pode ser montado pelo usuário ao usar “mount -t specfs none /dev/streams

devfs: é sistema de arquivos virtual que gerencia dispositivos. Assim, ele é um gerenciador de dispositivos em formato de sistema de arquivos. devfs é semelhante ao specfs na maneira como funciona. devfs é muito usado pela maioria dos dispositivos dentro de /dev.

Muitos Sistemas Operacionais usam devfs; podemos citar MAC OS, BSD, Solaris. Muitos Unix e seus derivados.

Geralmente os Sistemas Operacionais coloca devfs no kernelspace. Todavia, linux usa  devfs dentro de um tipo misto de kernelspece com userspace. Uma coisa híbrida.

udev: é uma alternativa para devfs. E assim sendo, udev é também gerenciador de dispositivos.

É bom destacar que, enquanto devfs é um sistema de arquivos virtual, udev um daemon(programa). udev existe apenas dentro do userspace. Alguns derivados de udev é mdev e eudev.

tmpfs: significa temporary filesystem(sistema de arquivos tempário). É um  sistema de arquivos virtual usado para guardar arquivos temporários.  Todo o conteúdo desse sistema de arquivos é perdido ao desligar o sistema. Seu ponto de montagem é /tmp

Ele está dentro da memória ram e do userspace.

devtmpfs: é um devfs melhorado. O propósito de devtmpfs é acelerar o tempo de inicialização.

É mais parecido com tmpfs de que com devfs.

o ponto de montagem é /dev/

devtmpfs cria os arquivos dentro de /dev apenas dos dispositivos conectados no sistema local.

initrd: Initial Ramdisk(disco de ram?? inicial). Ele pode ser um sistema de arquivos temporário ou servir para armazenar um sistema operacional que é apenas executado sem ser instalado.

initramfs: O Initial Ram FileSystem(sistema de arquivos inicial) é a alternativa para initrd. É um sistema de arquivos comum usado na memória ram.

Quando você inicia um sistema Linux pelo pen drive, sem instalar, ele é iniciado de dentro da memória ram, mas precisamente, ás vezes, de dentro de initramfs.

Os sistemas operacionais que são executados sem necessidade de instalação também são conhecidos como live-cd.

cramfs: Significa Compressed Ram FileSystem(Sistema de Arquivos  Ram comprimidos). Comprimido/compactado significa reduzido.

Logicamente que cramfs fica dentro da memória ram.

cramfs é usando para armazenar Linux embarcado. Linux embarcado são Linux adaptado e executado dentro de aparelhos como tv, roteadores e multimídia de veículos.

cramfs é um sistema de arquivos apenas leitura.  O sistema linux dentro de cramfs só pode ser modificado após recriado durante o boot(início) do sistema.

lembrando que a memória ram é volátil, ou seja, ela é esvaziada ao desligar o computador, assim, todo sistema de arquivos que trabalhe dentro da memória ram deixa de existir. Não é diferente para cramfs.

SquashFS: Uma alternativa para o cramfs. Esse sistema de arquivos compacta os inodes ao invés das páginas como acontece com cramfs.

Ele é apenas leitura e recriado durante boot. Porém há exceções  que permitem aos usuários modificar uma live-cd linux. A live-CDs do Ubuntu, Arch e Fedora são exemplos que usam SquashFS.

UnionFS: Este é um sistema de arquivos especial que é montado com outros sistemas de arquivos. Um conceito chamado union-mount pode ser usado para montar dois sistemas de arquivos ao mesmo tempo, juntos e na mesma pasta(mount-point). Assim, esse sistema de arquivos podem ser vistos como se fosse apenas um. Em Live-CDs, SquashFS é “union-montado” com UnionFS. Isso faz com que SquashFS seja tenha escrita(seja modificado) mesmo sendo somente leitura( somente consulta).

aufs: Uma alternativa para UnionFS.

Versão 1 de aufs é praticamente outro UnionFS.

Versão 2 é mais avançado e conhecido como “Advanced multi-layered Unification FileSystem”  ou “Sistema de Arquivos avançado multi-camada“.

As Live-CDs do Slax e Knoppix sao dois exemplos que usam aufs.

aufs é supostamente mais rápido e melhor que UnionFS.

 

rootfs: esse termo é bem conhecido mas não dessa forma. Essa é raiz(root) do sistema de arquivos que pode ser /dev/sda0 em alguns sistemas(a depender do hardware). Então, quando falar de o root(raiz) de sistema de arquivos pode ser usando o termo rootfs também.

Em outras palavras, rootfs não é exatamente um sistema de arquivos separado ou especial. É apenas a raiz, ponto inicial, do sistema que pode conter qualquer sistema de arquivos que escolhermos.

 

Conclusão

Bom, aqui listamos apenas alguns sistemas de arquivos virtuais que podem ser vistos em Sistemas Unix e em seus derivados. Com esse texto dá para termos uma noção de do que é Sistema de Arquivos Virtual.

 

 

Fontes: opensource.com, linux.org, kernel.org, kernel.org, wikipedia.org

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *