Fermer le menu

APFS : le futur système de fichiers d’Apple qui va changer votre vie

Mickaël Bazoge | | 20:49 |  187

Edit : cet article a été rédigé peu après la WWDC de juin 2016. Nous le remontons dans le flux car Apple a posé les premiers jalons d'APFS dans la première bêta d'iOS 10.3.

C’est un peu malheureux, mais lors du keynote de la WWDC, Apple a passé plus de temps à annoncer que les émojis de Messages seront trois fois plus gros dans iOS 10 qu’à faire l’article d’APFS. D’ailleurs, le nouveau système de fichiers qui sera au cœur de macOS, iOS, watchOS et tvOS n’a tout simplement bénéficié d’aucune annonce durant la conférence !

Eric Tamura et Dominic Giampaolo ont eu l’honneur de présenter APFS aux développeurs présents à la WWDC.

On peut le regretter, même si un système de fichiers est évidemment moins sexy que des émojis et d’autres fonctions flashy (lire : Keynote : des emojis, mais pas de système de fichiers). Mais APFS a ensuite fait l’objet d’une présentation en profondeur lors d'une session dédiée, et on peut retrouver sur le Dev Center une documentation qui dresse les grandes lignes de cette nouveauté majeure.

Durant la WWDC, Apple a également invité les développeurs présents à participer à des séances de questions/réponses avec les ingénieurs qui ont mis au point APFS. Adam Leventhal a participé à cette session et il en a livré un récit aussi complet que possible sur son blog. Nous avons puisé dans ces observations ainsi que dans les docs d’Apple pour faire le point sur ce système de fichiers qui devrait assurément bousculer les habitudes.

Qu’est-ce qu’un système de fichiers ?

Un système de fichiers est une des briques de base d’un système d’exploitation. C’est ce qui permet à l’OS de stocker et d’organiser les données dans des supports de stockage internes et externes. Conservées dans des suites de blocs dont le contenu est lié au format des fichiers (caractères, adresses mémoires, etc.), les informations peuvent ensuite être exploitées par les applications.

À l’intérieur du MacBook 12’’ Retina (image iFixit).

Sans système de fichiers, l’information serait placée en vrac dans un espace de stockage dans lequel il serait impossible de dire où commence et où s’arrête telle ou telle donnée. Avec des capacités de stockage toujours plus importantes, il a fallu adapter les systèmes de fichiers pour qu’ils se montrent plus efficaces.

Toute cette machinerie est invisible pour l’utilisateur, qui s’attend à retrouver ses dossiers et ses documents aux endroits où il les a laissés, le tout présenté d’une manière cohérente et hiérarchique.

Quels sont les systèmes de fichiers utilisés par Apple ?

Sans remonter aux temps immémoriaux de DOS 3.x (également connu sous le sobriquet Apple DOS) de l’Apple II, le constructeur place MFS (Macintosh File System) au cœur du premier Macintosh. Il a rapidement été remplacé par HFS (Hierarchical File System) en septembre 1985. Il s’agit alors de prendre en charge le premier disque dur (20 Mo) que le constructeur a conçu pour son Mac, alors que MFS n’était optimisé que pour les lentes disquettes de petites capacités de l’époque.

En 1998, Apple lance le successeur de HFS avec Mac OS 8.1, HFS Plus. Cette version améliorée de HFS supporte des adresses 32 bits au lieu des 16 bits de son prédécesseur, et elle utilise Unicode en replacement de Mac OS Roman pour nommer les fichiers et documents.

Avec Mac OS X 10.3, Apple met à jour HFS Plus en y apportant la sensibilité à la casse, mais de nombreux logiciels ne sont pas compatibles et sont susceptibles de planter. Durant ses 18 ans d’existence, HFS+ a évidemment été adapté aux besoins d’Apple, et s’il continue de rendre bien des services, le système de fichiers accuse depuis trop longtemps le poids des années. « HFS+ est certainement le pire système de fichiers jamais créé. Dieu que c'est de la merde ». Ainsi Linus Torvalds, créateur de Linux, qualifie-t-il le système de fichiers d'OS X dans sa langue fleurie.

On a un temps imaginé qu’Apple allait le remplacer par ZFS (Zettabyte File System). Les capacités de ce système de fichiers 128 bits développé par Sun Microsystems pour Solaris 10 sont tellement importantes qu’il faudrait faire « bouillir les océans » pour remplir un espace de données 128 bits, d’après son créateur Jeff Bonwick !

La prise en charge de ZFS annoncée sur le site d'Apple.

