# Apple File System

Apple File System (APFS) é um sistema de arquivos proprietário para macOS, iOS, iPadOS, tvOS (Apple TV) e watchOS, desenvolvido e implementado pela Apple Inc. Ele tem como objetivo consertar vários problemas do HFS+ (também chamado Mac OS Expandido), predecessor do APFS nesses sistemas operacionais. O Apple File System é otimizado para armazenamento de estado sólido (SSD), com foco primário em criptografia.

## História

O Apple File System foi anunciado na conferência de desenvolvedores da Apple (WWDC) em Junho de 2016 como futuro substituto para HFS+, que estava sendo usado desde 1998. Ele foi lançado para os dispositivos iOS em 27 de Março de 2017, com o lançamento do iOS 10.3, e para dispositivos macOS em 25 de Setembro de 2017, com o lançamento do macOS 10.13.

## Design

O sistema de arquivos tem escalabilidade para poder ser usado tanto no Apple watch como num Mac Pro. Ele usa números de inode de 64-bits, e permite a armazenagem de forma mais segura. O código do APFS, como o do HFS+, usa o comando TRIM, para melhor gerenciamento do espaço e melhor desempenho. Ele aumenta a velocidade de leitura e escrita no iOS e no macOS, bem como o espaço nos dispositivos iOS, por causa do modo como o APFS calcula a quantidade de dados disponíveis.

### Clones

Os clones permitem que o sistema operacional faça cópias de arquivos eficientes no mesmo volume sem ocupar espaço de armazenamento adicional. As alterações em um arquivo clonado são salvas como deltas (diferença entre os dados antigos e atuais), reduzindo o espaço de armazenamento necessário para revisões e cópias de documentos.

### Snapshots

O Apple File System suporta instantâneos para a criação de uma instância instantânea somente leitura do sistema de arquivos.

### Criptografia

O Apple File System suporta de forma nativa criptografia de disco completo e criptografia de arquivo com as seguintes opções:
* sem criptografia
* criptografia de chave única
* criptografia de múltiplas chaves, onde cada arquivo é criptografado com uma chave separada e os metadados são criptografados com uma chave diferente.

### Número máximo de arquivos aumentado

APFS suporta números de inode de 64 bits, suportando mais de 9 quintilhões de arquivos em um único volume.

### Integridade dos dados

O Apple File System usa somas de verificação para garantir a integridade dos dados para os metadados, mas não para os dados do usuário.

### Proteção a falhas

O Apple File System foi projetado para evitar a corrupção de metadados causada por falhas do sistema. Em vez de substituir registros de metadados existentes, ele grava registros inteiramente novos, aponta para os novos e depois libera os antigos. Isso evita registros corrompidos contendo dados parciais antigos e dados parciais novos causados por uma falha que ocorre durante uma atualização. Também evita ter que escrever a alteração duas vezes, como acontece com um sistema de arquivos com journaling HFS+, onde as alterações são escritas primeiro no jornal e depois no arquivo do catálogo.

### Compartilhamento de espaço

O APFS adiciona a capacidade de ter várias unidades lógicas (referidas como Volumes) no mesmo contêiner, onde o espaço livre está disponível para todos os volumes desse contêiner. Semelhante ao recurso Fusion Drive da Apple, um contêiner APFS pode ser uma única partição física ou construída a partir de duas partições em unidades separadas.

## Limitações

Em sua primeira geração, o Apple File System não fornece somas de verificação para dados de usuários, mas faz para integridade dos metadados. Ele também não aproveita a memória de acesso aleatório não volátil endereçável por bytes e não suporta a compressão ainda.
Ao contrário das versões do HFS+ desde o Leopard, o APFS não oferece suporte para links rígidos para diretórios. Isso está em linha com muitos outros sistemas de arquivos modernos, mas o Time Machine ainda depende deles, então o APFS ainda não é uma opção para seus volumes de backup (a partir do macOS 10.13 High Sierra).

## Suporte
### macOS

O MacOS High Sierra converte automaticamente o sistema de arquivos em dispositivos com todo o armazenamento flash para o APFS. Os volumes FileVault também são convertidos, mas Fusion Drives e unidades de disco rígido não são. Os usuários não podem cancelar essa conversão, e os dispositivos formatados com a versão High Sierra do APFS não serão legíveis em versões anteriores do MacOS.
Uma versão experimental do APFS está disponível na versão anterior do macOS (Sierra) através do utilitário de linha de comando diskutil, embora com limitações. Entre essas limitações, ele não executa a normalização Unicode enquanto o HFS+ faz, levando a problemas com linguagens diferentes do inglês. Dispositivos formatados com a versão Sierra do APFS também podem não ser compatíveis com versões futuras do macOS ou a versão final do APFS, e a versão Sierra do APFS não pode ser usada com Time Machine, volumes FileVault ou Fusion Drives.

### iOS, tvOS, e watchOS

iOS 10.3, tvOS 10.2, e watchOS 3.2 convertem o sistema de arquivos HFSX existente para o APFS em dispositivos compatíveis.

## Veja também

* Btrfs
* F2FS
* HAMMER
* ReFS
* ZFS