Apple publie les composants libres de macOS High Sierra et d’iOS 11

Anthony Nelzin-Santos |

Les systèmes d’exploitation d’Apple reposent sur de nombreux composants open source : le noyau XNU, le moteur de rendu WebKit, le codec audio ALAC, ou encore le langage de développement Swift. Leurs bases mêmes sont libres : les sources de Darwin 17, le cœur des systèmes connus sous le nom de macOS High Sierra et iOS 11, sont maintenant disponibles.

Hexley l’ornithorynque, la mascotte (officieuse) de Darwin, le système open source qui sous-tend macOS et iOS.
Hexley l’ornithorynque, la mascotte (officieuse) de Darwin, le système open source qui sous-tend macOS et iOS.

Apple procède de la même manière chaque année depuis 2000 : quelques semaines à quelques mois après la commercialisation d’une nouvelle version du système, elle met en ligne les sources de ses composants libres, comme l’y oblige d’ailleurs leur licence. Cette année toutefois, Apple a ajouté le pilote APFS, et surtout les sources ARM et ARM64 spécifiques à iOS et ses dérivés.

Cela ne veut pas dire que vous pouvez compiler votre propre version d’iOS : les API et les composants graphiques qui transforment Darwin en iOS ne sont pas libres, et les signatures d’installation restent la propriété d’Apple. Vous pouvez toutefois compiler Darwin sur et pour votre Mac, comme le font quelques passionnés.

avatar LeGrosJeanLou | 

Si les composant ARM64 du noyau Darwin sont disponibles ça veut dire qu'il doit être possible de le compiler pour le Raspberry Pi non ?

avatar fte | 

@LeGrosJeanLou

Non. Il n'y a pas de plateforme standardisée arm comme c'est le cas pour x86. Il faut une couche d'abstraction matérielle spécifique à chaque matériel sur base arm.

avatar C1rc3@0rc | 

LeGrosJeanLou

Alors le jeu d'instruction ARM est standard et tous les processeurs doivent etre compatibles avec ce jeu d'instructions c'est la seule contrainte d'ARM, la realisation de l'architecture elle est libre ( a la différence du x86).
Le Raspberry 3 utilise l'architecture ARMv8 A comme Apple. Donc oui il y a compatibilité.

Apres, Darwin n'est pas iOS. Et les Ax ne sont pas des processeurs "opensource", donc la compatibilité s'arrete a la plateforme ARMv8A et ne considere pas les autres composants du SoC d'Apple.
De plus iOS c'est d'abord une interface, des drivers pour du materiel tres specifiques (et proprietaire) qui n’apparaît pas du tout dans Darwin, puisque c'est un niveau totalement proprietaire.

Donc se pose l'interet de compiler le noyau, qui est vraiment juste un noyau, pour Raspberry, alors qu'il y a deja des systemes BSD complets pour le Raspberry.

Apple publie des briques qui entrent dans la composition de MacOS et d'iOS, mais, entre disposer des briques et construire une baraque entiere y a un monde de differences et des expertises a integrer.... On en est meme pas au niveau de l'Android que publie Google, et qui necessite un gros travail d'adaptation pour qu'il fonctionne sur un smartphone specifique.

Cela ne permettrait pas non plus d'utiliser des applications iOS...

Mais dans le principe, oui une equipe de developpeurs pourraient tout a fait se lancer dans la realisation d'un OS de plus pour Raspberry basé sur Darwin.

avatar Apollo11 | 

C'est comme publier une recette sans tous les ingrédients, ou publier un rapport de la NSA caviardé.

Apple est tout sauf Open Source. Elle ne publie que ce qu'elle est obligée de publier, selon la licence des produits qu'ils utilisent.

avatar LeGrosJeanLou | 

@Apollo11

C'est vrai que WebKit, Swift et APFS sont de bons exemples de ce qu'Apple a été obligée de publier...

avatar Apollo11 | 

@LeGrosJeanLou

Webkit, ça vient pas d'eux, à l'origine.

Swift, ce n'est qu'un langage de programmation. Rien à voir avec le système.

Et puis le véritable open source, c'est la communauté qui peut contribuer au code. Impossible avec Apple.

avatar LeGrosJeanLou | 

@Apollo11

WebKit était un fork de KHTML il y a 15 ans. KHTML ne décollait pas. Apple est à l'origine de WebKit qui a libéré le web de l'emprise de MS grâce notamment à Mozilla.

Ouvert je dis.