En décembre 2006, une bêta de Mac OS X 10.5 affiche une prise en charge très préliminaire de ZFS, une présence suivie par une annonce fracassante de Sun Microsystems : ZFS deviendra bien le système de fichiers par défaut du Leopard ! Las, après avoir joué au chat et à la souris dans les bêtas suivantes, ZFS n’est plus proposé que dans Snow Leopard Server et encore, en lecture seule (lire : La saga ZFS n'en finit plus).

Pourquoi Apple a-t-elle ainsi joué avec les nerfs de ceux qui attendaient fébrilement un système de fichiers moderne ? Des problèmes de licence ont grippé la machine, et on a appris tout récemment via Ars Technica que des problèmes d’égo sont aussi rentrés en ligne de compte. Apple n’aime rien tant que les choses développées en interne, et plusieurs cadres de l’entreprise préféraient bâtir leur propre solution plutôt que d’en adopter une conçue à l’extérieur — même si cette technologie était la meilleure à l’époque.

De plus, ZFS a été imaginé d’abord et avant tout pour les serveurs, pas pour les ordinateurs de monsieur tout le monde, et encore moins pour des appareils mobiles. Or, à cette époque, Apple était en plein développement de l’iPhone premier du nom. Les équipes en charge de la conception d’iOS ont créé une déclinaison d’HFS si secrètement que leurs homologues d’OS X n’en ont d’ailleurs rien su…

Catégories: 
Tags : 

Les derniers dossiers

Ailleurs sur le Web


187 Commentaires Signaler un abus dans les commentaires

avatar reborn 28/06/2016 - 20:12 (edité)

l’idéal serait qu'icloud adopte aussi ce système de fichier. De cette manière un volume icloud pourrait apparaître dans le finder au même titre d'un disque local.

Ceux qui voulaient de l'innovation sont (enfin ?) servi !

avatar Mickaël Bazoge macG 28/06/2016 - 20:14

En tout cas, il y a quelque chose qui se prépare avec iCloud Drive, avec Sierra on peut y stocker tous les documents de son Mac.

avatar reborn 28/06/2016 - 20:29

ce qui me rebute actuellement avec ces services de cloud synchronisé c'est que sur iOS il est nécessaire de télécharger le fichier sur l'appareil, y apporter la modification que l'on souhaire y apporter, puis ré-uploader le fichier..

Donc oui si le futur iOS est capable de parcourir un icloud equipé de APFS je dis oui. Cela permettra d’éditer des fichiers sans les télécharger :)



avatar C1rc3@0rc 29/06/2016 - 11:17

@reborn

APFS ne changera rien de ce coté car meme dans le cas d'un pur netcomputer classique, il y a mise en cache du fichier sur lequel on travaille, donc il y aura toujours upload/download au moins en partie du fichier.

