Avant APFS : les tribulations sans avenir de ZFS chez Apple

Mickaël Bazoge |

Après avoir sué sang et eau sur l’adaptation de ZFS pour ses Mac durant des années, Apple a finalement abandonné le système de fichiers imaginé par Sun pour créer le sien, APFS, annoncé durant la WWDC cette année. Pourtant, entre 2007 et 2010, tel un serpent de mer, ZFS a fait à plusieurs reprises son apparition dans la chronique Apple et les fiches techniques de ses produits.

On a longtemps cru que le successeur de HFS+, maintes fois annoncé, n’avait pas pu devenir le système de fichiers d’OS X à cause de problèmes juridiques. Mais les raisons pour lesquelles ZFS s’est finalement retrouvé sur le bas-côté sont plus complexes.

Adam Leventhal est le développeur de DTrace, un outil de détection de bugs en temps réel intégré dans Solaris 10 en 2005, puis dans Mac OS X Leopard en 2007 (à la manière d’Apple : en secret et sans l’aide du créateur du logiciel). Il a rejoint ensuite l’équipe de développement de Solaris chez Sun, où il a pu suivre en témoin privilégié la grande histoire entre Apple et ZFS… mais aussi les coulisses un peu crapoteuses dévoilées sur son blog (via ArsTechnica).

La bourde de Sun

La rumeur du portage de ZFS dans OS X a commencé à courir quelques semaines avant la WWDC de 2007. Intégrité des données, cheksums, redondance, instantanés… Toutes ces fonctions modernes allaient enfin apparaitre dans le système d’exploitation des Mac ! Mais voilà, tout n’est pas allé comme prévu. Première bourde, un peu avant l’ouverture de la conférence, le CEO de Sun, Jonathan Schwartz, grille la politesse à Steve Jobs en annonçant que ZFS allait bel et bien devenir le système de fichiers d’OS X.

Jonathan Schwartz, CEO de Sun en 2007. Image CC BY James Davidson.

Autant dire que cette indiscrétion tonitruante faite sans l’accord d’Apple n’a pas été très bien accueillie à Cupertino, où c’est le privilège du grand patron de dévoiler les annonces les plus importantes. Et celle-ci en était une, d’évidence. Mesure de rétorsion ou technologie pas prête ? Toujours est-il que si ZFS est présent dans Leopard, ce n’est pas le système de fichiers par défaut et il n’est proposé qu’en lecture seule… même si on peut y écrire des données dans la bêta qui suit ! Mais voilà, la version finale se contente de la lecture seule.

Le grand pardon, et le grand oubli

L’année suivante à la WWDC, Apple avait pardonné son mauvais geste à Sun en annonçant que ZFS sera bel et bien de la partie dans Snow Leopard, dont la version finale sortira en 2009… enfin, dans la version Server. Le système de fichiers est nommément cité dans la page du site web d’Apple, et cette fois en lecture et en écriture :

Mais voilà, à la WWDC 2009, ZFS brille par son absence, le site web d’Apple ayant purgé les références au système de fichiers, et pire encore, le support de la lecture seule, pourtant disponible dans Leopard client et serveur, ne sera pas de la partie dans Snow Leopard.

Bref, le flirt entre ZFS et OS X, c’était désormais du passé. La raison évoquée à l’époque était d’ordre juridique. En 2007, la société NetApp portait plainte contre Sun concernant l’ouverture du système de fichiers. L’affaire suivait encore son cours alors qu’Oracle était en train de finaliser l’acquisition de Sun, ce qui ajoutait encore à la complexité de l’affaire. Pour Apple, l’adaptation de ZFS à ses besoins représentait donc une insécurité juridique, sans compter l’aspect open source qui était alors moins en vogue du côté de Cupertino qu’aujourd’hui.

