WWDC : Apple Silicon, une transition pas forcément simple

Par:
francoistonic

jeu, 25/06/2020 - 09:40

Les premières informations autour d’Apple Silicon et des futurs Mac Arm commencent à tomber à la WWDC, la conférence développeur Apple. La session Explore the new system architecture… quelques éléments apparaissent. Jusqu’à présent, les Mac x86 se composent du CPU, de la GPU, du processeur T2 (sécurité surtout), etc. L’ambition d’Apple Silicon est d’unifier tout ça dans un SoC : architecture mémoire unifiée, ce qui peut faciliter les échanges, encodage vidéo, Neural Engine, Machine Learning par défaut… Depuis plusieurs années, Apple maîtrise plutôt bien la notion de coeurs asymétriques. C’est à dire la possibilité de différentier les coeurs et les rôles / performances, au lieu d’avoir des coeurs uniformes dans le CPU. L’OS pourrait exploiter tous les coeurs simultanément. Le moteur graphique Metal fonctionnera sur les deux types de processeurs. Plus que jamais, les mécanismes internes seront cruciaux pour gérer les multiples coeurs.

Rosetta a été rapidement abordée. Il s’agit d’une couche pour exécuter les applications macOS, les applications Catalyst, les jeux, les navigateurs, les compilateurs JIT, etc. C’est une émulateurs sur ARM des x84_64. Xcode supporte bien entendu Rosetta. Certains éléments des x86 ne seront pas supportés. Ainsi, les extensions vecteurs AVX ne seront pas disponibles. Le développeur devra vérifier du bon fonctionnement de l’application x86 sur Rosetta. 

L’architecture de démarrage / boot change aussi radicalement. Par rapport au boot sur iPad ou iPhone, sur Mac ARM, il faut supporter les installations multiple de l’OS, les partitions macOS Recovery. Jusqu’à présent, nous avions une multitude combinaisons de touches au boot machine. Désormais, il y aura juste à presser le bouton de démarrage pour accéder aux options. Parmi les nouveautés de boot, on a Mac Sharing mode qui est le remplaçant du mode Target Disk. Il est vu comme un volume SMB. On pourra continuer à démarrer depuis une volume externe. Petite nouveauté, quand le système n’est plus disponible, Apple rajoute l’option System Recovery. Il s’agit d’un OS minimal, dans une partition cachée et permettant de rapidement réinstaller l’OS. 

Dans la session Port your Mac app to Apple Silicon, les ingénieurs confirment (ouf) que les Mac Arm supporteront deux architectures CPU : arm64 (natif) et x86_64 (émulation). arm64 impactera l’ensemble du code et des éléments systèmes ainsi que les API. Xcode supportera les deux « modes ». Les binaires universelles contiendront donc assets et les codes pour arm64 et x86_64. Les apps universelles fonctionnent sur tous les autres Mac et pas uniquement les Mac Arm. Pour le développeur non iOS, il faudra aussi apprendre l’usage des coeurs asymétriques : les P Cores hautes performances et les E Cores, coeurs moins puissants et moins énergivores. Ces différents coeurs peuvent fonctionner en même temps et vous pouvez cibler l’un ou l’autre type de coeur selon l’usage que vous en faites. 

La session iPad and iPhone apps on Apple Silicon Macs est intéressante pour comprendre comment les apps iOS fonctionneront sur les futurs Macs Arm. macOS Big Sur, grâce à UIKit (entre autres) supportent les différents types d’applications iOS et macOS. Apple détermine 3 niveaux de différents d’environnement : le matériel, l’interface et l’OS. Sur la partie matériel, sur Mac, on n’a pas d’écrans tactiles, ou encore des capteurs non présents comme le GPS. Des apps iOS ne pourront pas fonctionner à cause de cette compatibilité. Si Apple nous montre une compatibilité facile, en réalité, ce ne sera pas aussi simple que cela et toutes les apps ne sont pas capables de fonctionner sur un Mac Arm. Ce sera intéressant de voir comment les développeurs iOS vont réagir et si le futur marché des Mac Arm sera pour eux une motivation. 

Roadmap :

  • WWDC 2020 : voir les sessions sur Apple Silicon
  • Fin juin : disponibilité du Mac Mini Arm pour les développeurs sélectionnés
  • Juin - décembre : précisions d’Apple, disponibilités des composants, des outils, des API, etc.
  • Fin 2020 : disponibilité du ou des premiers Mac équipé d’un processeur Apple Silicon + disponibilité de macOS Big Sur
  • Fin 2020 / début 2021 : les développeurs retournent le Mac Mini Arm de développement

Les promesses sont nombreuses, reste à voir comment les développeurs pourront les utiliser. Pour passer au Mac Arm, il y aura du travail. Les 6 mois à venir ne seront pas de trop pour démarrer la transition. 

François Tonic