Histoires de Bureaux64 et moi, et moi, et moi

Wes Miller

Windows XP est disponible de manière native pour les architectures 64 bits depuis plus de cinq ans. Mais, à moins que vous ne soyez parmi ceux qui ont adopté très tôt un processeur Itanium d'Intel (Windows XP pour Itanium est sorti le même jour que Windows XP), vous avez probablement entendu parler plus récemment de sa disponibilité avec Windows XP et Windows.

Versions de Windows Server 2003 pour systèmes x64. x64, auquel il est également fait référence dans l'industrie par le nom x86-64, est le nom générique de l'architecture AMD64 d'AMD et EM64T d'Intel. Si vous avez acheté un nouveau PC plus ou moins au cours de l'année précédente, il y a de bonnes chances qu'il soit 64 bits, même s'il est actuellement utilisé comme un 32 bits (comme c'est le cas pour la plupart).

Je travaille de nos jours pour une junior entreprise d'Austin, au Texas. En raison de l'architecture de l'un de nos produits, nous souhaitons tirer parti de certains avantages très spécifiques à l'architecture x64, à l'image de l'équipe Microsoft® Exchange 2007 qui a pris la décision ferme de livrer uniquement une version pour l'architecture x64. De même, l'équipe de développement et de test que je dirige est uniquement déployée sur des versions x64 de Windows® XP et Windows Server® 2003 pour les postes de travail de développement, les portables, les serveurs et les serveurs de production. En outre, j'utilise Windows XP édition professionnelle x64 sur mon portable personnel afin de tester et de déboguer notre produit.

Curieusement, la première réaction que j'obtiens de la plupart des personnes lorsque je mentionne que j'utilise Windows 64 bits, en particulier sur mon ordinateur portable, est un regard plutôt troublé. Si ces personnes connaissent l'informatique 64 bits, c'est un peu une expression d'incrédulité mélangée à de l'amusement, en raison de la supposition habituelle qu'il est difficile de trouver des pilotes de périphériques pour systèmes 64 bits. Dans la rubrique de ce mois-ci, j'expliquerai pourquoi et comment j'utilise Windows XP et Windows Server 2003 sur des systèmes x64 en mode 64 bits et je décrirai certains avantages de ce déploiement (et les obstacles possibles) auxquels vous pouvez vous attendre. J'examinerai également des aspects de la prise en charge, de la migration et du déploiement de Windows Vista™ x64.

Un peu d'histoire

Comme je l'ai indiqué précédemment, l'origine de la prise en charge du 64 bits dans Windows a vraiment commencé avec la prise en charge du processeur Itanium d'Intel. (Même si Windows était disponible pour le processeur Alpha 64 bits, Windows n'était en fait jamais exécuté en mode 64 bits sur l'Alpha) Il n'y a pas de prise en charge de l'Itanium dans Windows XP et Windows Vista, et l'architecture x64 porte actuellement le flambeau de l'informatique cliente Windows 64 bits. Une sélection plus étendue d'éditions de Windows Server 2003 est actuellement disponible pour les processeurs x64 que les processeurs Itanium (qui ont été essentiellement relégués aux charges de travail de haut niveau des datacenters), une tendance qui, selon moi, se poursuivra avec la prochaine version de Windows Server, nom de code « Longhorn », à sa sortie.

La prise en charge de Windows sur la plate-forme x64 est devenue disponible à la sortie de Windows Server 2003 Service Pack 1 (SP1). Bien que cela prête un peu à confusion, c'est également à cette époque que la version x64 de Windows XP est devenue disponible, ce qui signifie que les produits Windows XP 32 bits et 64 bits dérivaient de trois arborescences de code différentes de Windows. Alors que les produits 32 bits disposent actuellement d'un deuxième Service Pack, la version 64 bits de Windows XP n'a techniquement aucun niveau de Service Pack (il est également possible de le considérer comme ayant le SP1 pour Windows Server 2003 déjà intégré).

