Un système d?amorçage repensé

Après la première partie de notre premier dossier consacré essentiellement à l'interface graphique de Windows Vista, voici la seconde partie dédiée au système, en passant du système d'amorçage, aux drivers, ou encore au nouveau modèle de développement Microsoft .NET Framework 3.0.


Vous êtes nombreux à savoir que derrière le NTLDR (NT Loader) se cache en réalité le programme chargé d’amorcer Windows XP en chargeant le noyau Windows NT (ntoskrnl.exe) et la couche d’abstraction matérielle (hal.dll).

Situé à la racine du disque système, le fichier caché boot.ini (modifiable via l’utilitaire msconfig.exe) permet au NT loader de charger le système d’exploitation. Ce fichier boot.ini contient notamment les chemins Advanced RISC Computing (ARC) qui ont pour rôle de pointer vers la partition de boot du système d’exploitation, le système d’exploitation à démarrer par défaut ainsi que le temps d’affichage du menu permettant de sélectionner le système d’exploitation à amorcer.


BCDEDIT

La configuration du BCD se fait essentiellement en ligne de commandes.


Sous Windows Vista, le système de démarrage a été remodelé. En lieu et place du fichier boot.ini qui utilise le format ASCII, modifiable via l’utilitaire notepad, c’est désormais le Boot Configuration Data (BCD) qui gère l’amorçage de Windows Vista. Mais là encore, seuls les systèmes Microsoft sont supportés. Il ne faut donc pas espérer le support des systèmes de fichiers ext2, ext3, ReiserFS et Reiser4, ce qui est plus que regrettable.

Utilisant le langage binaire, le BCD intègre une interface de programmation avancée offrant un grand nombre de possibilités. Elle permet notamment de répondre à la prochaine génération matérielle (ajout de firmware, lancement d’applications d’éditeurs tiers dans l’environnement de démarrage, etc.) dont le très attendu EFI qui s’annonce comme le successeur du bios ou encore la puce de sécurité matérielle TPM (Trusted Platform Module) offrant un cryptage matériel et logiciel avancé. Cette dernière est d’ailleurs déjà présente sur de nombreux modèles de PC portables utilisant Windows XP, ainsi que sur les machines APPLE sur lesquelles l’EFI est également implanté depuis près de deux ans.
La configuration du BCD se fait essentiellement en ligne de commandes, mais pour ceux que cela rebute, il reste les excellents utilitaires EasyBCD et VistaBoot Pro. Notre préférence allant clairement au premier.


EasyBCD 2       EasyBCD

L'interface d'Easy BCD est intuitive.



VistaBootPro 2       VistaBootPro

A l'heure où nous écrivons ces lignes, VistaBoot Pro ne supporte pas les systèmes Linux et MAC OS.

../..

Windows Driver Model

Sous Windows XP, les drivers répondaient au modèle générique WDM (Windows Driver Model), qui inclut de nombreuses fonctionnalités (Plug and Play, Gestion E/S, ACPI, Windows Management Instrumentation, etc.), mais également des modèles plus spécifiques répondant à certaines classes de périphériques (son, réseau, stockage, etc.).

Sans trop rentrer dans les détails techniques, on peut dire que les pilotes sont constitués d’une couche pilote (port driver) développée par Windows, et du miniport driver. Ce dernier est développé par le constructeur matériel et supportant les fonctions spécifiques du matériel en question. Contraignant pour les développeurs, ce modèle imposait pour chaque fonction d’un pilote le développement d’un miniport avec en prime un pilote « bus » permettant d’harmoniser et contrôler tous ces miniports.


Driver WDM

Voici le modèle actuel des pilotes sous XP.


En plus d’être assez complexe à développer, ce modèle a posé de nombreux problèmes sous l’ère de Windows XP puisque ce modèle de pilotes est exécuté au niveau du noyau Windows et partage la mémoire du système d’exploitation. Un pilote mal développé suffisait alors à nuire à la stabilité du système, voire dans le pire des cas à planter le système d’exploitation.

../..

Windows Driver Foundation

Pour simplifier la tâche des développeurs tiers et ne pas nuire à la stabilité de son nouveau système Vista, Microsoft a introduit un nouveau modèle de pilotes : le modèle Windows Driver Foundation (WDF) qui permet d’unifier et simplifier la gestion des périphériques.

