Eu sei que alguns sistemas de arquivos se apresentam através do Fuse e fiquei pensando sobre os prós e os contras dessa abordagem.
fonte
Eu sei que alguns sistemas de arquivos se apresentam através do Fuse e fiquei pensando sobre os prós e os contras dessa abordagem.
Não sou positivo se você quer dizer sistemas de arquivos reais em disco ou qualquer sistema de arquivos. Nunca vi um sistema de arquivos normal usar o FUSE, embora suponha que seja possível; O principal benefício do FUSE é que ele permite apresentar aos aplicativos (ou ao usuário) algo que se parece com um sistema de arquivos, mas realmente chama funções dentro do seu aplicativo quando o usuário tenta fazer coisas como listar os arquivos em um diretório ou criar um novo Arquivo. O Plan9 é conhecido por tentar tornar tudo acessível através do sistema de arquivos, e o /proc
pseudo-sistema de arquivos vem deles; O FUSE é uma maneira de os aplicativos seguirem facilmente esse padrão
Por exemplo, aqui está uma captura de tela de um sistema de arquivos FUSE (muito inexpressivo) que dá acesso aos dados do site SE:
Naturalmente, nenhum desses arquivos realmente existe; quando ls
solicitado, a lista de arquivos no diretório FUSE chamou uma função no meu programa que fez uma solicitação de API para este site para carregar informações sobre o usuário 73 (eu); cat
tentando ler display_name
e website_url
chamou mais funções que retornaram os dados em cache da memória, sem nada realmente existente no disco
Os sistemas de arquivos Unix são tradicionalmente implementados no kernel. O FUSE permite que os sistemas de arquivos sejam implementados por um programa do usuário.
Os sistemas de arquivos no kernel são mais adequados para os principais sistemas de arquivos para programas e dados:
Os sistemas de arquivos FUSE têm outras vantagens, principalmente em torno de sua flexibilidade:
fonte
O FUSE não é realmente um sistema de arquivos em si, mas um código que permite que os sistemas de arquivos sejam implementados como processos em vez de módulos do kernel.
Um dos benefícios mais úteis do FUSE é permitir que o código GPL "se misture" com um código não GPL. Por exemplo, Gnu / Linux e ZFS http://zfs-fuse.net/ ou NTFS-3G em muitos sistemas operacionais, como o OpenSolaris e o * BSD http://www.tuxera.com/community/ntfs-3g-download/
A principal desvantagem é o impacto no desempenho comparado aos drivers nativos (kernel).
fonte