De plus le systeme de gestion de fichier (FS) gère les données sur le support a un bas niveau (en dessous de l'OS). Les fonctions de haut niveau se trouve dans l'OS. Donc en fait ni l'utilisateur ni meme la majorité des développeurs ne verront APFS, ils passeront par les applications et les API de l'OS.

Il faut savoir par exemple qu'un des FS les plus avancés au niveau commercial était celui de BeOS qui était basé sur une base de données relationnelle et était capable de gérer nativement la programmation par objet au niveau du FS (BFS).
De son coté NeXTStep lui masquait la différence entre volume réseau et disque interne, mais il reposait sur le vénérable UFS des Unix...

APFS va reprendre des caractéristiques de ZFS et d'EXT3 de Linux, mais cela ne va rien changer pour l'utilisateur. Par contre le fait qu'il soit conçu pour le SSD est inquiétant pour les performances des fichiers stockés sur disque mécaniques: quand on voit la dégradation des performances de MacOS depuis Yosemite sur les disques durs cela pose de sérieuses questions.

«C’est un peu malheureux, mais lors du keynote de la WWDC, Apple a passé plus de temps à annoncer que les émojis de Messages seront trois fois plus gros dans iOS 10 qu’à faire l’article d’APFS.»
Cette keynote était une honte et son inutilité et sa dissociation des attentes publiques resteront remarquables dans l'histoire d'Apple.

Bon, le nouveau FS n'est pas l'objet d'annonces principale meme pour les développeurs. Ceci dit une annonce minimale au keynote aurait été bienvenue et plus adaptée.

avatar byte_order 29/06/2016 - 08:37

> Il faut savoir par exemple qu'un des FS les plus avancé au niveau commercial était
> celui de BeOS qui était basé sur une base de données relationnelle

Initialement. L'architecture hybride FS + base de données a été ensuite fusionné dans un FS intégrant nativement des indexes sur des metadatas, maintenus automatiquement .

> et était
> capable de gérer nativement la programmation par objet au niveau du FS (BFS).

Euh, pas sur de comprendre de quoi vous parlez ici...
Que l"API était/est (Haiku-OS) en C++ ?

avatar frankm 29/06/2016 - 09:22

if (grand_public == keynote_followers) {
keynote ("iMessage and emojis")
}
else {
keynote ("APFS")
}

avatar fte 29/06/2016 - 10:04 (edité)

Un FS est très similaire à un protocole réseau, c'est une pile de couches fonctionnelles, chacune ayant une tâche bien spécifique à remplir. Les couches basses d'un FS sont de bas niveau, celles chargées de gérer le block storage, les couches hautes sont des couches applicatives pas du tout de bas niveau.

BeFS n'est pas le file system le plus avancé. Il ne l'a jamais été. Il a peut-être été le plus original, d'une certaine façon. Gérer nativement la programmation par objet ne veut rien dire. Éventuellement on pourrait dire ça en parlant d'une machine virtuelle ou d'un runtime, mais d'un FS, certes pas.

Quant à NeXTSTEP, il ne masquait pas la différence entre un volume local ou réseau. C'est VFS, la pile de stockage d'UNIX qui remonte au moins à 1985 je crois, pour SunOS et ensuite repris par tous les UNIX, dont NeXTSTEP quelques années plus tard, basé sur BSD btw.

Pour finir, APFS a été plus que minimalement annoncé. Il y a eu une session dédiée et il en a été fait mention dans plusieurs sessions parlant d'IO et de sécurité, et il est disponible dans Sierra pour les développeurs.

Bref. Pourrais-tu vérifier ce que tu avances avant de balancer toutes les pensées aléatoires qui te traversent l'esprit ? A part l'avis personnel sur la keynote, que je partage en partie, tout le reste est à côté de la plaque.

avatar C1rc3@0rc 29/06/2016 - 11:10

@fte
«BeFS n'est pas le file system le plus avancé. Il ne l'a jamais été»

Et quel était le FS le plus avancé sur PC a cette époque alors ?

«Quant à NeXTSTEP, il ne masquait pas la différence entre un volume local ou réseau.»
Ben si, l'utilisateur ne voyait pas de différence entre un volume réseau et un disque local.

«Pour finir, APFS a été plus que minimalement annoncé.»
Aucune communication lors de la keynote!

«Bref. Pourrais-tu vérifier ce que tu avances avant de balancer toutes les pensées aléatoires qui te traversent l'esprit ?»
Pourrais tu répondre a ce qui est écrit plutôt que balancer toutes tes interprétations approximative qui viennent d'une lecture en diagonale.

avatar fte 29/06/2016 - 15:00

"Et quel était le FS le plus avancé sur PC a cette époque alors ?"

Si on écarte les machins expérimentaux, académiques ou restés confidentiels comme par exemple le remarquable Coda de Carnegie...

Milieu des années 90 ? Je dirais XFS. Il avait la journalisation, des B+Tree, les accès en parallèle, une extension de clustering CXFS sauf erreur, les extended attributes, il gagnait pratiquement toutes les comparaisons de performance, rock solid, et c'est peut-être, hors mainframes, le FS qui stockait le plus de TB à cette époque préhistorique.

"Aucune communication lors de la keynote!"

Et alors ? Il n'ont pas non plus annoncé que les messages du répondeur passaient par la reconnaissance vocale et pouvaient être lus, que LLVM supportait maintenant thread-local, que libc++ était conforme C++14... La WWDC ne s'arrête pas au keynote. La conférence commence après le keynote.

Je suis obligé de lire en diagonale. Tu écris en diagonale.

avatar BigMonster 29/06/2016 - 16:49

@ fte

[…LLVM supporte maintenant thread-local…]

Sérieux ? Je croyais qu'il était mort !
On pense de lui ce qu'on veut, mais on ne pouvait quand même pas lui souhaiter ça…

(je suis le petit point, là-bas, sur l'horizon…)

avatar C1rc3@0rc 30/06/2016 - 00:09 (edité)

«Je suis obligé de lire en diagonale. Tu écris en diagonale.»

Evidement...

«Si on écarte les machins expérimentaux, académiques ou restés confidentiels comme par exemple le remarquable Coda de Carnegie...
Milieu des années 90 ? Je dirais XFS.»

Moais XFS, le FS des stations de travail de Silicon Graphics et en 1993 la difference de puissance entre une station de travail et un PC c'etait un peu plus qu'aujourd'hui.

Et ma critique de la keynote ne concerne pas le manque de communication sur des techno cryptiques.

Dire ok, on travaille dur sur le Mac pour en faire le meilleur PC des prochaines annees, on va lui donner un nouveau systeme de fichiers securisé et chiffré, on va le rendre plus performant au niveau graphique, on va passer l'architecture sur ARM, on ameliore Xcode pour produire mieux et de manière plus sécurisé des applications universelles et optimisées! On a plein de choses pour rendre l'iPad encore meilleur pour l'entreprise, l'éducation, et les particuliers, par exemple, oui, l'interface de gestion des sessions,etc

Y a un juste milieu entre balancer de l'info hyper technique comme LLVM supporte maintenant thread-local, ce qui parle a personne et faire dire a Federighi pendant 1 heure: oui on a des emoji plus gros!

Cette keynote était cruciale sur l'avenir d'Apple, autant pour les particuliers que l'entreprise, les financiers, et les développeurs.
Quel est le message de la keynote: on rattrape Google et les développeurs tiers en leur piquant leurs idées, on parle pas de l'iPad, on parle pas de matériel, on parle pas de sécurité, on parle pas de performances (enfin si pour la tocante ce qui n'intéresse personne)... ça rassure qui, ça donne envie de developper pour Mac ou d'acheter un Mac: non!

avatar byte_order 30/06/2016 - 11:34

> Milieu des années 90 ? Je dirais XFS. Il avait la journalisation, des B+Tree,
> les accès en parallèle, une extension de clustering CXFS sauf erreur,
> les extended attributes, il gagnait pratiquement toutes les
> comparaisons de performance, rock solid,
> et c'est peut-être, hors mainframes, le FS qui stockait le plus de TB
> à cette époque préhistorique.

Le plus avancé à l'époque, sans conteste.
Mais il n'était pas aussi performant que ça dans tous les usages.
En particulier pour l'allocation rapide de plein de petits fichiers, il était battu assez nettement par ext2.

XFS a été conçu pour les besoins des stations SGI : des accès sûres, concurrents et rapides à des fichiers de très grosses tailles.

BeOS visant à l'époque le marché du multimedia aussi, bon nombre des concepts de XFS ont été repris dans BFS : 64bits, B+tree, extents, journal, accès concurrents sur les i-nodes, attributs. Malheureusement, l'absence de cache disque dans BeOS a complètement plombé les benchmarks de l'époque (sauf en accès sur des gros fichiers où là c'était similaire à XFS), et l'indexation automatique de certains attributs n'aidant pas non plus. L'ajout d'un cache disque dans Haiku-OS a corrigé depuis le plus gros problème, d'ailleurs.

