Windows 10 pour ARM : comment viendra s'insérer le système dans l'offre actuelle ?

Windows 10 pour ARM : comment viendra s’insérer le système dans l’offre actuelle ?

Panique dans les étalages

Avatar de l'auteur
Vincent Hermann

Publié dans

Logiciel

17/05/2017 11 minutes
17

Windows 10 pour ARM : comment viendra s'insérer le système dans l'offre actuelle ?

Durant sa conférence BUILD, Microsoft a donné quelques informations supplémentaires sur l’édition ARM de Windows 10. L’occasion de faire le point sur ce nouveau venu dans la famille, qui pourrait bien poser les bases d’une évolution intéressante pour la vision mobile de l’entreprise.

L’idée d’un Windows fonctionnant sur des puces ARM n’est en soi pas nouvelle. On se souvient évidemment de l’aventure Windows RT, qui s’est mal terminée. Mais Microsoft fournit également depuis de nombreuses années des éditions spécifiques de Windows dédiées à toutes sortes de produits. Une déclinaison Embedded de Windows 7 permet par exemple au système d’être installé sur des supports ARM. On pourrait évoquer également les Windows spécifiques aux smartphones.

Pourtant, si on parle aujourd’hui davantage de Windows 10, c’est que la solution adoptée par l’éditeur pourrait changer la donne, en tout cas de son côté. Microsoft prévoit en effet un système dans lequel toutes les applications classiques fonctionneront, de manière transparente pour l’utilisateur. Nous avons donc décidé de faire le point sur les avantages, inconvénients et perspectives d’une telle décision.

Il faut d’abord cependant redonner le contexte d’une telle annonce.

Windows RT, l’un des grands échecs de Microsoft

Pour bien comprendre la volonté initiale de Microsoft sur ce produit, il faut revenir un peu en arrière, avec la sortie de Windows 8. Pour la première fois, le système embarque une boutique d’applications, le Windows Store. Pour l'accompagner, les développeurs sont alors invités à se pencher sur une nouvelle base permettant de créer des applications d’un nouveau type, UWP, pour Universal Windows Platform.

Le principal avantage d’UWP, c’est qu’il est agnostique. Techniquement, il peut fonctionner partout où Windows se trouve. Le code ne tient pas compte des spécificités matérielles, même si le développeur garde la main et peut optimiser son application pour certains types d’appareils. Cette abstraction a été renforcée avec le temps par Microsoft. Le compilateur Roslyn a permis notamment à l’éditeur de proposer une compilation à la volée dans le Store, les serveurs s’occupant de fournir les bons binaires aux utilisateurs selon l’appareil utilisé.

vlc winrt windows8

De là découle Windows RT : un Windows 8 pour puces ARM, dépourvu de la capacité d’exécuter du code Win32, à l’exception des applications internes que Microsoft avait converties. Seuls les développements en UWP, disponibles à travers le Store, étaient acceptées. Et ce fut l’échec.

Principal problème, le fait que Windows RT se retrouvait dans des offres qui, pour la grande majorité de la clientèle, s’apparentaient à des produits Windows tout ce qu’il y a de plus classiques. Or, Windows est connu pour son imposante logithèque : on peut installer tout ce que l’on veut, ou presque. Le manque d’applications dans le Store et l’incompatibilité avec les logiciels Win32 ont provoqué la chute de ce système, dont les ventes n’ont jamais décollé.

Dans l’intervalle, la situation a quand même évolué

Windows RT est clairement resté comme l’un des plus gros échecs de Microsoft. L’écosystème n’était tout simplement pas prêt et il était difficile de convaincre les acheteurs que la solution était pertinente si presque rien (sorti d’Office) ne pouvait répondre à leurs attentes.

Microsoft a donc remballé ses plans, du moins pour un temps. L’écosystème a cependant continué à évoluer, même si à un rythme d’escargot. Alors que l’on s’approche du deuxième anniversaire de Windows 10 (en juillet), le Store ne brille pas spécialement par son nombre d’applications, même si la situation s’est quand même améliorée. Des éditeurs comme Facebook, Slack, Viber, SAP, Adobe et autres ont désormais des logiciels disponibles, qu’ils soient en UWP ou en Win32.

