Se você já usa o Linux há tempo suficiente, deve ter visto o termo “inodes”. É algo que aparecerá ocasionalmente, mas não afeta o que você está fazendo. Aqui vamos explicar o que é inodes e como funciona.
O que é Inodes?
Em uma biblioteca, todos os livros são organizados por gênero, nome do autor ou faixa etária do público. Se você deseja localizar um thriller de “Bobby Daniels”, você deve ir diretamente para a seção de suspense e começar a encontrar nomes de autores que começam com “B”. Assim como uma biblioteca, todos os arquivos em um sistema Linux são organizados para recuperação e uso eficientes. Inode é uma entidade que auxilia na organização de arquivos em um sistema Linux.
O que são metadados de arquivo?
Digamos que temos um arquivo chamado “sample.txt” contendo os dados “hello”.
Este arquivo possui alguns dados e informações relevantes a ele, como tamanho do arquivo, permissões, propriedade do usuário e do grupo, timestamps de criação / acesso / modificação, contagem de links, etc. Todas essas informações são coletivamente chamadas de metadados de arquivo.

O que são sistemas de arquivos?
Em um dispositivo de armazenamento como um disco rígido, uma partição é formatada como um sistema de arquivos antes de ser usada para armazenamento de arquivos. Um sistema de arquivos é o bibliotecário do disco rígido. Formalmente, é um conjunto de estruturas de dados e algoritmos que trabalham em conjunto para armazenar arquivos metodicamente na partição.
As partições em sistemas Linux são freqüentemente formatadas com EXT4. Outros sistemas de arquivos como B-Tree File System (BTRFS), Reiser File System, ZFS, etc. também estão disponíveis para uso.
Amarrando-os todos juntos
Inode é uma estrutura de dados em Ext4 que contém todos os metadados de um arquivo.

É claro que haveria vários arquivos em um sistema de arquivos. Como você adivinhou, cada arquivo teria seu próprio inode. Para identificar exclusivamente os inodes, cada inode é numerado.
Como seria a numeração de inode?
Os números de inode em um sistema de arquivos começam em 1. Os primeiros dez inodes são reservados para uso do sistema. Os arquivos do usuário têm seus metadados armazenados no inode 11. Todos os inodes são ordenadamente empilhados juntos em uma tabela de inode.

Uma entrada na Tabela Inode teria 256 bytes de tamanho. Para um arquivo, o Linux organiza de forma inteligente todos os metadados em 256 bytes! Além disso, um inode para um arquivo também teria informações sobre onde os dados do arquivo estão localizados no sistema de arquivos. Lembre-se – apenas os metadados do arquivo são armazenados no inode.
O número total de inodes em um sistema de arquivos depende do espaço disponível e do número de arquivos que podem ser armazenados na partição.
Como os Inodes são alocados e desalocados?
Conforme o usuário adiciona arquivos a um sistema de arquivos formatado recentemente, inodes a partir de 11 são alocados para conter os metadados do arquivo.
Existe outra estrutura de dados chamada “Bitmap de Inode” para rastrear o status de alocação de um inode. É uma coleção de bits que funciona como um mapa.
Vamos considerar oito bits no bitmap de inode para denotar o status de alocação dos inodes 11 a 18, conforme mostrado na tabela abaixo. Um valor de 1 no bitmap significa que o inode está alocado, ou seja, usado para conter os metadados de um arquivo. Um valor de 0 no bitmap significa que o inode não está em uso no momento. Aqui, podemos ver que o inode 17 está em uso.

Caso o arquivo que possui seus metadados no inode 17 seja deletado, então seu status de bitmap correspondente passaria a 0, indicando que está livre para ser utilizado por outro arquivo.

Como visualizar o número do Inode de um arquivo?
Existem duas maneiras de fazer isso.
O primeiro está usando ls
comando com –i
switch, seguido pelo nome de um arquivo. O primeiro campo na saída é o número do inode que contém os metadados de “sample.txt”.

A mesma informação pode ser obtida usando o stat
comando seguido do nome do arquivo.

Para ver o número total de inodes disponíveis para uma partição, df
comando pode ser usado com -i
interruptor.

Na partição “/ dev / sda4”, 404754480 inodes estão disponíveis para uso, dos quais apenas 359044 inodes são usados.
Conclusão
Por natureza, a Tabela Inode empilha os metadados de todos os arquivos meticulosamente em inodes, junto com informações sobre a localização dos dados do arquivo. Tudo o que discutimos sobre inodes Linux é simplesmente a ponta do iceberg. Para obter mais informações sobre seu funcionamento interno, você pode dar uma olhada em esta ligação.