Swift est un langage libre et très ouvert à contribution. Rien n'obligeait Apple à l'ouvrir, ni son compileur. Les langages ne sont pas ouvert (allo Java ?)

Ouvert je répète.

WebKit comme Swift sont ouverts à contribution.

Le pire ennemi de l'Open Source c'est les barbus comme toi.

avatar Apollo11 | 

>Le pire ennemi de l'Open Source c'est les barbus comme toi.

Et les meilleurs amis de Apple, c'est les naifs comme toi. :-p

avatar LeGrosJeanLou | 

@Apollo11

Ni ami ni ennemi. Je suis neutre. Apple pourrait tout garder en sources fermées ou tout ouvrir que ça ne changerait absolument rien à ma vie. Vraiment.

Le fait est qu'Apple a quelques éléments Open Source, que tu le veuilles ou non. Et je ne comprends pas ton obstination à prétendre le contraire.

Darwin est libre.
Webkit est libre et ouvert à contributions.
Swift est libre et ouvert à contributions.
APFS est libre.

C'est un fait indéniable. Maintenant que ça t'emmerde au point de ressentir la nécessité de le nier (parce que ça ne rentre pas dans le modèle diabolique que tu te fais d'Apple sans doute) ma foi c'est ton problème.

Mais les spécimens dans ton genre ne manquent jamais de m'étonner. Dissonance cognitive à plein tube.

avatar Apollo11 | 

Bof.

Je n'embarquerai pas dans une guerre de mots pour une chose aussi évidente. Apple n'est pas une compagnie Open Source. C'est pas un ou deux projets qui changent la donne. Encore moins quand certains projets n'émanent pas d'eux.

Et puis, les attaques personnelles envers des inconnus, c'est comme tirer des élastiques aux extraterrestres...

avatar fte | 

@Apollo11

"Et puis, les attaques personnelles envers des inconnus, c'est comme tirer des élastiques aux extraterrestres... "

EXCELLENTE !

avatar LeGrosJeanLou | 

@Apollo11

Certes Apple n'est pas la première contributrice à l'Open Source (bizarrement je crois que c'est MS qui détient cette place) Et alors ? Ni l'article, ni les commentaires ne se gargarisent du contraire.

Ce que tu as prétendu est faux.

C'est la raison pour laquelle j'ai réagi. Si tu avais commencé par affirmer que "c'était bien là les quelques maigres contributions d'Apple à l'Open Source" il n'y aurait eu personne pour te contredire, mais t'as préféré la caricature - méthode d'extrémiste.

Jolie tournure finale malgré tout.

avatar BeePotato | 

@ Apollo11 : « Swift, ce n'est qu'un langage de programmation. Rien à voir avec le système. »

Hmmm… On retombe là sur la vieille question, jamais tranchée : qu'est-ce qu'un OS ?
C'est un ensemble de bibliothèques/frameworks facilitant l'usage de l'ordinateur et fournissant aux développeurs d'applications les fondations sur lesquelles faire reposer leur code.

Et avec Swift, justement, Apple a mis à disposition en open source Foundation, une partie de Cocoa (et donc de Mac OS et iOS).
Sans y avoir été forcée par la moindre licence d'utilisation, si jamais tu te poses la question. ;-)
Ça a donc bien à voir avec le système.

Notons que dans le même genre, longtemps avant ça, elle avait déjà publié en open source CoreFoundation, là encore sans y être forcée.

« Et puis le véritable open source, c'est la communauté qui peut contribuer au code. Impossible avec Apple. »

Ben si, pourtant, c'est possible (et c'est fait). Enfin, sur les parties open source du code, bien sûr — c'est un peu ça l'idée. :-)

avatar C1rc3@0rc | 

@BeePotato

«Hmmm… On retombe là sur la vieille question, jamais tranchée : qu'est-ce qu'un OS ?»

La question ne se pose pas dans ces termes la. Les niveaux du firmware, de l'OS et de l'applicatif sont bien distinct et font partie des fondamentaux enseignés. Les travaux et ouvrages de reference (a commencer par Tanenbaum) sont des incontournables et personne ne les remet en cause.

Pour le developpeur le niveau est clair: soit il fait du developpement systeme et il modifie l'OS, soit il fait de l'applicatif (ou des drivers) et il utilise les interface de l'OS sans modifier l'OS. Ca veut pas dire que l'applicatif se resume a une interface graphique et une utilisation par l'utilisateur final, ça veut dire que l'applicatif est une couche differente de celle de l'OS et qu'elle est soumise a l'OS.
La question a dailleurs ete utilisé par Microsoft pour tenter d'echapper a une partie de sa condamnation, MS voulant faire passer IE comme un composant de l'OS alors qu'il s'agit d'applicatif sans aucun lien.