Ce dernier point est crucial car il représente le principal changement dans l’intervalle. Microsoft avait travaillé pendant un moment sur son projet Centennial, devenu le Windows Bridge. Objectif, permettre aux applications Win32 d’intégrer le Store, une fois passées à la moulinette du DAC (Desktop App Converter).

Conséquence, Microsoft tente la séduction auprès des éditeurs pour les attirer dans sa boutique. Le DAC permet de modifier l’installeur de leurs applications pour les rendre compatibles avec le Store. C’est ce dernier qui gère ensuite l’installation et la distribution des binaires, y compris – et c’est un point important – des mises à jour. Les éditeurs peuvent ensuite incorporer à leur rythme des fonctionnalités spécifiques comme les vignettes dynamiques. Ou pas d’ailleurs.

Ce point a largement été mis en avant récemment avec l’annonce de Windows 10 S.

Windows 10 S, un Windows RT nouvelle formule

Le DAC et le Windows Bridge joueront un rôle central dans la stratégie dévoilée par Microsoft autour de Windows 10 S, l’édition pensée pour le monde de l’éducation.

Du coup, c’est en quelque sorte l’aventure RT qui recommence, mais avec deux différences de taille. D’une part, une offre en logiciels Win32, Microsoft préparant d’ailleurs pour très bientôt une offre Office 365 classique dans cette optique. Telegram, Slack, Adobe et autres proposent déjà leurs applications Win32 de cette manière.

Cette solution intermédiaire fait que Windows 10 S a techniquement plus de chances de réussir que Windows RT, surtout que la deuxième grosse différence est sa capacité à migrer vers une édition Pro. Moyennant finances (49 dollars, le tarif français reste à confirmer), l’utilisateur obtient alors un Windows complet, avec possibilité d’installer ce qu’il veut, y compris après récupération d’un exécutable depuis le web.

Microsoft laisse bien sûr entrevoir un avenir où tout serait géré via le Store, avec comme principal argument la sécurité. Puisque la firme serait en charge du contrôle et de la distribution, elle pourrait centraliser la détection des comportements malveillants et assurerait que des serveurs quelconques n’ont pas été attaqués, comme on a pu le voir avec Transmission et HandBrake. Le simple fait qu’Apple ait accepté de proposer iTunes dans le Store envoie un signal assez clair aux éditeurs tiers.

Mais avec un tel contexte, voilà que Windows 10 pour ARM pointe le bout de son nez. Avec à la clé des perspectives intéressantes, mais également une offre trouble.

Windows 10 pour ARM : la conversion des binaires

Dans une vidéo d’un petit quart d’heure, Microsoft est revenu sur le fonctionnement de cette édition très particulière. Comme on l’a vu, le support de l’architecture ARM n’a rien de nouveau à Redmond, mais ce que compte faire Microsoft est cette fois différent, l’utilisateur pouvant installer ce qu’il veut.

Comment fonctionne ce système ? D’une part, l’intégralité de Windows se retrouve converti pour exploiter l’architecture ARM64. Le noyau, les pilotes et tous les programmes internes sont ainsi concernés. Pour l’instant, et comme on s’en souvient, la seule puce compatible est le Snapdragon 835 de Qualcomm. Une situation qui évoluera sans doute, mais la situation peut être complexe avec ARM puisque chaque constructeur peut en créer des variantes.

Puisque l’utilisateur peut installer ce que bon lui semble, où s’opère le gros changement ? Pour que les applications puissent fonctionner, elles doivent pouvoir exploiter une couche d’abstraction nommée WOW, pour Windows on Windows. Mais avant même de pouvoir y accéder, elles doivent être faites d’un code reconnu par le système. À l’origine, ce n’est pas le cas, les applications visant Win32 étant prévues pour x86. Il faut une conversion, et donc une émulation.