Reste que les stations SGI c'est pas exactement ce que l'on peut appeler des ordinateurs personnels au sens propre du terme.
C'est bien dommage que XFS n'a pas connu une plus grande audience, cependant. Il a clairement montré la voie, pourtant.

avatar BigMonster 29/06/2016 - 10:29

@C1rc3@0rc

[…Par contre le fait qu'il soit conçu pour le SSD est inquiétant pour les performances des fichiers stockés sur disque mécaniques…]

À mon avis, un système de fichiers est quelque chose qui va devoir être utilisé sur le long terme. Et je pense que dans dix ans, les disques durs mécaniques auront tout simplement disparu.

avatar byte_order 29/06/2016 - 11:46

probable que dans 10 ans les contraintes de devoir gerer le trim des ssd auront elles aussi disparues.

avatar C1rc3@0rc 30/06/2016 - 00:12 (edité)

Probable que dans 10 ans on ne parle meme plus de SSD. C'est quand meme une techno batarde, bourrée de problèmes et qui a une espérance de vie courte au niveau des support de données...

Axer un FS sur le SSD c'est pas pertinent.

Par contre les disques durs, ils risquent d'etre eux encore la dans 10 ans, comme les bande magnetiques...

avatar byte_order 30/06/2016 - 11:47

De nos jours, un bon FS doit pouvoir séparer sa politique d'allocation physique de son organisation logique, j'aurais tendance à dire.

Il est en effet probable que les supports de stockage extrêmement performants de l'avenir ne remettront pas à la retraite le stockage magnétique dont le coût continuera d'être fatalement très compétitif, mais les performances d'accès totalement dépassées.

Ce n'est pas bien grave de toute façon, il m'apparait peu probable que APFS devienne d'ici 10 ans le FS le plus utilisé sur toutes les plateformes. Sur les plateformes d'Apple, oui. Sur les autres, j'en doute fortement.

avatar frankm 29/06/2016 - 09:16

Il se prépare l'ultime convergence : appleOS for iPhone, iPad, Mac et watch

avatar C1rc3@0rc 30/06/2016 - 00:15

Moais, on va avoir un truc nommé Macbook watch, a interface tactile et un ecran de 6" qui se portera sur le poignet, mettra une plombe a lancer des app, ne servira a rien, mais sera vendu une fortune en bijouterie Tati.

OS X: l'unix le plus avancé au monde...
Amertune, amertume.

avatar iGeek07 28/06/2016 - 21:09 via iGeneration pour iOS

@reborn :
Je crois que vous n'avez pas très bien compris ce qu'est un système de fichiers. Qu'iCloud utilise HFS ou plus certainement ext4 (vu qu'iCloud doit tourner sur des serveurs Linux et non des Mac…) ou APFS, ça ne change rien pour "apparaître dans le Finder"…

