La migration d’appareils vers une architecture entièrement x64 fut un défi de taille pour bon nombre d’entreprises faisant affaire avec Windows. Jusqu’à tout récemment, x64 était la norme incontestée. L’architecture ARM, quant à elle, n’était envisagée sérieusement que pour les appareils mobiles, l’IdO et les machines bricolées chez soi. Grâce à l’avènement d’ARM64 (aussi appelé « Aarch64) en 2011, les systèmes basés sur ARM constituent désormais une réelle possibilité. C’est alors qu’une question s’impose : quels avantages un ordinateur ARM, portable ou non, peut-il offrir à une entreprise?
L’économie d’énergie et la performance améliorée ont toujours servi à départager ARM des architectures x64. ARM dispose d’une architecture dite RISC (en français : à jeu réduit d’instructions), alors que x64 propose une architecture CISC (à jeu d’instructions complexe). Au lieu d’exécuter un seul jeu d’instructions complexe sur plusieurs cycles d’horloge (ex. : multiplier), ARM découpe la commande en une série d’opérations plus simples qui ne nécessitent qu’un cycle d’horloge chacune. Résultat : moins de transistors et une moindre dépense en énergie.
Que signifie la prise en charge ARM pour Remote Desktop Manager?
L’architecture ARM64 est officiellement prise en charge.depuis la version 2022.3.14.0 de Windows RDM lancée en novembre 2022. Si travailler à partir d’une émulation de Windows sur ARM n’est pas votre tasse de thé, alors vous réjouissez-vous : RDM fonctionne dorénavant comme une application native ARM64. À vous l’économie d’énergie et les performances améliorées au quotidien grâce aux appareils ARM!
RDM prend en charge les puces ARM64 Apple Silicone M1/M2 pour les utilisateurs de systèmes d’exploitation MAC depuis octobre 2021.
Windows sur ARM en détails
Windows sur ARM a connu un long et ardu développement. D’abord proposé sous la forme de Windows RT en 2012, Windows sur ARM n’a pas réussi à s’imposer. La prise en charge des applications était insuffisante et l’exécution des applications Win32 classiques était impossible. Ce n’est que plusieurs années après l’échec de Windows RT que Windows sur ARM refit surface. Mais cette fois, avec la capacité d’exécuter n’importe quelle application native et Win32.
L’avenir de Windows sur ARM semblait enfin assuré! Ç’aurait été le cas si l’émulation ne réduisait pas les performances (surtout pour les premiers modèles équipés de jeux de puces ARM moins performants). Mais les choses se sont améliorées depuis. En effet, d’importants fabricants d’ordinateurs se sont mis à concevoir des puces ARM (ex. : pour le Lenovo ThinkPad X13s).
Le problème de l’émulation
Doit-on comprendre que les tous les problèmes liés à la performance sont chose du passé? Malheureusement… non. Bien que les gains de vitesse que rendent possible les puces ARM compensent la baisse de performances qu’entraîne l’émulation, les applications ARM non natives fonctionnent tout de même plus lentement. Chez Devolutions, nous avons rencontré deux problèmes :
- La compilation de RDM en .NET pour la prise en charge native d’ARM.
- La mise à jour des bibliothèques tierces, internes et à source libre pour assurer leur compatibilité avec ARM.
Puisque RDM est conçu en .NET, les binaires sont sujets à la compilation juste-à-temps (JIT) en temps réel. La compilation JIT entraîne déjà des baisses de performances, une seconde compilation JIT se produit lors de l’émulation ARM. Il s’agit du problème dit du « JIT double ». À partir de.NET 4.8.1, Microsoft permet la compilation ciblée pour les processeurs ARM. RDM peut donc maintenant s’exécuter comme une application ARM native!
Pour les développeurs : sachez que les applications .NET 4.8.1 ARM sont exécutées en mode Intel emulation par défaut. Une recherche intensive nous a permis de découvrir une clé de registre non répertoriée qui force l’exécution d’ARM en natif. Bref, nous mettons tout en œuvre pour améliorer la performance!
Malheureusement, plus d’une bibliothèque comprend RDM, et toutes doivent être compatibles avec ARM pour éviter le problème du « JIT double ». Voilà pourquoi les équipes Devolutions travaillent sans relâche pour préparer nos bibliothèques internes à ARM. En ce qui a trait aux bibliothèques tierces ou à source libre utilisées actuellement, nous avons mis à jour celles qui pouvaient l’être et privilégié celles proposant une prise en charge native d’ARM.
Cette méthode permet à RDM de s’exécuter comme une application native d’ARM, avec tous les bénéfices relatifs aux performances et à l’économie d’énergie qui en découlent. D’ailleurs, le portage de RDM vers .NET 6, avec ses performances nettement améliorées, est dans les cartons et pas seulement pour ARM!
L’avenir de Windows sur ARM avec ARMv9
Les systèmes qui utilisent Windows avec ARM utilisent des jeux de puces ARM64 issus de la version ARMv8, parmi lesquels le processeur Snapdragon 8cx Gen 3 que contient le Lenovo ThinkPad X13s. La version ARMv9 propose de nouvelles fonctionnalités de sécurité telles que l’architecture Confidential Compute (CCA), ainsi que des améliorations de performances telles que les modules d’extensions d’architecture SVE2. Les processeurs Qualcomm Snapdragon 8cx Gen 4 semble prêt à rivaliser avec le Apple M1 et annonce un avenir radieux pour les appareils ARM!
Qu'adviendra-t-il de RDM?
Avec l’industrie qui s’oriente vers les processeurs ARM, RDM se voit ARMé de toutes les ressources nécessaires pour le proche futur. Les prochaines améliorations qui toucheront à la prise en charge de Windows sur ARM et à RDM directement, seront autant de manières d’augmenter les performances tout en réduisant le coût énergétique. Certes, la route fut longue, mais la puissance combinée de RDM et de Windows sur ARM annonce de nouvelles possibilités pour toute l’entreprise.