Microsoft : le projet Drawbridge redessine Windows

Windows on a dit, pas un mouton 143
Vincent Hermann
windows seven win7 logoDepuis 26 ans, Microsoft n’a de cesse de faire évoluer Windows. Le cas du système, dans sa gestion de l’existant et de la compatibilité, est assez unique, et l’omniprésence du système d’exploitation oblige Microsoft à faire certains choix.

Depuis Vista, l’éditeur introduit lentement des changements qui ne visent qu’un seul objectif : isoler le dénominateur commun, un système minimal n’ayant besoin de rien d’autre que lui-même pour fonctionner. Un travail énorme de nettoyage et de classification qui trouve un nouvel écho avec Drawbridge, un projet de recherche.

Un changement assez radical d'architecture système

 Dans Windows 7, on trouve MinWin, un système minimal et autonome débarrassé de tout ce qui n’est pas strictement nécessaire. Le problème est qu’on y trouve de nombreux composants, aussi bien que le noyau que tout un nuage d’éléments qu’on ne peut pas enlever à cause de certaines dépendances. Drawbridge pousse le concept beaucoup plus loin, en externalisant autant que possible tout ce qui n’est pas considéré comme une base. Le système entier se retrouve divisé en trois ensembles capables d’évoluer chacun séparément, et on approche ici d’une espèce de Saint Graal après lequel Microsoft court depuis un bon moment.

drawbridge 

Pour comparaison, voici l'architecture actuelle de Windows 7 :

drawbridge

Le schéma ci-dessus peut paraître complexe, il explique pourtant clairement la séparation que vise Drawbridge. Jérôme Bosch, auteur du site Ma-Config.com, explique dans un billet très technique les détails de ce projet. Il définit ce qu’il appelle la « personnalité » du système d’exploitation, à savoir l’expression des API disponibles et donc accessibles par les applications. Dans Drawbridge, cette expression est concentrée dans un ensemble parfaitement autonome et qui n’est reliée au socle que par des liens très fins et réduits au strict nécessaire. C’est de cette organisation que le projet tire son nom, Drawbridge signifiant littéralement « pont-levis ».

Des avantages évidents

Le projet est dirigé par Gallen Hunt, l’une des plus grosses têtes pensantes de Microsoft, et à qui l’on doit déjà des travaux très importants tels que Singularity et Helios. Drawbridge définit ce que l’on appelle une « bibliothèque système » qui, au lieu d’être fixe et intriquée, est « flottante ». Elle est présente dans le même espace mémoire que l’application, et peut être littéralement branchée sur un socle ou un autre. Et c’est ici que l’on se rend compte que ce changement provoque d’énormes retombées.

Certains se demandent à ce stade quelle différence peut bien exister entre cette solution et la virtualisation. La réponse est simple : la virtualisation reprend à chaque fois l’intégralité du système d’exploitation, là où Drawbridge n’a besoin finalement que de la bibliothèque système. Dans le cas de Windows 7, qui a servi de première base pour le projet, la bibliothèque ne pèse que 64 Mo. Elle n’est cependant pas complète, car sur les plus de 100 000 API existant actuellement dans le framework Win32, seules 14 000 ont été portées dans Drawbridge.

Cette « légèreté » permet de mettre en place systématiquement des conteneurs isolés contenant l’application, les bibliothèques système requises ainsi que le sous-système Win32 et une couche d’émulation NT. L’ensemble repose sur la Platform Abstraction Layer (PAL, couche d’abstraction de la plateforme), et la communication se fait via l’ABI (Application Binary Interface). Cette PAL communique à son tour, via le Security Monitor, avec le fameux « socle », qui ne contient que le noyau et certains composants comme les systèmes de fichiers, les piles réseau, et les pilotes. Le Monitor isole les conteneurs Drawbridge et leur transmet les ressources virtualisées.

Une modularité que Windows ne connait pas

De la PAL et de l’ABI dépendent énormément d’éléments, et ils forment les éléments centraux de l’architecture Drawbridge. L’ABI, entièrement spécifiée, décrit complètement comment tout ce qui se passe sur un système communique avec le socle, aussi appelée système hôte. La PAL est tout simplement l’interface entre ce dernier et tout ce qui est au-dessus. Cela a plusieurs conséquences sur les possibilités, dont l’une, essentielle : c’est la bibliothèque système qui devient l’élément déterminant pour la compatibilité d’une application, et non la version donnée d’un système d’exploitation.

Cette compatibilité prend un aspect nouveau avec Drawbridge puisque, techniquement, rien n’empêche d’exécuter une application et sa bibliothèque système, sur n’importe quelle version de Windows. Exemple : une application créée spécifiquement pour XP pourrait s’exécuter sur Windows 7 en comptant non pas sur la compatibilité descendante de ce dernier, mais directement avec la bibliothèque système de XP. Cette modularisation et cette isolation permettent d’envisager la construction de Windows sous un nouveau jour, d’autant que différents tests ont été réalisés et ont permis de faire fonctionner des applications Drawbridge dans des machines virtuelles, ou de connecter la bibliothèque système à un hyperviseur.

Malgré les nombreuses implications de Drawbridge, et il ne s’agit en l’état que d’un projet de recherche. Gallen Hunt précise qu’on ne doit pas s’attendre à voir arriver ces travaux dans Windows 8, et il n’y a aucune prévision pour une autre version de Windows. Pourtant, on ne peut s’empêcher de se poser des questions, notamment parce qu’il s’agit d’une solution efficace à l’éternel problème de la compatibilité descendante (héritage lourd du passé). En outre, cela permettrait de préparer le terrain pour l’arrivée (et ce n’est qu’un simple exemple) d’un socle (système hôte) entièrement neuf, comme Midori.

Ceux qui sont intéressés par des détails supplémentaires pourront lire le long billet consacré à Drawbridge par Jérôme Bosch sur le blog de Ma-Config.com.