Ce modèle se caractérise par le Kernel-mode driver framework (KMDF), intégrant toutes les fonctions fondamentales de bas niveau : WMI, DMA, E/S, Plug and Play, ACPI, etc. et fonctionne exclusivement en environnement protégé. C'est-à-dire que celui-ci ne s’exécute pas dans le noyau. Ce qui permet au système d’exploitation en cas de défaillance du pilote, de réinitialiser le pilote sans que le noyau système ne soit affecté. Ce qui offre en conséquence une plus grande stabilité. Cet environnement est d’ailleurs appelé User-mode driver framework, et n’est autre qu’une extension naturelle du KMDF.


WDF
Microsoft a tout mis en oeuvre pour assurer une plus grande stabilité de la plate-forme Vista, tout en simplifiant la plate-forme de développement des pilotes.


Pour aller un peu plus loin, les IRP (I/O request packets) représentent un mécanisme de communication entre le système d’exploitation et les pilotes. Ces derniers permettent de véhiculer diverses informations liées au Plug and Play, gestion d’énergie, changement d’état du périphérique, allocation/libération de ressources, etc. Sous Windows XP, le blocage d’un seul IRP pouvait entraîner le blocage d’une application et dans certains cas une défaillance système. Ce qui pouvait conduire à devoir redémarrer Windows à chaud.

Sous Windows Vista, les requêtes IRP peuvent être cette fois-ci annulées suivant un mécanisme de critères complexe mais indépendamment du pilote. Ce qui permet de limiter d’autant plus les défaillances système dues au blocage d’une ou plusieurs applications. Alors que Sous Windows XP, il n’était possible d’annuler une requête IRP qu’à la condition sine qua none qu’un mécanisme d’annulation soit présent dans les pilotes. Ce qui n’était pas souvent le cas. Mais au final, ceci reste invisible aux yeux de l’utilisateur, le processus d’installation des pilotes restant en apparence le même que sous XP.

../..

1ère partie

Nouveau modèle de développement sous Windows Vista, le Microsoft .NET Framework 3.0 se caractérise par le .NET Framework 2.0 (ASP.NET, Common Language Runtime, WinForms, ADO.NET, etc.), qui est une plateforme de développement et d’optimisation des applications Windows.

Mais le .NET framework 3.0 intègre en plus de nouvelles implémentations techniques :

  • Windows Presentation Foundation (WPF),
  • Windows Communication Foundation (WCF),
  • Windows Workflow Foundation (WF),
  • Windows CardSpace (WCS).
WPF

Anciennement connu sous le nom d’Avalon, Windows Présentation Foundation (WPF) représente le sous-système graphique de Windows Vista basé sur le langage XAML (Extensible Application Markup Language), qui utilise les marqueurs XML très apprécié dans le développement Web. Celui-ci agît comme un moteur graphique gérant tous les aspects visuels sous Windows que nous avons pu découvrir lors de notre premier dossier consacré à Vista (interface utilisateur, animations, éléments vectoriels, 2D/3D, vidéos, images, etc.).


WWFR_diagram

Diagramme représentant Windows Workflow Foundation.


Mais c’est aussi une plate-forme de développement unifiée et accessible aussi bien aux développeurs qu’aux graphistes. Alors que la partie graphique était gérée logiciellement sous Windows XP, le WPF permet de tirer profit de l’accélération matérielle de la carte graphique, et l’OPEN GL évolue au passage vers la version 1.4 (OpenGL 1.1 sous XP).

Mais ce dernier impose au passage que les pilotes graphiques et les applications activent l’OpenGL, la plus grande place étant donné à DirectX 10 offrant davantage de possibilités. Chaque élément du bureau (fenêtres, icônes, barre d’outils, menu démarrer, etc.) est un élément en 3D. Il est ainsi possible sous Vista de modifier le rendu de chacun de ces éléments (étirer, déformer, incliner, ajouter des effets d’ombres et de lumière, etc.) sans pour autant augmenter la charge de travail du processeur ni le besoin en mémoire vive.

../..

2ème partie

Le WPF s’appuie sur DirectX 9.L (anciennement Windows Graphic Foundation 1.0), une version apportant quelques améliorations à DirectX 9.0c. Notamment avec l’arrivée d’un nouveau modèle de pilotes pour carte graphique, le Windows Display Driver Model (WDDM) qui supporte la génération actuelle de cartes graphiques intégrant les shaders 2.0 et 3.0. C'est-à-dire les cartes compatibles DirectX 9 en attendant l’adoption des cartes 3D DirectX 10 (anciennement Windows Graphic Foundation 2.0) qui promet de mieux gérer les ressources tout en apportant le support de nouvelles techniques comme par exemple le Shader 4.0.