Lors de son premier démarrage, le code binaire d’une application est converti en instructions ARM64 natives. Ce code traduit est stocké en cache sur l’unité de stockage et en mémoire vive. Windows produit alors des DLL qu’il nomme CHPE (à prononcer « chipie » selon les deux ingénieurs de la vidéo), pour Compiled Hybrid Portable Execution. Dans ces fichiers, on trouve ainsi le code ARM64 et tout ce qui est nécessaire à la couche WOW.

Conséquence, le code qui s’exécute réellement est du ARM64. Ce qui permet à l’éditeur de mettre en avant un argument qui doit faire mouche : les performances sont natives, ou quasi-natives. En l’état actuel des choses, on ne sait pas réellement si une telle affirmation doit être prise pour argent comptant, et on la prendra donc avec des pincettes.

windows 10 armwindows 10 arm

Ce que permettrait Windows 10 pour ARM

On se retrouverait donc avec un Windows capable dès son lancement d’en faire plus que Windows 10 S. On rappellera cependant que rien n’empêche Microsoft de préparer une version ARM de cette édition, puisque les caractéristiques peuvent tout à fait être mélangées : des applications UWP et Win32 qui s’installent uniquement depuis le Store, et fonctionnent sur ARM (ce qu'UWP gère déjà).

Beaucoup se demandent sans doute pourquoi travailler sur une telle édition de Windows. Si l’on se penche sur la stratégie OneCore de Microsoft, on se rappelle que l’objectif est de fournir une même base fonctionnant partout. « Partout » incluant d’autres architectures. En outre, l’autre grand échec de Microsoft concerne justement la partie mobile : les ventes de smartphones se sont complètement effondrées.

On s’avance donc vers une plateforme pouvant fonctionner partout, le message central devenant alors que l’utilisateur n’aurait plus à se soucier du matériel, puisque ses applications y fonctionneraient dans tous les cas. Le séparateur serait alors purement d’ordre matériel. On imagine assez mal en effet les professionnels cherchant avant tout de la puissance de calcul basculer sur des tablettes ou portables équipés en ARM. Sans parler des joueurs.

Quelles offres avec un tel système ?

De fait, on peut facilement imaginer que la gamme Surface pourrait s’étoffer de nouvelles tablettes, plus légères et mobiles, davantage conçues pour la consommation des contenus que pour leur production (la stratégie centrale des Surface Pro). Et pourquoi pas « Surface Phone » ? Après tout, Windows 10 pour ARM laisserait tourner toutes les applications, offrant des perspectives intéressantes sur l’évolution de Continuum.

Par contre, la stratégie et la communication de Microsoft vont devoir s’adapter. Jusqu’à, le choix de Windows 10 se résumait à l’édition Familiale ou Professionnelle, avec des noms suffisamment explicites. Au cours des prochains mois, on va voir arriver non seulement Windows 10 S, mais aussi la version ARM. Le premier ne fonctionne que sur des processeurs x86 mais bloque les installations provenant du web, tandis que le second laisse tout installer mais réclame des puces ARM. Sans parler des éditions classiques qui ne se posent pas tant de questions.

Pour éviter notamment de reproduire la débâcle de Windows RT, les offres vont devoir être parfaitement calibrées et la communication claire, au risque d’entrainer une grande confusion chez les clients. La plupart des acheteurs n’a en effet que faire des détails techniques, ils souhaitent simplement acheter un ordinateur qui fonctionne et ne les limitera pas. Ce qui nécessitera d'ailleurs de répondre à certaines questions laissées pour l'instant en suspens, notamment sur les réalités virtuelle et augmentée : le système sera-t-il compatible avec Hololens et autres solutions Holographic ?

Ne reste finalement qu’à voir ce que fera réellement de son Windows 10 pour ARM à l’automne prochain, et quels types de produits seront proposés. Les tablettes et ordinateurs portables sont les types d’appareils les plus évidents, mais rien n’empêcherait les constructeurs de proposer des tout-en-un ou de venir chasser sur les terres des mini unités centrales de type NUC d’Intel.

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Windows RT, l’un des grands échecs de Microsoft

Dans l’intervalle, la situation a quand même évolué

Windows 10 S, un Windows RT nouvelle formule

Windows 10 pour ARM : la conversion des binaires

Ce que permettrait Windows 10 pour ARM

Quelles offres avec un tel système ?

Le brief de ce matin n'est pas encore là

Partez acheter vos croissants
Et faites chauffer votre bouilloire,
Le brief arrive dans un instant,
Tout frais du matin, gardez espoir.

Fermer

Commentaires (17)


Pour ceux qui comme moi ont tiqué sur “émulation” + “le code binaire d’une application est converti en instructions ARM64 natives”, et ont pensé “dynamic recompilation” et bien non.



La réponse est donnée dans la vidéo: “Dynamic Binary translation


Petite faute : “On se souvient évidemment de l’aventure Windows RT, qui s’est mal terminéE”


Corrigé, merci&nbsp;<img data-src=" />


Je reste dubitatif ce le cas.

L’expérience des mise à jour windows phone (que je posséde toujours)&nbsp; sur certain matériel à chaque fois lumia 800 impossible à migré en windowsphone 8 (resté à7.8) ; Lumia 1020 que ne peut migrer en windows 10 m’ayant pas mal refroidi.&nbsp;



De plus la force de windows, jusqu’à présent c’est ça grand retro compatibilité. Un gand nombre de jeu sortie à l’époque de windows XP, peuvent encore fonctionner avec windows 10. Et que cela sera encore possible dans l’avenir …



&nbsp;&nbsp;


La stratégie de microsoft à clairement été révélé lors de la build. Quelque soit la plateforme de développement et la plateforme pour laquelle on développe, il sont capable de prendre le code et de l’exécuter. J’avoue qu’à y réfléchir c’est tentant, c’est une sorte d’abstraction au hardware (ARM, x86,..) et si on rajoute à ça l’abstraction aux os (windows,linux, android,ios,…) via .NET, ça peut être impressionnant.



Après entre les graphiques, et belles images, il va falloir qu’ils nous le prouvent au jour le jour. Est-ce que ce sera aussi complet qu’un développement directement sur la plateforme dédié et pas limité ?



Je vais regarder la google I/O ce soir pour voir ce qu’il y a de neuf. J’avoue que de leur coté google me parait de plus en plus nombriliste avec leur plateforme et leurs applications. Je me trompe peut être, mais ils se reposent beaucoup sur le succès d’Android je trouve, (je vois peut être pas tout hein ? ;) )