La configuration requise pour utiliser Windows 64 bits est la même, qu'il s'agisse de Windows XP, Windows Server 2003, Windows Vista ou Windows « Longhorn ». Évidemment, il est avant tout nécessaire de disposer d'un processeur 64 bits. Dans le cas des processeurs AMD, ceci signifie qu'il faut disposer d'un processeur simple, double ou quadruple cœur affichant une compatibilité AMD64 (voir amd.com/us-en/Processors/ProductInformation/0,,30_118,00.html). Pour Intel, ceci revient à chercher un système simple, double ou quadruple cœur compatible EM64T ou prenant en charge l'architecture Intel 64 (voir intel.com/technology/intel64). Notez que toute la nuance se dissimule ici dans les détails. Un système Intel Core Duo, par exemple, n'est pas 64 bits. Un système Intel Core 2 Duo est 64 bits, même s'il peut y être simplement fait référence comme à un Centrino Duo (comme c'est le cas pour mon portable).

Vivre avec x64

Une fois vous avez déterminé si votre système prendra en charge une version 64 bits de Windows en mode natif, vous devrez vous occuper de la prise en charge des périphériques. Malheureusement, même si Microsoft a encouragé les fournisseurs et les OEM (durant au moins deux années de sessions WinHEC) à créer et à certifier des pilotes 64 bits pour leurs périphériques et systèmes, le plus grand défi auquel vous devez faire face si vous utilisez Windows x64 est la recherche de pilotes pour les périphériques matériels ou le logiciel. D'après mon expérience, votre utilisation de x64 sera optimale lorsque la prise en charge de périphériques nécessaire est limitée et que cette utilisation offre les avantages les plus logiques.

Il est plus difficile de trouver des pilotes pour les systèmes de bureautique et mobiles. Généralement, vous aurez le plus de chance avec un fournisseur OEM majeur ou un système créé à base de composants de qualité d'entreprise (où il est probable que l'utilisation professionnelle incite le fournisseur ou l'OEM à créer et à signer des pilotes compatibles x64).

Pour Windows Vista, la situation est heureusement bien meilleure. Au lieu d'un monde où x86 est l'architecture de choix et x64 est l'architecture négligée avec des pilotes disponibles en nombre limité pour la majorité des matériels, la situation est inversée. Pour Windows Vista, les fournisseurs de périphériques doivent soumettre leurs pilotes x64 pour les tests de compatibilité. En fait, les pilotes x86 n'ont pas besoin d'être aussi inclus, mais peuvent certainement l'être. Du point de vue conceptuel, ceci signifie que certains matériels, surtout les périphériques qui profitent des nouvelles capacités de Windows Vista, peuvent offrir uniquement la prise en charge de Windows x64 et non x86.

En réalité, les pilotes ne sont qu'un des problèmes que vous rencontrerez lorsque vous tenterez d'exécuter Windows 64 bits en mode natif. Le plus gros problème est, pour commencer, d'y parvenir (d'effectuer la migration), mais j'aborderai cela plus tard.

Pourquoi 64 bits ?

AMD, Intel et Microsoft ne sont bien entendu pas passés à une architecture 64 bits pour le plaisir. Le passage à 64 bits offre plusieurs avantages essentiels. Comme vous pouvez le voir dans la figure 1, l'amélioration la plus importante apportée par l'architecture x64 est la capacité d'adresser beaucoup plus de mémoire (jusqu'à 16 téraoctets (To)) par rapport aux 4 Go que Windows 32 bits peut adresser. Notez que bien que les pointeurs 64 bits puissent adresser jusqu'à 16 To, les applications ont seulement accès à environ 8 To maximum.

Figure 1 Limites de l'espace d'adressage mémoire

Espace d'adressage Windows 64 bits Windows 32 bits
Mémoire Virtuelle 16 To 4 Go
Fichier d'échange 512 To 16 To
Réserve paginée 128 Go 470 Mo
Réserve non paginée 128 Go 256 Mo
Cache système 1 To 1 Go

En outre, les versions x64 de Windows permettent d'utiliser l'interdiction de l'exécution de données (Data Execution Prevention, DEP), également disponible sur les systèmes x86 avec prise en charge de NX (No Execute). Ceci permet d'obtenir une solution à base de matériel que Windows utilise pour empêcher les saturations de tampons. Elle empêche l'exécution de code des pages de données en mémoire (voir support.microsoft.com/kb/875352, en anglais, pour plus d'informations sur ce sujet).

Les versions x64 de Windows permettent la prise en charge native des unités centrales multiprocesseur ou multicœur, comme le font les versions x86 de Windows. Mais l'une des plus grandes difficultés de création d'image d'un système Windows XP est éliminée par l'utilisation d'une couche d'abstraction matérielle unique (Hardware Abstraction Layer, HAL) sur toutes les installations Windows x64, sans avoir à batailler pour identifier la couche HAL utilisée sur les systèmes non ACPI ou avec une seule UC.