Apres se pose des questions techniques sur la realisation, (micro noyaux, système monolitique, architecture materiel,...) puis a quel niveau on integre la gestion de quelle fonction du reseau,... mais ça n'a pas d'impact sur ce qu'est un OS.

Pour ce qui est de Swift, il me semble que la volonté de le mettre en Opensource vient de son auteur, qui n'y voyait qu'une distraction. Apple a sauté sur Swift pour le booster et en faire un langage univerel, c'est une autre histoire, mais cet objectif ne pourrait pas etre sans la dimension opensource.

Par contrepour ce qui est de Fondation, il me semble que l'obligation d'opensource est un heritage qui date de NeXT, tout comme les parties de Cocoa concernées.

avatar BeePotato | 

@ C1rc3@0rc : « La question ne se pose pas dans ces termes la. »

Oui, ce « jamais tranchée » était une très mauvaise formulation de ma part. Disons plutôt : une question sur laquelle certains s’acharnent à revenir, en considérant que la frontière doit être placée très bas, ce qui en exclurait les frameworks livrés avec Swift.

« Pour ce qui est de Swift, il me semble que la volonté de le mettre en Opensource vient de son auteur, qui n'y voyait qu'une distraction. Apple a sauté sur Swift pour le booster et en faire un langage univerel, c'est une autre histoire, mais cet objectif ne pourrait pas etre sans la dimension opensource. »

Non. Son auteur initial (Chris Lattner) a débuté le boulot sur Swift comme une simple expérience, sans être sûr que ça aboutirait à quoi que ce soit d’intéressant.
Mais Apple n’a pas « sauté dessus », vu que c’était un développement Apple dès l’origine (Lattner bossant alors pour Apple). Et une fois que son statut est passé de simple expérience à celui de développement très intéressant pour le futur d’Apple, une équipe complète a été mise en place pour assurer son développement. Puis, une fois dans un état suffisamment mûr (après quelques années de travail dessus), le projet a été annoncé publiquement par Apple, avec une version 1. Puis son développement a continué chez Apple, aboutissant à une version 2. Enfin, seulement après ça, Apple l’a passé en open-source, une fois que le projet a été jugé assez abouti pour que ça ait un intérêt.
Il ne faut pas inverser l’histoire. ;-)

« Par contrepour ce qui est de Fondation, il me semble que l'obligation d'opensource est un heritage qui date de NeXT, tout comme les parties de Cocoa concernées. »

Ce n’est pas le cas.

avatar C1rc3@0rc | 

«Et puis le véritable open source, c'est la communauté qui peut contribuer au code. Impossible avec Apple.»

Bien sur que la communauté travaille sur , avec et a partir du code fourni par Apple. Tout comme Apple utilise les codes developpés par la communauté. On est bien dans un processus Opensource et de vraie licence opensource.
Ça veut pas dire qu'Apple fait de l'OS et du materiel opensource, mais comme 90% des societes informatiques Apple utilise et contribue a l'opensource.

Apres la question de savoir si Apple est obligé de publier de l'opensource... oui et non. Non, la plupart de ses publications ne sont pas contraintes par des licences, Apple met en opensource beaucoup plus que ce que ses usages l'oblige.

Oui, parce que comme la majortié des boites informatique, si Apple ne mettait pas autant de composants en opensource il lui faudrait vraiment beaucoup plus de developpeurs pour realiser ses logiciels. Sans compter, que grace a l'opensource Apple beneficie de l'expertise de developpeurs, ingenieurs et chercheurs qu'Apple ne pourrait jamais employer (parce qu'ils sont deja sous contrat ou qu'ils ne veulent pas l'etre...)

avatar BeePotato | 

@ Apollo11 : « Elle ne publie que ce qu'elle est obligée de publier, selon la licence des produits qu'ils utilisent. »

Certains aiment bien se convaincre de ça, mais c'est évidemment faux.

Oh, bien sûr, personne de sensé ne va se mettre à présenter Apple comme un champion de l'open source, ni prétendre que Mac OS et iOS sont des OS publiés en open source. On sait bien que ce n'est (heureusement) pas le cas.
Mais ce n'est pas pour autant une raison pour raconter n'importe quoi et nier la réalité qu'on a sous les yeux.

avatar LeGrosJeanLou | 

@BeePotato

"Elle ne publie que ce qu'elle est obligée de publier, selon la licence des produits qu'ils utilisent."