Bon les deux géants sont pas au même stade de maturité, c’est un peu le combat du jeune face au vieux. Mais pour une fois, le vieux a une bonne idée après des succès passé et plusieurs échecs récents.


En fait il reste un point noir mais pas trop de solutions possibles…

Ils émulent uniquement le code en espace utilisateur donc les applications. Les drivers doivent être obligatoirement compilées en ARM au départ.

Donc même si avec les drivers Windows 10 universels ils gèrent l’arm. Beaucoup de constructeurs n’ont pas porté leurs drivers de périphériques pour ARM.

Ensuite toute une classe d’applications systèmes utilisent des drivers kernel mode. Ces applications nécessiteront une mise à jour.

Par contre je pense que les drivers user mode ne devraient pas poser problème avec cette architecture.


Sympa l’article, cela permet de mieux comprendre et de mettre la stratégie de Microsoft en perspective.


Je ne pense pas que l’offre sera moins claire, la dénomination “Windows on ARM” n’a rien d une dénomination commerciale, c’est juste le nom du projet.

Au final vu qu un W10 sur x86 donnera la meme expérience utilisation qu’un W10ARM sur ARM, à mon avis ce sera simplement vendu comme “W10”, ensuite c’est juste l’archi du cpu qui est différente.

C’est même pas certain que cette capacité ne soit pas simplement intégrée dans W10, s’activant (ou s’installant) à la détection d’un cpu ARM. Bref on aurait juste un W10, mais qui pourrait tourner sur plusieurs archis cpu.



Avec c-shell il serait meme possible que la déclinaison mobile disparaisse (remplacée par un W10 normal s’adaptant complètement à l’appareil).