Fondamentalement, Windows x64 en tant qu'architecture vous permet d'utiliser votre infrastructure de gestion existante et vos logiciels 32 bits existants (par émulation) ainsi que tout logiciel 64 bits, avec la capacité d'accéder à une mémoire étendue. En fait, les seuls effets secondaires désagréables du passage à Windows x64 sont : l'absence complète de prise en charge des applications 16 bits (y compris les applications 32 bits avec des programmes d'installation 16 bits), les problèmes avec les applications qui ne s'exécutent pas avec fiabilité lorsque la fonction DEP matérielle est activée (bien que DEP puisse être désactivé en fonction de chaque processus et que l'équipe Windows Application Compatibility ajuste certaines applications qui ne s'exécutent pas correctement avec DEP activé) et, finalement, le fait que dans Windows Vista 64 bits tous les pilotes doivent être signés numériquement.

Ce dernier élément a été ajouté pour empêcher l'altération du noyau Windows en mémoire, une technique souvent utilisé par rootkits. Le raisonnement est que, puisque x64 est l'architecture pour laquelle Microsoft encourage les fournisseurs à développer des pilotes avant tout (afin d'obtenir des pilotes passant par les tests de compatibilité matérielle Windows), les conditions requises ne sont pas aussi effrayantes qu'elles ont pu l'être par le passé.

Il y a quelques autres points à ne pas oublier si vous envisagez d'utiliser Windows pour les systèmes x64. Il n'y a pas aucune version de Windows XP pour systèmes x64 comprenant les fonctionnalités offertes par Windows Media® Center Edition ou Windows Tablet PC Edition. Cependant, ceci est différent dans Windows Vista, avec lequel les versions x64 de Windows disposent des mêmes fonctionnalités que la version x86.

Virtualisation

Je n'ai pas jusqu'ici mentionné la virtualisation. Je ne parle pas de Microsoft Virtual PC ou des produits de virtualisation PC de VMWare ; je parle de la virtualisation de système d'exploitation pour les programmes exécutables 32 bits. Dans les versions 32 bits de Windows, les applications 16 bits s'exécutent toutes dans le contexte NTVDM, une machine virtuelle MS-DOS®. Comme je l'ai dit précédemment, il n'y a pas de prise en charge des applications 16 bits dans les versions 64 bits de Windows. Par contre, bien que la plupart des composants intégrés à Windows s'exécutent en mode natif comme programmes binaires 64 bits, certains composants et de nombreux programmes de sociétés tierces s'exécutent comme applications 32 bits.

Windows vous donne une couche d'émulation toute nouvelle appelée Windows On Windows (WOW) pour permettre à ces applications 32 bits de disposer d'une vue différente du système d'exploitation, en s'exécutant en fait sur une version 32 bits de Windows. Sous WOW, les applications x86 voient Program Files (X86) comme étant simplement Program Files. De même, %WIN­DIR%\SysWOW64 apparaît pour les applications x86 comme étant %WINDIR%\System32. Les applications x86 voient la clé de registre HKLM\SOFTWARE\Wow6432Node comme ils verraient le nœud HKLM\SOFTWARE.

En utilisant l'outil Process Explorer, vous pouvez explorer une autre perspective de virtualisation. De nombreuses applications 32 bits s'attendant à interagir avec des programmes binaires 32 bits Windows, nombre de ces programmes binaires sont fournis dans les versions 64 comme 32 bits. En ajoutant une colonne supplémentaire à Process Explorer, vous pourrez facilement le constater. Dans la figure 2, vous remarquerez deux instances de cmd.exe, une version 32 bits et une version 64 bits. Vous noterez, dans l'instance 32 bits, plusieurs DLL wow64* chargées dans le processus 32 bits. Celles-ci témoignent de la virtualisation à l'œuvre, qui permet aux applications 32 bits de fonctionner sous Windows 64 bits. Notez également le répertoire de travail (Path) utilisé par les versions 64 et 32 bits de cmd.exe.

Figure 2 Process Explorer montre les versions 32 bits et 64 bits de cmd.exe

Figure 2** Process Explorer montre les versions 32 bits et 64 bits de cmd.exe **(Cliquer sur l'image pour l'agrandir)

Une remarque finale importante au sujet de la virtualisation : Windows exécute explorer.exe comme une application 64 bits native, ce qui a des avantages comme des inconvénients. Le plus gros inconvénient est que toute extension du shell de l'Explorateur Windows doit être recompilée pour x64 afin de fonctionner (ce qui n'a pas été effectué pour la majorité d'entre elles).

C'est l'inverse pour Internet Explorer® : il s'exécute de manière native avec la version 32 bits. Ceci a été conçu principalement pour que la multitude de contrôles ActiveX® sur Internet et déjà utilisés à l'heure actuelle continuent à fonctionner tels quels. Sans cela, comme les applications 64 bits ne peuvent pas charger de DLL ou de pilotes 32 bits intra-processus, il n'y a aucune manière efficace de charger les contrôles ActiveX 32 bits (ce qui inclut pratiquement tous les contrôles ActiveX actuellement disponibles) sur un explorateur 64 bits, et signifie qu'une grande partie du contenu d'Internet devient inaccessible. Pour voir ceci dans la pratique, essayez de charger C:\Program Files\Internet Explorer\iexplore.exe sur un système Windows 64 bits et de visiter un site quelconque chargeant un contenu avec contrôle ActiveX (même Windows Update), le résultat sera un niveau variable de défaillance. Windows Update (voir la figure 3) a maintenant mis à jour son environnement pour ouvrir une instance 32 bits d'Internet Explorer dans ces circonstances. À l'avenir, il y aura très certainement des contenus avec contrôles ActiveX mis à jour pour profiter d'Internet Explorer 64 bits. Mais comme la majorité des systèmes Windows utilisent une version purement 32 bits, la nécessité d'une mise à jour du contenu avec contrôles ActiveX jour n'est pas critique. Je ne pense pas que cela changera avant quelques temps.

Figure 3 Les contrôles ActiveX 32 bits échouent dans Internet Explorer 64 bits

Figure 3** Les contrôles ActiveX 32 bits échouent dans Internet Explorer 64 bits **(Cliquer sur l'image pour l'agrandir)

Windows x64 chez Pluck

J'ai indiqué au début de cet article que nous avons commencé la transition vers Windows x64 chez Pluck. Nous y avons procédé avec trois versions différentes de Windows : Windows XP édition professionnelle x64, Windows Server 2003 Enterprise x64 Edition et Windows Vista x64.

La petite taille de notre organisation nous a permis, alors que nous commencions le développement de notre produit le plus récent, de commencer à effectuer la migration vers Windows x64 pour profiter de ses avantages. En procédant ainsi, nous avons pu nous assurer que tout nouveau matériel commandé était compatible x64. En fait, ce sont les capacités étendues en termes de mémoire de x64 conjointement à la virtualisation qui nous permettent d'utiliser notre produit comme nous le faisons. Tous nos serveurs physiques sont exécutés comme serveurs 64 bits virtuels sur un serveur hôte 64 bits. Chaque serveur hôte dispose de 16 Go de RAM répartis entre les serveurs virtuels hébergés dessus (en général 2 Go pour chaque machine virtuelle simulée, ou VM, et 3 Go pour chaque VM de production).

En utilisant également des systèmes de premier niveau et un matériel virtualisé, nous avons réussi à obtenir une prise en charge des périphériques proche de 100 pourcent. Mon portable, par exemple, compte trois périphériques qui ne disposent pas de pilote x64. Ils semblent tous être des périphériques d'arrière-plan non essentiels et le système fonctionne parfaitement en leur absence. Curieusement, une installation de Windows Vista RC1 x64 a donné exactement les mêmes résultats de prise en charge de périphériques, bien que mon système porte le logo Windows Vista Capable. Il ne fait aucun doute que le fournisseur mettra très bientôt ces pilotes manquants à disposition.

Puisque notre utilisation des systèmes est principalement limitée à Microsoft Office, Visual Studio® et plusieurs outils supplémentaires utilisés dans nos processus de développement et de génération, nous avons peu d'applications héritées provoquant des problèmes de compatibilité dans notre migration. Bien qu'une grande partie de notre organisation utilise des versions 32 bits de Windows, nous avons commencé la migration vers le 64 bits avec le nouveau matériel, ce qui a été une expérience relativement sans accroc.

Déploiement et migration vers x64

Il y a quelques éléments à prendre en compte en ce qui concerne le déploiement. Microsoft fournit une version de Windows Preinstallation Environment (Windows PE) réservée à l'architecture x64. Cependant, en raison de la parité avec x86 sur les systèmes x64, vous pourriez très bien vouloir utiliser Windows PE x86 pour le déploiement, en particulier si vous utilisez une solution de création d'image. Si vous déployez Windows XP avec une l'installation sans assistance, Windows PE dépendra de l'architecture utilisée, car winnt32.exe doit s'exécuter sous une architecture identique à celle qu'il déploie. Puisque Windows PE ne dispose pas d'une couche de compatibilité 32 bits et que winnt32.exe sous x64 est une application 64 bits, Windows 32 bits nécessite Windows PE 32 bits. C'est également le cas pour les versions 64 bits de Windows, qui nécessitent Windows PE 64 bits.

Les services d'installation à distance (RIS) différent en ce point et c'est pourquoi nous utilisons RIS chez Pluck. RIS, qui a fait ses débuts avec Windows Server 2003 SP1, peut déployer les architectures Windows x64 comme x86 ou Itanium. Lorsqu'un système x64 se connecte à un serveur RIS, le serveur (dans la configuration par défaut) lui proposera des images RISetup ou RIPrep x86 et x64. RIS peut également être configuré pour proposer aux clients x64 des images exclusivement x86 ou x64. Ce choix est proposé par défaut afin d'offrir l'environnement le plus adapté au matériel x64.

Vous remarquerez que je n'ai pas encore parlé de mise à niveau. C'est pour une bonne raison. Malheureusement, la mise à niveau d'un système d'exploitation complet de x86 vers x64 est une entreprise énorme. Pour cette raison et étant donné le déploiement limité de Windows XP édition professionnelle x64; il n'est pas possible d'effectuer la mise à niveau vers Windows XP x64 à partir d'une version x86 quelconque, ni de mettre à niveau depuis une version quelconque de Windows XP (x86 ou x64) vers Windows Vista x64. Windows Vista sur les systèmes x64 est, comme Windows XP édition professionnelle x64, un produit pouvant uniquement être installé comme nouvelle installation. Pour cette raison, beaucoup d'organisations envisagent uniquement la migration vers x64 lorsqu'un renouvellement de matériel est effectué, ce qui constitue une stratégie similaire à celle qui est attendue de la part de nombreuses organisations avec Windows Vista (ce qui rend cette double opération simultanée logique).

Mais cela ne signifie pas du tout qu'aucun outil n'est à la disposition des personnes ou des organisations effectuant la mise à niveau de Windows x86 vers Windows x64. Les versions de l'outil de migration de l'état des utilisateurs (USMT, User State Migration Tool) pour Windows XP et Windows Vista ont toutes deux été étendues pour prendre en charge la migration (par opposition à une mise à niveau intrabande du système d'exploitation) d'une installation de Windows vers une autre. Il s'agit de la méthode prédominante utilisée de nos jours par la plupart des organisations pour le déploiement de Windows (effacer et recharger), même sur un même PC, et l'utilisation du même mécanisme pour le passage à Windows sur une architecture entièrement nouvelle ne doit pas présenter d'obstacles plus importants qu'auparavant.

Conclusion

Bien que la migration graduelle de notre petite organisation vers x64 puisse être considérablement plus facile que le vaste processus de migration auquel font face les plus grandes organisations, tout informaticien professionnel doit envisager le passage tôt ou tard à une architecture x64. Même si en réalité l'architecture x86 et les versions x86 natives de Windows seront toujours présentes au cours de la prochaine décennie, l'architecture x64 est certainement l'avenir de l'informatique d'entreprise. Alors que Microsoft fait le passage complet vers les capacités x64 avec Exchange Server et d'autres produits, vous devriez tout d'abord commencer à trouver la place des systèmes x64 dans votre architecture et dans votre projet de migration Windows Vista, que vous utilisiez ou non de nos jours Windows XP ou Windows Server 2003 en mode natif sur vos systèmes x64.

Wes Miller est responsable du développement chez Pluck (www.pluck.com) à Austin, au Texas. Auparavant, il a travaillé chez Winternals Software et chez Microsoft comme responsable de programmes et comme responsable de produit Windows. Vous pouvez contacter Wes à l’adresse suivante : technet@getwired.com.

© 2008 Microsoft Corporation et CMP Media, LLC. Tous droits réservés. Toute reproduction, totale ou partielle, est interdite sans autorisation préalable.