avatar reborn 28/06/2016 - 21:15 (edité)

j'ai mal exprimé mon souhait. Peut être qu'Apple attend ce nouveau système de fichier pour proposer une bien meilleur expérience d'icloud. Après oui je n'y comprend pas plus que ça

avatar C1rc3@0rc 30/06/2016 - 00:26 (edité)

Non Apple n'attend pas un nouveau FS pour améliorer iCloud.
Ce que je disais précédemment c'est que le NeXT utilisait un systeme de fichier tres classique et pourtant cette machine révolutionnait l'interface en masquant la différence entre un volume local (disque dur) et un volume réseau.
C'est une question d'ergonomie et d'interface graphique pas de technologie.

Apple veut essayer de faire du cloud, mais iCloud c'est juste un systeme de synchro et les compétences d'Apple s'arrête la. Apple ne sait pas faire de netcomputer, n'est pas Oracle et c'est meme l'inverse: l'ADN d'Apple c'est de faire des machines individuelles puissantes et accessibles.
Faut revoir l'interview de Julia dans On refait le Mac, c'est édifiant de simplicité et de bon sens.

Apple a un metier: produire des machines informatiques personnelles et individuelles. Sa caracteristique c'etait l'ergonomie, la simplicité d'utilisation et la qualité.
Aujourd'hui on a le sentiment qu'il y a un logo Apple, mais plus rien derriere: l'innovation ce sont Google, les developpeurs independant, Linux et Microsoft qui la produisent.
L'ergonomie est abandonnée au profit d'une apparence des plus discutable.
Le travail d'ingénierie est pourri par des choix marketing pour augmenter toujours plus les marges.
La direction d'Apple se concentre sur les resultat financiers avant la production materielle et logicielle.

avatar bompi 28/06/2016 - 21:25

Le système de fichiers utilisé par iCloud est "transparent". Pour nous, ce qui compte est la manière de s'y connecter, c'est à dire les protocoles réseau [les méthodes standards, disons] qu'on utilise.

Un peu comme peu importe quel est le type d'un serveur Web (Apache, IIS, WAS, etc.), du moment qu'il parle correctement le protocole du Web (HTTP/s).

avatar fte 24/01/2017 - 21:29 via iGeneration pour iOS

@reborn

Le cloud gère le stockage complètement différemment. Aucun rapport.

Quant à de l'innovation, APFS n'apporte rien qui n'existe pas en production depuis au moins une décennie.

C'est juste un système de fichier moderne à peu près au niveau de plusieurs autres FS modernes déjà en production, pour remplacer le vieux et vénérable HFS+ de 20 ans.

avatar XiliX 25/01/2017 - 16:35

@fte

"C'est juste un système de fichier moderne à peu près au niveau de plusieurs autres FS modernes déjà en production, pour remplacer le vieux et vénérable HFS+ de 20 ans."

HAH ??? lesquels ? NTFS ? ext ?
Même par rapport à ZFS, APFS est juste "très" différent

avatar fte 25/01/2017 - 21:56

Tu n'as rien trouvé de mieux comme comparaison que des FS eux-mêmes vieux de plus de 20 ans ? Enfin, je suppose que tu aurais pu proposer FAT ou ADFS. Ça aurait pu être pire, DECtape par exemple.

Pages