A Linux File System é uma coleção estruturada de arquivos em uma unidade de disco ou partição. Uma partição é um segmento de memória e contém alguns dados específicos. Na nossa máquina, pode haver várias partições da memória. Geralmente, cada partição contém um sistema de arquivos.
O sistema de computador de propósito geral precisa armazenar dados sistematicamente para que possamos facilmente acessar os arquivos em menos tempo. Ele armazena os dados em discos rígidos (HDD) ou algum tipo de armazenamento equivalente. Pode haver razões abaixo para manter o sistema de arquivos:
- Principalmente o computador guarda os dados no armazenamento da RAM; pode perder os dados se for desligado. No entanto, existe uma RAM não volátil (Flash RAM e SSD) que está disponível para manter os dados após a interrupção de energia.
- O armazenamento de dados é preferível em discos rígidos em comparação com a RAM padrão, pois a RAM custa mais do que o espaço em disco. Os custos dos discos rígidos estão diminuindo gradualmente em comparação com a RAM.
O sistema de arquivo Linux contém as seguintes seções:
- O diretório raiz (/)
- Um formato específico de armazenamento de dados (EXT3, EXT4, BTRFS, XFS e assim por diante)
- Uma partição ou volume lógico com um sistema de arquivo particular.
O que é o sistema de arquivo Linux?
O sistema de arquivo Linux é geralmente uma camada embutida de um sistema operacional Linux usado para lidar com a gestão de dados do armazenamento. Ele ajuda a organizar o arquivo no armazenamento do disco. Ele gerencia o nome do arquivo, tamanho do arquivo, data de criação e muito mais informações sobre um arquivo.
Se tivermos um formato de ficheiro não suportado no nosso sistema de ficheiros, podemos descarregar software para lidar com ele.
Linux File System Structure
Linux file system has a hierarchal file structure as it contains a root directory and its subdirectories. Todos os outros diretórios podem ser acessados a partir do diretório raiz. Uma partição normalmente tem apenas um sistema de arquivos, mas pode ter mais de um sistema de arquivos.
Um sistema de arquivos é projetado de forma que possa gerenciar e fornecer espaço para dados de armazenamento não volátil. Todos os sistemas de arquivo requerem um namespace que é uma metodologia organizacional e de nomenclatura. O namespace define o processo de nomeação, o comprimento do nome do arquivo ou um subconjunto de caracteres que podem ser usados para o nome do arquivo. Ele também define a estrutura lógica dos arquivos em um segmento de memória, como o uso de diretórios para organizar os arquivos específicos. Uma vez descrito um namespace, deve ser definida uma descrição Metadata para aquele ficheiro em particular.
A estrutura de dados necessita de suportar uma estrutura hierárquica de directórios; esta estrutura é utilizada para descrever o espaço disponível e utilizado em disco para um determinado bloco. Ela também tem os outros detalhes sobre os arquivos, como tamanho do arquivo, data & hora de criação, atualização e última modificação.
Ainda disso, ela armazena informações avançadas sobre a seção do disco, como partições e volumes.
Os dados avançados e as estruturas que ela representa contêm as informações sobre o sistema de arquivos armazenados na unidade; ela é distinta e independente dos metadados do sistema de arquivos.
O sistema de arquivos do Linux contém a arquitetura de implementação de software do sistema de arquivos em duas partes. Considere a imagem abaixo:
O sistema de arquivos requer uma API (Application programming interface) para acessar as chamadas de função para interagir com os componentes do sistema de arquivos, como arquivos e diretórios. A API facilita tarefas como a criação, exclusão e cópia dos arquivos. Ela facilita um algoritmo que define a disposição dos arquivos em um sistema de arquivos.
As duas primeiras partes de um determinado sistema de arquivos juntas chamadas de um sistema de arquivos virtual Linux. Ele fornece um único conjunto de comandos para o kernel e desenvolvedores acessarem o sistema de arquivos. Este sistema de arquivo virtual requer o driver específico do sistema para dar uma interface para o sistema de arquivo.
Linux File System Features
No Linux, o sistema de arquivo cria uma estrutura em árvore. Todos os arquivos são organizados como uma árvore e seus ramos. O diretório mais alto chama-se diretório raiz (/). Todos os outros directórios no Linux podem ser acedidos a partir do directório raiz.
Algumas características chave do sistema de ficheiros Linux são as seguintes:
- Especificando caminhos: Linux não usa a barra invertida (\) para separar os componentes; ele usa a barra de avanço (/) como uma alternativa. Por exemplo, como no Windows, os dados podem ser armazenados em C:\ Os Meus Documentos\ Trabalho, enquanto que, no Linux, seriam armazenados em /home/ O Meu Documento/ Trabalho.
- Partição, Directórios e Unidades: O Linux não usa letras de drive para organizar o drive como o Windows. No Linux, não podemos dizer se estamos endereçando uma partição, um dispositivo de rede, ou um diretório “comum” e um Drive.
- Case Sensitivity: O sistema de ficheiros Linux é sensível a maiúsculas e minúsculas. Ele distingue entre nomes de arquivos em minúsculas e maiúsculas. Tal como, há uma diferença entre test.txt e Test.txt no Linux. Esta regra também é aplicada para diretórios e comandos Linux.
- Extensões de Arquivos: No Linux, um arquivo pode ter a extensão ‘.txt,’ mas não é necessário que um arquivo tenha uma extensão de arquivo. Enquanto trabalha com Shell, ele cria alguns problemas para os iniciantes diferenciarem entre arquivos e diretórios. Se utilizarmos o gestor gráfico de ficheiros, ele simboliza os ficheiros e pastas.
- Ficheiros ocultos: O Linux distingue entre arquivos padrão e arquivos ocultos, a maioria dos arquivos de configuração são ocultos no sistema operacional Linux. Normalmente, não precisamos acessar ou ler os arquivos ocultos. Os arquivos ocultos no Linux são representados por um ponto (.) antes do nome do arquivo (por exemplo, .ignore). Para aceder aos ficheiros, precisamos de alterar a vista no gestor de ficheiros ou precisamos de utilizar um comando específico na shell.
Tipos do Sistema de Ficheiros Linux
Quando instalamos o sistema operativo Linux, o Linux oferece muitos sistemas de ficheiros como Ext, Ext2, Ext3, Ext4, JFS, ReiserFS, XFS, btrfs e swap.
Vamos compreender cada um destes sistemas de ficheiros em detalhe:
Sistema de ficheiros Ext2, Ext3 e Ext4
O sistema de ficheiros Ext representa o Sistema de ficheiros Extendido. Foi desenvolvido principalmente para o SO MINIX. O sistema de arquivo Ext é uma versão mais antiga, e não é mais usado devido a algumas limitações.
Ext2 é o primeiro sistema de arquivo Linux que permite gerenciar dois terabytes de dados. O Ext3 é desenvolvido através do Ext2; é uma versão atualizada do Ext2 e contém compatibilidade com versões anteriores. A maior desvantagem do Ext3 é que ele não suporta servidores porque este sistema de arquivos não suporta recuperação de arquivos e snapshot de disco.
Ext4 é o sistema de arquivos mais rápido entre todos os sistemas de arquivos Ext. É uma opção muito compatível para os discos SSD (solid-state drive), e é o sistema de arquivo padrão na distribuição Linux.
JFS File System
JFS significa Journaled File System, e é desenvolvido pela IBM para AIX Unix. É uma alternativa para o sistema de arquivos Ext. Ele também pode ser usado no lugar do Ext4, onde a estabilidade é necessária com poucos recursos. É um sistema de arquivo útil quando a energia da CPU é limitada.
ReiserFS File System
ReiserFS é uma alternativa para o sistema de arquivo Ext3. Ele tem melhor desempenho e características avançadas. No tempo anterior, o ReiserFS era usado como o sistema de arquivo padrão no SUSE Linux, mas mais tarde ele mudou algumas políticas, então o SUSE retornou ao Ext3. Este sistema de arquivos suporta dinamicamente a extensão de arquivos, mas tem alguns inconvenientes no desempenho.
XFS File System
XFS sistema de arquivos foi considerado como JFS de alta velocidade, que é desenvolvido para processamento de E/S paralelo. A NASA ainda usa este sistema de arquivos com seu servidor de armazenamento elevado (300+ servidor Terabyte).
Btrfs File System
Btrfs representa o sistema de arquivos em árvore B. É usado para tolerância a falhas, sistema de reparação, administração divertida, configuração de armazenamento extensivo, e muito mais. Não é um bom fato para o sistema de produção.
Swap File System
O sistema de arquivo swap é usado para paginação de memória no sistema operacional Linux durante a hibernação do sistema. Um sistema que nunca entra em hibernação é necessário para ter espaço swap igual ao seu tamanho de RAM.