En fait cette phrase d'@Apollo11 est un peu curieuse dans la mesure ou c'est Apple qui a choisi sa licence ^_^.

C'est comme dire Apple ne mange que ce qu'elle est obligée de manger, selon le menu qu'elle a commandé.

Il n'y a guère que le projet KHTML qui était déjà en Open Source et dont elle n'a pas directement choisi la licence, mais c'était parfaitement voulu. KHTML n'était rien à l'époque(je me souviens de la réaction médusée du public) et Apple aurait tout aussi bien pu partir de zéro Mais le but d'Apple était de contrer MS et rien d'autre. Elle ne voulait pas développer de navigateur sur Windows donc elle a mis son moteur en OpenSource pour que quelqu'un d'autre s'en charge, et c'est exactement ce qui s'est passé.

Ce qu'on peut dire c'est qu'Apple ne met pas ses projets en OpenSource pour la beauté du geste (ou la philosophie) mais parce qu'elle y a un intérêt. Elle a par exemple créé CUPS pour s'assurer qu'on trouve des imprimantes sur macOS. Elle a ouvert HealthKit par souci de transparence etc...

avatar BeePotato | 

@ LeGrosJeanLou : « En fait cette phrase d'@Apollo11 est un peu curieuse dans la mesure ou c'est Apple qui a choisi sa licence ^_^. »

N’exagérons tout de même pas : je pense qu’il faisait référence aux cas où Apple a travaillé sur la base d’un projet open source préexistant (en fait, il semblait convaincu que c’est la seule approche qu’Apple a utilisée pour l’open source, alors que c’est faux).
Et dans ces cas-là, ce n’est évidemment pas Apple qui a choisi la licence initiale du projet.

Et il y a effectivement quelques cas où la licence utilisée oblige Apple à publier ses modifications.
En revanche, ce que semble ignorer Apollo11, c’est qu’il y a également plusieurs autres cas où Apple a publié ses contributions à des projets dont la licence la laissait pourtant libre de ne rien publier (Darwin repose sur beaucoup de code initialement sous licence BSD).

Et, bien sûr, il y a aussi, à côté de ça, les cas auxquels tu as fait allusion, où Apple a publié le code source d’un projet qu’elle a initié et dont elle donc a choisi elle-même la licence.

« Il n'y a guère que le projet KHTML qui était déjà en Open Source et dont elle n'a pas directement choisi la licence »

Euh, non, il y a eu un peu plus que ça.

« Ce qu'on peut dire c'est qu'Apple ne met pas ses projets en OpenSource pour la beauté du geste (ou la philosophie) mais parce qu'elle y a un intérêt. »

Tout à fait.

« Elle a par exemple créé CUPS pour s'assurer qu'on trouve des imprimantes sur macOS. »

Apple n’a pas créé CUPS, qui existait avant qu’elle s’y intéresse. Elle a fini par le racheter à ses développeurs, pour assurer la continuation du développement de cette brique importante de Mac OS, mais ce n’est pas elle qui a initié le projet.

Même chose pour LLVM, qui a attiré très tôt l’attention d’Apple mais n’est pas né dans ses locaux.
En revanche, c’est bien Apple (si je ne m’abuse) qui a ensuite créé Clang pour l’ajouter par dessus — en décidant de le distribuer en open source sans y être obligée par une quelconque licence.

avatar LeGrosJeanLou | 

@BeePotato

Merci pour ces précisions.

C'est quand même beaucoup plus intéressant et constructif que ces incessants combats de chapelle. Je ne savais pas pour CUPS par exemple, ni pour LLVM.

" je pense qu’il faisait référence aux cas où Apple a travaillé sur la base d’un projet open source préexistant"

Oui. Je cherchais surtout à relever le fait (parfaitement explicite avec KHTML qui n'était pas le projet le plus avancé ni le plus populaire à l'époque de la naissance de WebKit) que Apple choisi bel et bien ses projets, et donc la licence qui va avec. À ce niveau ça revient au même que de choisir sa licence.

@Apollo11 a l'air de prétendre qu'Apple publie parce qu'elle y est contrainte. C'est grotesque. Apple ne contribuerait pas à un projet OpenSource si ça pouvait lui nuire, et elle choisit les projets qu'elle souhaite soutenir ou forker en conséquence.

avatar lebauce | 

Il semble que APFS ne fait pas partie du lot.

On va encore avoir droit à des : "je peux pas lire ton disque dur". "Ah mais pourtant ça marche sur mon Mac"

CONNEXION UTILISATEUR