En fait le seul truc étrange dans leur découpage c’est family/pro et leurs tarifs… avec W10S qui permet l’upgrade à pro pour 50$, la différence de prix family/pro (et le prix de l’upgrade) n’a plus vraiment de sens… ça ne m’étonnerait pas qu’il y ait des changements de ce coté peu après la sortie des machines sous W10S








bahamut100 a écrit :



Petite faute : “On se souvient évidemment de l’aventure Windows RT, qui s’est mal terminéE”



En bas d’article tu as un bouton “/!\ Signaler une erreur” pour éviter de l’écrire en commentaire ;)







TiTan91 a écrit :



C’est même pas certain que cette capacité ne soit pas simplement intégrée dans W10, s’activant (ou s’installant) à la détection d’un cpu ARM. Bref on aurait juste un W10, mais qui pourrait tourner sur plusieurs archis cpu.



Ca je ne pense pas, il y a trop de différences entre les archis pour avoir en même temps plusieurs codes bas-niveau…



Petit hors sujet : Il y a même plus facile Il suffit juste de surligner avec sa souris et un petit popup interrogeant sur l’éventualité d’un défaut ( “une erreur ?) s’affiche et simplement en cliquant dessus cela ouvre le menu de report d’erreur.&nbsp;



Moi je trouve ça génial.&nbsp;








charon.G a écrit :



Donc même si avec les drivers Windows 10 universels ils gèrent l’arm. Beaucoup de constructeurs n’ont pas porté leurs drivers de périphériques pour ARM.



Ensuite toute une classe d’applications systèmes utilisent des drivers kernel mode. Ces applications nécessiteront une mise à jour.



Quels drivers seraient à porter? La plupart des périphériques USB sont compatibles avec les pilotes de classe standards, de même pour les périphériques bluetooth.



Quand aux applications système, laquelle serait intéressante sur un ARM64? Un antivirus? Par ce que dans ces plans, j’imagine aisément que SQL server pour ARM64 est déjà dans les tuyaux.



Ce n’est pas vrai, il y a pas mal de pilotes qui ne sont pas gérées par les pilotes de classes standard comme les clés wifi,scanners,casques audios,manettes de jeux etc.

Pour les applications systèmes oui tu as les antivirus ,les logiciels de gravure mais aussi les logiciels comme cpuz ou driverscloud….


Pour les pilotes, on peut imaginer que Microsoft fasse un effort pour ajouter à la procédure de certification une phase de compilation binaire x86 → binaire ARM.



Certes ça laisse de côté tout ce qu’il faut aller chercher sur le site du constructeur, mais cette chère Mme Michu fait-elle des recherches explicite de pilote ?



NB: Pour le projet de recherche d’un OS en code managé (j’ai oublié le nom, shame on me), il y avait bien une phase d’installation d’un pilote qui compilait celui-ci binaire VM →binaire natif. Donc, en fouillant dans ses cartons Microsoft pourrait trouver le nécessaire pour qu’un pilote s’installe sur toute architecture de CPU.


J’ai un peu peur pour les pilotes mais c’est franchement sympa comme projet








charon.G a écrit :



Ce n’est pas vrai, il y a pas mal de pilotes qui ne sont pas gérées par les pilotes de classes standard comme les clés wifi,scanners,casques audios,manettes de jeux etc.

Pour les applications systèmes oui tu as les antivirus ,les logiciels de gravure mais aussi les logiciels comme cpuz ou driverscloud….





Manettes des jeu = pilotes HID standard

Casque audio = audio standard

Scanners = standard

Wifi, il doit bien y avoir un standard maintenant.



Je m occupe de driverscloud je peux te dire qu il y a plein de matos usb qui ne passent pas avec les drivers usb par defaut. Quand ca passe il manque plein d options.








charon.G a écrit :



Je m occupe de driverscloud je peux te dire qu il y a plein de matos usb qui ne passent pas avec les drivers usb par defaut. Quand ca passe il manque plein d options.





Oui, il manque des options, mais souvent les drivers standard sont plus stables -&gt; je les préfère. Ceci dit, je choisis beaucoup le matos par rapport à sa compatibilité. Mais ces quelques dernières années, je n’ai pas eu de mauvaise surprise.