Suporte a doublespace no Linux


[Home] [Dissertação] [Biba] [Linux] [Conjugue] [br.ispell] [axw3] [uplink]

Não vou discutir aqui se o doublespace é ou não uma boa ferramenta, ou se deve ou não ser usado. O uso que faço dele é numa partição em que crio cópias de CDs. Por vezes alguém me empresta um CD de que eu preciso por mais tempo do que poderá ficar comigo. Para poder devolvê-lo mas continuar usando-o, faço uma cópia dele no winchester. Para tentar reduzir o consumo de disco, deixo-o comprimido com doublespace, e por se tratar de uma partição read-only, a chance de ocorrer desastres é pequena.

Um filesystem comprimido pode ser útil também no caso de devices de acesso lento, como zip drives paralelos, o que ocasionará um ganho significativo de desempenho. Para quem quiser experimentar, convém observar que que no DOS 6.22, o zip precisa ser reconhecido como disco fixo no procedimento de boot, e não instalado a posteriori através do GUEST.

(Note que há ferrramentas de compactação de filesystems nativos do Linux, assim o uso do doublespace pode ser restringido aos casos onde o DOS/WINDOWS necessita também usar a partição).

Se você não tem idéia de como funciona o doublespace, mas é versado no loopback device do Linux, vai ser fácil entender aquele. Trata-se da mesma funcionalidade, exceto pelo fato do loopback device não envolver compressão. Ambos criam a estrutura de um filesystem num arquivo, que passa a poder ser montado, sendo exatamente essa a terminologia que o DOS utiliza. Note que há três versões do doublespace, a original do DOS, o "drivespace" dos DOS que corrigiu alguns bugs do doublespace, e o drivespace 3 do windows 95 "plus", a única que suporta partições "grandes" (maiores do que 250 megabytes, se não me engano).

Exceto pelo fato de não conseguir descomprimir os arquivos comprimidos através de um dos métodos disponíveis no drivespace 3, o suporte a doublespace no Linux é pleno para leitura e escrita (o efeito prático dessa restrição é que a tentativa de leitura de um arquivo comprimido com esse método provocará um erro; trata-se no entanto de um evento raro, nunca vi acontecer, e mesmo que aconteça, não interfere com a possibilidade de ler/escrever quaisquer outros arquivos do filesystem).

O suporte a doublespace está disponível através de um patch no kernel:

  sunsite.unc.edu /pub/Linux/system/Filesystems/dosfs
  74 kb dmsdosfs-0.5.8.tgz

  ftp.uni-stuttgart.de /pub/systems/linux/local/system
  74 kb dmsdosfs-0.5.8.tgz

(a versão atual no momento em que escrevo isso é 0.8.0).

Aplicado o patch, o filesystem DOS que contém o arquivo que simula um filesystem comprimido passa a poder ser montado via tipo dmsdos:

  # mount -t dmsdos /dev/hda6 /mnt

E o arquivo que contém o filesystem comprimido (que costuma chamar-se drvspace.000), passa a figurar como um diretório para o Linux. Nesse diretório pode-se ler e escrever arquivos como em qualquer outro, com um eventual overhead de cpu causado pela compressão/descompressão.