O kernel Linux para o sistema de arquivos Ext4 inclui suporte para operação que não diferencia maiúsculas de minúsculas

Ted Ts'o, autor dos sistemas de arquivos ext2/ext3/ext4, aceitou o para o próximo branch Linux, com base no qual o lançamento do kernel Linux 5.2 será formado, um conjunto alterar, implementando suporte para operações que não diferenciam maiúsculas de minúsculas no sistema de arquivos Ext4. Os patches também adicionam suporte para caracteres UTF-8 em nomes de arquivos.

O modo operacional sem distinção entre maiúsculas e minúsculas é opcionalmente habilitado em relação a diretórios individuais usando o novo atributo “+F” (EXT4_CASEFOLD_FL). Quando este atributo é definido em um diretório, todas as operações com arquivos e subdiretórios dentro dele serão realizadas sem levar em consideração a caixa dos caracteres, inclusive a caixa será ignorada ao pesquisar e abrir arquivos (por exemplo, os arquivos Test.txt, test.txt e test.TXT em tais diretórios serão considerados iguais). Por padrão, com exceção dos diretórios com o atributo “+F”, o sistema de arquivos continua diferenciando maiúsculas de minúsculas. Para controlar a inclusão do modo que não diferencia maiúsculas de minúsculas, é oferecido um conjunto modificado de utilitários e2fsprogs.

Os patches foram elaborados por Gabriel Krisman Bertazi, funcionário da Collabora, e aceitos com sétimo tentativas depois três anos desenvolvimento e eliminação de comentários. A implementação não faz alterações no formato de armazenamento em disco e funciona apenas no nível de alteração da lógica de comparação de nomes na função ext4_lookup() e substituição do hash na estrutura dcache (Directory Name Lookup Cache). O valor do atributo "+F" é armazenado no inode de diretórios individuais e é propagado para todos os subarquivos e subdiretórios. A informação de codificação é armazenada no superbloco.

Para evitar colisões com nomes de arquivos existentes, o atributo “+F” só pode ser definido em diretórios vazios em sistemas de arquivos nos quais o suporte Unicode em nomes de arquivos e diretórios está habilitado na fase de montagem. Os nomes dos elementos do diretório para os quais o atributo “+F” está ativado são automaticamente convertidos para letras minúsculas e refletidos nesta forma no dcache, mas são salvos no disco na forma inicialmente especificada pelo usuário, ou seja, Apesar do processamento dos nomes independente da caixa, os nomes são exibidos e salvos sem perder informações sobre a caixa dos caracteres (mas o sistema não permitirá criar um nome de arquivo com os mesmos caracteres, mas em caixa diferente).

Fonte: opennet.ru

Adicionar um comentário