Il y avait également un problème de licence : Apple souhaitait obtenir une licence personnalisée de la part de Sun, alors que ZFS était distribué sous licence CDDL… à l’instar de DTrace, sans que cela ne dérange la Pomme outre mesure (lire : ZFS : chronique d'un abandon).

Une licence toxique

Adam Leventhal rapporte aussi des problèmes de cuisine interne. Plutôt que d’adopter un système de fichiers provenant de l’extérieur, plusieurs cadres et directeurs d’Apple préféraient en effet bâtir leur propre système, totalement adapté aux besoins de l’entreprise et de ses utilisateurs. Ce n’était pas qu’un caprice : ZFS a certes beaucoup d’atouts, mais qui concernaient surtout les serveurs.

Peut-être valait-il mieux concevoir un système de fichiers en partant de zéro pour les ordinateurs de bureau et les portables d’Apple, ainsi que pour les produits en gestation (iPhone, iPad). Même si, dans le secret des labos d’Apple ZFS fonctionnait sur iPhone, comme l’écrit Leventhal…

Toutes ces raisons, les bonnes comme les mauvaises, ont fini par avoir la peau de ce projet. Leventhal explique qu’aujourd’hui encore, les personnes avec qui il est en contact chez Apple perçoivent toujours la licence de ZFS comme « abominable et toxique », alors que cette même licence (avec les mêmes autorisations et restrictions) appliquée à DTrace ne leur pose aucun souci…

Malgré tout, ce n’était pas tout à fait mort et enterré pour ZFS. Sun et Apple n’avaient pas coupé les ponts, mieux : dans le courant de l’année 2010, des discussions se déroulaient au plus haut niveau pour faire redémarrer la machine du portage de ZFS chez Apple ! L’idée était la suivante : Apple recevrait un support privilégié et une indemnité pour utiliser le système de fichiers, en échange de quoi Sun obtiendrait un accès à l’Apple File Protocol (AFP) qu’APFS pousse d’ailleurs à la retraite anticipée. La sauvegarde de millions de produits mobiles aurait été assurée par des produits Sun sous ZFS.

Du rififi entre les deux amis

Les versions divergent ensuite. D’après Leventhal, Larry Ellison le patron d’Oracle — désormais propriétaire de Sun — aurait refusé de signer le deal avec Apple. La raison de ce revirement ? « Je vais vous dire quelque chose concernant les affaires avec mon meilleur ami Steve Jobs », aurait alors expliqué Ellison. « Je ne fais pas d’affaires avec mon meilleur ami Steve Jobs ».

Une autre version de cette anecdote circule, entendue dans les couloirs de la WWDC cette année : ce serait en fait Steve Jobs qui ne voulait pas faire d’affaires avec Larry Ellison. Une troisième version explique de son côté que Jobs aurait tout simplement dit à son « meilleur ami » d’aller se « faire foutre ».

Depuis, Apple a choisi de faire évoluer HFS+ tout en bidouillant « au moins » deux remplaçants pour son système de fichiers lancé en 1998 — aucun d’entre eux n’a vu le jour. En 2014, le développement d’APFS a débuté puis présenté aux développeurs deux ans plus tard. APFS sera au cœur de toutes les plateformes d’Apple d’ici la fin de l’année prochaine.

Source
Photo de Une : William Warby
Tags
avatar totoguile | 

"Depuis, Apple a choisi de faire évoluer HFS+ tout en bidouillant « au moins » deux remplaçants pour son système de fichiers lancé en 1998 — aucun d’entre eux n’a vu le jour. En 2014, le développement d’APFS a débuté puis présenté aux développeurs deux ans plus tard. APFS sera au cœur de toutes les plateformes d’Apple d’ici la fin de l’année prochaine."

==> Ou pas !
Plus sérieusement tant que c'est pas en prod, bah c'est pas en prod... cf le début de l'article ZFS !

avatar bompi | 

Un nouveau système de fichiers est une affaire sérieuse : un FS, ça ne doit pas planter.

Je suis curieux de voir la capacité d'Apple à produire aussi rapidement un FS fiable.

avatar marc_os | 

@ bompi
Avec HFS puis HFS+, Apple a prouvé qu'ils en sont parfaitement capables.

avatar bonnepoire | 

Seul maître a bord. Pas plus mal.

avatar byte_order | 

NIH syndrome.
Aussi appelé "on sait mieux que quiconque".

Qu'on peut résumé d'un point de vue négociation par "va te faire foutre"

avatar bonnepoire | 

Y'a un syndrome pour les pauvre types qui n'ont rien à dire mais le font quand même? Le byte order consternation non?

avatar Dumber@Redmond | 

@bonnepoire :
Oui je crois qu'on peut appeler ça comme ça. En même temps n'est ce pas lui faire trop d'honneur ?

avatar byte_order | 

est-ce que les réponses qui consistent à ne rien dire d'autre que dire que les autres n'ont rien à dire tombent aussi sous cette définition ?

J'ai fait au moins l'effort de sortir un acronyme qui est reliable au topic en cours selon moi.
Vous pouvez ne pas être d'accord, mais dire que ce que je dis est "rien" n'est pas un argument, c'est juste votre opinion.

avatar bonnepoire | 

Amen

avatar byte_order | 

> Y'a un syndrome pour les pauvre types qui n'ont rien à dire mais le font quand même?

Oui. Cela s'appelle la liberté d'expression.
On sait, c'est intolérable que des gens puissent ne pas penser pas comme vous et, pire, osent le dire.

Il est plus que temps d'interdire la liberté d'expression...

avatar bonnepoire | 

Alors qu'en même temps tu attaques les autres en permanence...

avatar byte_order | 

Ouais, c'est moi qui traite les autres de pauvres types, ringard, débile, idiot, fifille ou leur souhaitent bon débarra ou accueille leur opinion différente d'un "si t'es pas content y'a frandroid/windows fans etc".

Clair, c'est moi qui lance des attaques personnelles en permanence.

avatar Pommeduverger | 

Est-ce que quelqu'un peut m'expliquer les fonctions réelles d'un système de fichier et ce que va changer le nouveau système d'Apple ?

Ce n'est pas forcément très clair pour ceux qui ne connaissent pas ce qu'il y a sous le capot des OS … :-/

avatar fif | 

https://fr.wikipedia.org/wiki/Système_de_fichiers

(copie colle le lien, MacG n'aime pas les accents dans les url. Avec raison)

avatar leolelego (non vérifié) | 

En ce qui concerne les particularités, je peux pas te dire.

le systèmes de fichiers, c'est un peu la "machine" qui va s'amuser à ordonner tes données sur le disques, et les différents niveaux de mémoires (cache L1,L2,L3, RAM). C'est lui qui va dire, au moment où tu veux sauvegarder une donnée, où la stocker, en déplacer d'autres pour faire assez de places pour la nouvelles, etc. Mais aussi dire à l'OS, où sont certaines données. En fait quand tu changer de formatage d'une partition de disque dur (FAT32, NTFS, HFS+ etc), tu dis que tu veux changer d'ordonnanceur associé à cette partition. alors tu dois tout effacer car un ordonnanceur ne sait pas comment marche un autre. Après l'OS peut jouer avec plusieurs ordonnancer qu'il connait mais pas sur les mêmes partition car au final, ton OS va dire "je veux écrire tel fichier en mémoire(disque par ex)", et c'est lordonnanceur qui va s'occuper de trouver de la place, de l'écrire et de dire à l'OS "C'est ok,je l'ai ranger". C'est pour ça que quand quelqu'un te passe un disque dur formatter en NTFS (Windows) sur un Mac tu peux que le lire et pas l'écrire, car Apple à fait un ordonnanceur pour lire NTFS, mais pas pour écrire (mais ne me demande pas pourquoi^^ sûrement une histoire légale).

En soit le principe est simple, la réalisation moins, et l'optimisation encore moins ^^ Et maintenant les différents systèmes de fichiers connu sont surtout des optimisations différentes (adapté aux serveurs pour SUN, adapté aux petits pc, gros PC, etc). donc à mon avis Apple veut faire des optimisations soi même pour que le Mac soit "encore meilleur" et adapté au besoin de l'OS.

Pour plus d'infos wikipedia : ) : https://fr.wikipedia.org/wiki/Système_de_fichiers

avatar Yohmi | 

@ Pommeduverger
Si tu comprends l'anglais, je te recommande cette vidéo issue de la WWDC 2016, où tout est très bien expliqué (avec sous-titres anglais).
https://developer.apple.com/videos/play/wwdc2016/701/
Ça va changer un certain nombre de choses, y compris dans nos habitudes, c'est loin d'être neutre.

avatar PierreBondurant | 

@Yohmi :
Merci pour la video, je voulais la regarder apres la wwdc mais ca m'était sorti de la tête.

avatar frankm | 

Disons que en réalité, l'accès à un disque dur ce fait case par case.
Les utilisateurs n'ont pas envie de tenir un listing qui tient à jour dans quelles cases sont stockés leurs fichiers !
Le système de fichiers s'occupe de tout, on donne un nom à un fichier, on le met dans un dossier, et le système de fichiers met les données dans les cases disponibles et tient à jour la table des matières.
Un système de fichiers est en quelques sortes l'équivalent de la table des matières d'un livre.

avatar Yohmi | 

@ Pommeduverger

Ce que je retiens de cette présentation, en tant qu'utilisateur final, ce sont ces points :

• Optimisé pour SSD, donc le système est plus réactif dans toutes les opérations (ouvrir une application, sauvegarder un fichier, etc.)

• Espace Partagé
En gros, les partitions sont désormais des « containers » dans lesquels plusieurs volumes se partagent dynamiquement le même espace. Imaginons que j'ai un disque de 1 To, séparé en trois volumes au sein d'une même boîte. Ces trois volumes, quel que soit l'espace qui leur est alloué à l'origine, peuvent réclamer de l'espace libre dans la boîte, y compris l'espace inutilisé alloué aux autres volumes situés dans cette boîte, s'ils en ont besoin. C'est une nouvelle manière d'envisager le partitionnement d'un disque, en ajoutant un niveau (Partition > Container > Volumes).

• Clonage des fichiers et des dossiers
Lorsque tu fais un copier/coller d'un fichier, jusqu'à présent tu doubles l'espace utilisé, pour les mêmes données dupliquées à un autre endroit de ton disque. Avec APFS, un clone est instantanément créé et n'occupe donc pas de place supplémentaire. Dès que tu modifies l'un des deux fichiers, les différences sont écrites dans le fichier modifié, de manière incrémentielle (c'est à dire que l'on ne modifie que la partie du fichier qui a changé). Cela permet de gagner énormément de temps puisque l'on écrit beaucoup moins de données, et, comme tu le devines, de gagner aussi beaucoup d'espace.

[…]

avatar Yohmi | 

[…]

• Snapshots
À tout moment on peut capturer un cliché instantané d'un volume. On peut considérer ça comme une sauvegarde (comme une image DMG). Cet instantané ne prend aucune place. Un peu à la manière des clones, quand tu vas modifier des données sur ton système, cela va se faire en parallèle de ton instantané qui lui ne bouge pas. Si tu décides de supprimer un fichier, alors que tu as déjà un instantané de ton système (qui contient donc ce fichier), tu ne gagneras pas de place, il faudra supprimer l'instantané pour récupérer la place que le fichier occupe. Ça va totalement changer la manière dont on effectue les sauvegardes.

Et il y a d'autres choses, c'est apparemment bien mieux pour le chiffrement, les changements opérés sur un fichier sont moins risqués (il n'y a plus cet état intermédiaire durant lequel le fichier peut être corrompu, il n'y a plus qu'un avant validé et un après validé).
Ça fait beaucoup de choses. Je ne m'attendais pas à ce que ça permette tout ça, je me demandais aussi ce que pouvait apporter un nouveau système de fichier pour l'utilisateur final… visiblement, ce n'est pas que du pain béni pour les développeurs :)

avatar IGerard | 

En même temps... APFS est sans doute le fruit des tentatives de faire évoluer HFS ... fruit des expériences passé... donc sa conception, son design remonte sans doute avant le démarrage officiel du projet.

avatar bonnepoire | 

En plus, il y a souvent des projets parallèles "libres" dans ce genre de société.

avatar ever1 | 

Dommage, toutes les fonctionnalité de APFS sont dans ZFS, et il y a dans ZFS qui ne sont pas dans APFS: dedup, compression, send/recv... sans parler de production proved

avatar Dumber@Redmond | 

@ever1 :
Les snapshots sont aussi dans ZFS :D

avatar Dwigt | 

Une bonne part des fonctionnalités manquantes pourra en fait être intégrée au fur et à mesure. Ce qui a été mis en place dans la Preview à la WWDC n'est pas forcément la liste définitive de ce que le FS pourra faire.

Et ZFS n'a pas non plus que des avantages : du point de vue des performances courantes, il n'est pas particulièrement optimisé. Il y a quand même des raisons objectives qui font qu'Oracle s'est mis derrière le projet Btrfs alors qu'ils contrôlent déjà ZFS.

avatar Dumber@Redmond | 

@ever1 :
On est bien d'accord, c'est pourquoi il est dommage que ZFS n'ait pas été intégré officiellement. Pourquoi avoir tout repris de zéro (à la Microsoft) ?
En effet ça ne m'empêche nullement de l'utiliser tous les jours sur mes Macs grâce aux geeks qui ont adapté ZFS pour le Mac, y compris les dernières versions disponibles.

http://open-zfs.org/wiki/Main_Page

https://openzfsonosx.org

Un énorme merci à ces petits gars là ;)

avatar fautedegout | 

Je tiens aussi à preciser que l'un des architectes de ce FS est Dominic Giampaolo ni plus ni moins que le pere de BFS et du noyau de BeOs....longtemps vantés pour leur rapidité, leur fiabilité et leurs fonctions avancées...et c'etait en 1995.

avatar byte_order | 

Dominic n'est pas le père du noyau, mais il faisait en effet partie de l'équipe réduite, équipe mère du noyau de BeOS.

avatar mika944 (non vérifié) | 

Quelqu'un peut-il expliquer la raison pour laquelle AFPS ne sera pas partageable par AppleShare mais par SMB. Cela signifie-t-il la fin programmée d'AppleShare ? Merci

avatar Dwigt | 

La fin d'Appleshare et son remplacement par SMB sont programmés depuis plusieurs versions, depuis Mavericks en 2013 au moins. AFP/AFS ne va plus évoluer et n'est conservé que pour des raisons de compatibilité.

avatar wilfried50 | 

Sa fortune, en 2016, est estimée par Forbes à 49.3 milliards de dollars américains, ce qui en fait le septième individu le plus riche au monde. Histoire de gros sous pour le pote Larry Ellison

avatar bonnepoire | 

Vu comment Oracle rackette ses clients ce n'est guère étonnant.

avatar fautedegout | 

Sacré bonnepoire...

CONNEXION UTILISATEUR