# Apple File System

Apple File System (APFS, litt. « système de fichiers d'Apple ») est un système de fichiers développé et déployé par Apple pour ses systèmes d'exploitation macOS, iOS, tvOS et watchOS. Il vise à corriger les problèmes du système de fichiers existant HFS+ anciennement utilisé sur ces plateformes$^,$.
Cependant, à la sortie de macOS High Sierra, seules les machines équipées d'un disque de démarrage SSD sont automatiquement converties en APFS. Cette conversion est optionnelle pour les machines dotées d'un disque dur et indisponible pour les machines dotées d'un Fusion Drive.

## Historique

Malgré les nombreuses améliorations qu'il a reçues au fil du temps, HFS+ commençait à accuser son âge et il était clair qu'il allait être remplacé. Le premier indice de ce remplacement fut l'inclusion dans la version bêta de Leopard du système de fichiers ZFS de Sun Microsystems.
Le développement d'APFS a commencé en 2014, sous la direction de Dominic Giampaolo, ancien de Be et concepteur du système de fichiers de BeOS.
L'arrivée de APFS a été annoncée en juin 2016, lors de l'Apple Worldwide Developers Conference, en remplacement de HFS+.

## Fonctionnalités

Apple File System est un système de fichiers 64 bits supportant jusqu'à 9 quintillions de fichiers par volume. Ses principales fonctionnalités sont :
* clones de fichiers : sur APFS, la copie d'un fichier sur le même volume ne duplique pas les données, mais se limite à mettre à jour les métadonnées pour indiquer l'existence du fichier clone. La modification du clone n'enregistre que les différences. Les clones apportent deux principaux avantages : instantanéité des opérations de copie de fichiers et gain d'espace disque.
* instantanés (snapshots) : APFS a la capacité de prendre un instantané du système de fichiers, c'est-à-dire une copie figée en lecture seule de ce système de fichiers. Les instantanés permettent de défaire les modifications ultérieures en une seule opération ou de réaliser des opérations de sauvegarde efficaces en n'enregistrant que les données modifiées depuis le dernier instantané.
* partage d'espace (space sharing) : le conteneur (qui peut être constitué de plusieurs disques physiques agrégés) est partagé en volumes, comparables aux partitions. La caractéristique principale de ces volumes est d'avoir une taille dynamique : elle augmente ou diminue en fonction de l'ajout ou de la suppression de fichiers. L'espace libre du conteneur est disponible pour tous les volumes et, par voie de conséquence, la taille libre indiquée par chaque volume est la même pour tous les volumes et correspond à celle du conteneur.
* chiffrement (encryption)
* fichiers creux (sparse files)
* intégrité des métadonnées
* calcul rapide des tailles (fast directory sizing)
* protection contre les plantages (crash protection) : APFS implémente un nouvel algorithme copy-on-write permettant de protéger les écritures sur disque contre la perte de données en cas de crash tout en évitant le coût de la double écriture de la journalisation.
* renommage atomique (atomic safe-save).
Apple File System a connu une controverse sur la normalisation Unicode, qui n'était pas effectuée dans ses premières versions beta, le rendant inutilisable avec des langues autres que l'anglais$^,$. Depuis la version 10.13 Developer Beta 3 du 10 juillet 2017, APFS implèmente la normalisation et l'insensibilité à la casse conformément au standard Unicode 9.0.

## Limitations

Apple File System ne fournit pas de somme de contrôle des données utilisateur, mais il fournit une somme de contrôle garantissant l'intégrité des métadonnées.

## Compatibilité matérielle
### macOS

Apple File System a d'abord été disponible dans macOS Sierra en tant que système optionnel non démarrable. Il est le système de fichiers par défaut dans macOS High Sierra, sur les machines dotées d'un disque SSD. Depuis macOS Mojave, tous les disques de démarrage sont convertis à l'APFS lors de la mise à jour du système d'exploitation, en dépit des difficultés que cela engendre avec des disques durs à plateau.

### iOS

iOS 10.3 a converti le système de fichiers existant HFS+ en APFS sur les périphériques 64 bits compatibles avec iOS 10. L'iPhone 5, l'iPhone 5c et l'iPad 4e ne sont pas compatibles avec APFS.

### tvOS

tvOS 10.2 a converti le système de fichiers existant HFS+ en APFS sur l'Apple TV de 4e génération.