WPF architecture

L'architecture du Windows Presentation Foundation.


Le WDDM permettra par exemple d’installer les pilotes de cartes graphiques sans que le redémarrage du PC soit nécessaire, à condition que la carte 3D supporte les pilotes WDDM. Mais c’est loin d’être encore le cas.

De plus, les pilotes ne résidant plus au niveau du noyau, ils peuvent désormais être réinitialisés en cas de défaillance sans besoin de redémarrer le PC (comme le fait déjà la fonction GPU recover d’ATI sous XP). Et lors de nos tests durant les phases bêta, il n’était pas rare qu’un jeu plante suite à une défaillance et un redémarrage des pilotes. Ce n’est qu’assez rare aujourd’hui avec la version finale de Vista et des pilotes plus aboutis qu’à l’époque.


WDM ATI XP       WDDM ATI

Voici un exemple de migration du Windows Driver Model sous XP au Windows Driver Display Model
sous Vista avec les pilotes Catalyst d'AMD.


Pour finir, et sans rentrer en profondeur dans le sujet, l’exclusivité de DirectX 10 sous Windows Vista s’explique en partie par le nouveau modèle de pilotes WDDM et le kernel NT6. Pour un support sous XP, il aurait fallu l’adapter au kernel NT5. Ce qui permet simplement de dire que ce choix n’est pas seulement dicté par des raisons commerciales, mais également techniques.

../..

Windows Communication Foundation

Le Windows Communication Foundation (Anciennement Indigo) est une extension de la plate-forme de développement Framework.NET harmonisant les modes de communication liés aux composants COM+, et.NET que ce soit au niveau local, Lan ou Internet avec en plus une sécurité accrue. Le but du WCF est de permettre une meilleure interopérabilité entre les différents systèmes d’exploitation avec en prime, l’introduction d’une nouvelle couche réseau appelé Next Generation Network Protocol Stack apportant son lot d’améliorations.

WCF logo

À commencer par les protocoles IPv4 et IPv6 qui sont intégrés séparément avec Windows XP. Contrairement à Vista qui n’intègre dorénavant plus qu’une unique pile TCI/IP où cohabitent ces deux protocoles. Pour rappel, le protocole IPv6 est introduit afin d’éviter la pénurie d’adresses IP dans le monde entier. Et celui-ci propose aujourd’hui 2128 adresses IP (codage sur 128 bits).

Toutefois, pour assurer une transition en douceur et pour des raisons de compatibilité, les protocoles IPv4 et IPv6 doivent encore cohabiter. Mais l’IPv6 n’offre pas seulement un nombre accru d’adresses IP, et d’autres améliorations sont à souligner. À commencer par les en-têtes des paquets qui sont simplifiés pour faciliter le routage. Ou encore l’IPsec (Internet Protocol Security) qui permet de crypter et d’authentifier les données transmises sur le réseau. Mais il y a aussi le QoS (Quality of Service) permettant d’optimiser la gestion des flux réseaux et de la bande passante avec à la clé un accroissement de la rapidité de transmission/réception. Mais également le multicast qui profitera pleinement aux services de vidéo à la demande ou encore à la diffusion de la télévision haute définition par Internet.


WCF


Le réseau sans-fil se voit, lui aussi, nettement amélioré sur plusieurs points puisque Windows Vista supporte le Wi-Fi nativement. L’interface standard entre les pilotes réseaux en mode noyau et le système d’exploitation (Network Device Interface Specification) passe à la version 6.0 et apporte un système de filtrage réseau plus performant, mais aussi plus léger ainsi qu’un nouveau modèle de pilote simplifié, toujours basé sur le WDF.

Ce qui permet là encore, d’installer les pilotes réseaux sans que le redémarrage de la machine ne soit nécessaire et sans que la connexion ne soit interrompue. Et tirant parti de toutes ces nouvelles technologies (Next Generation Network Protocol Stack, WFP, NDIS, etc.), le Quality of Service (QoS) vous permet de maîtriser et adapter à vos besoins avec finesse chaque paramètre du réseau : gestion de l’utilisation de la bande passante, priorité du trafic, stratégie de groupe, etc.

Et pour conclure, le développement des pilotes Wifi devient plus aisé, la qualité de transmission est optimisée avec à la clé une réduction des pertes des paquets et des segments à l’aide d’algorithmes améliorés, et l’on bénéficie au passage d’une interface de configuration retravaillée et plus fonctionnelle (gestion optimisée des réseaux sans fil préférés, sécurité accrue avec le WPA2, etc.).