Como descubro qual versão do driver do BtrFS estou usando?

1

Eu estava lendo alguns artigos BtrFS online. Às vezes eu vi declarações como

  

Não use versões do BtrFS anteriores a 0.20rc1.

Como posso descobrir qual versão está no meu Kernel?

    
por koloman 24.09.2015 / 10:10

1 resposta

2

Existem duas maneiras de implementar um sistema de arquivos no Linux:

quer mesclar o código no kernel, ou construí-lo como um aplicativo de espaço do usuário usando um framework "Filesystem in Userspace" (FUSE).

Sistemas de arquivos implementados no kernel têm melhor eficiência do que aqueles no topo do FUSE (mas essa diferença diminui com o tempo, à medida que o FUSE se torna mais e mais maduro).

O BTRFS é implementado apenas no kernel como um módulo do kernel chamado btrfs , então sua versão é strongmente acoplada à versão do kernel. E uma equipe de kernel BTRFS contribuiu com muito código genérico para o kernel no processo de implementação de seu FS. Normalmente você obteria informações de versão do módulo btrfs kernel usando o comando modinfo btrfs | grep -i version , mas no meu caso (Ubuntu 14.04) esse campo não existe para btrfs .

Sim, muitas coisas são implementadas no kernel. É por isso que o Linux é chamado de kernel monolítico . No GNU HURD, você teria o btrfs como um serviço separado (algo como "driver") se o GNU HURD estivesse pronto para produção.

Não é verdade que a versão do btrfs é igual à do btrfs-tools. Eles geralmente coincidem, mas não necessariamente precisam. (Houve um tempo em que o btrfs-tools fornecido com o Ubuntu estava um ano atrás da última versão compatível com o kernel). O Btrfs-tools está programado para ser compatível com versões anteriores, portanto, uma versão mais nova pode ser executada em kernels mais antigos, talvez com funcionalidade reduzida, se alguns recursos do btrfs ainda não estiverem presentes no kernel.

Mais uma vez, a versão do BTRFS está strongmente associada à versão do kernel durante a fase de desenvolvimento. Efetivamente não existe uma "versão do driver btfs" diferente de no kernel.btrfs git commit code commits. Ou qualquer outra versão do FS, exceto os sistemas de arquivos escritos no topo do FUSE.

    
por Adam Ryczkowski 30.09.2015 / 12:36