Windows 8 : vers une rupture radicale

Par:
francoistonic

lun, 13/12/2010 - 14:26

Windows 7 n’a pas marqué la rupture tant attendue de la plateforme Windows. Attendue initialement avec le système Longhorn (présenté dès 2003), les promesses de ce projet n’ont été que partiellement tenu avec Windows Vista, notamment sur le modèle de développement (tout particulièrement des pilotes matériels) mais la rupture n’était pas là notamment sur le système de fichiers (souvenez-vous de WinFS). Et Windows 7 n’est finalement que le successeur de Windows Vista, mais en mieux. 

Et depuis semaines, les rumeurs autour de Windows 8 se multiplient. Son apparition est prévue courant 2012 (ou 2013) et on reparle d’une véritable rupture par rapport à l’existant. Même s’il est trop tôt pour cerner la nature exacte du projet (qui n’a été officiellement dévoilé), des citations ici et là, des projets de développement, permettent d’avoir une petite idée de Windows 8 ou tout le moins d’espérer d’y voir. Oui, Windows 8 doit être vu comme un défi majeur pour Microsoft (dixit Steve Ballmer), équivalent de Windows Phone 7 sur les téléphones portables qui est une rupture radicale avec la lignée 6.x. Windows 8 sera sans doute l’équivalent sur le poste de travail. 

A cela plusieurs raisons : un héritage de la lignée Windows NT qui devient trop encombrant et bride les performances et évolutions, renouvellement l’interface et son existence (on parle d’une interface 3D capable de s’adapter à la puissance de la machine), avoir des couches systèmes homogènes et un modèle de développement plus cohérents avec le reste et enfin établir des fondations pouvant recevoir les évolutions futures comme le massivement parallèle, le cloud computing et un système de fichier de type NoSQL pour en finir avec l’actuelle organisation des fichiers. Et un des buts sera d’atteindre l’informatique prouvée et prédictible.

Sur le système d’exploitation et sur son architecture, deux éléments (liés) existent depuis plusieurs années dans les laboratoires de recherche de Microsoft (MSR) : Singularity et Midori. Nous écrivions dans le n°96 de Programmez autour du projet Singulariy :

“Microsoft Research travaille depuis quelques années sur un système expérimental nommé Singularity. Le projet s’appuie sur un micro noyau. L’originalité de Singularity est de fonctionner avec des processus. Chaque processus repose sur un runtime, ici un runtime .Net. Pour assurer la communication entre différents processus on passe par des canaux. Notons que pour le moment, le code entier se charge dans le processus car il n’y a pas de chargement dynamique du code. Et chaque processus fonctionne dans son silo même si l’inter communication demeure possible. Le projet permet ainsi de mettre à l’épreuve le concept de Software Isolated Process (SIP). Le SIP garantit l’isolation des processus du système. Mais cela peut fonctionner si on dispose d’un langage sécurisé. Pour « relier » le processus au micronoyau, on passe par un runtime qui doit fournir une niveau de sécurité élevé. Surtout, pour la sécurité, un processus ne pointe pas sur un autre espace d’objet. Concernant les canaux, ils assurent une communication fiable. On utilise un contrat pour spécifier une valeur et un protocole de communication. Le compilateur vérifie que le code respecte le contrat et c’est le runtime, ensuite, qui valide les communications. 

Cette architecture en « silos » a l’avantage de s’exécuter indépendamment les uns des autres, tout en assurant l’isolation de chaque d’eux. Donc si un processus tombe, les autres ne doivent subir aucune conséquence. Il faut que le système soit capable de mieux gérer les défaillances et assurer rapidement la reprise d’activité et des données. De plus pour assurer la stabilité de l’ensemble, le système doit être capable de mieux se comprendre en réaliser plus de vérifications, cela passe notamment par l’usage des preuves formelles. 

Parmi les recherches actuelles on peut citer les exokernel (exonoyau). L’exokernel élimine la couche d’abstraction entre les applications et le matériel. Surtout il s’agit de sortir du noyau tout ce qui est gestion. L’exonoyau est là pour assurer, avec sécurité, l’accès aux ressources selon les demandes des applications. Bref l’exonoyau assure qu’un minimum de tâche, tout le reste est dévolu à des librairies ou aux applications elles-mêmes, c’est selon l’architecture. Dans le cas de l’exonoyau ExAmour (projet français), chaque application définit la gestion de sa mémoire, aucun pilote fonctionne en mode noyau. Les premières recherches sur l’exonoyau datent d’une quinzaine d’années au MIT avec la création de deux prototypes : Aegis et Xok. Il existe aussi le projet Think qui suit strictement le concept exonoyau. Cette architecture doit offrir de bonnes performances car on supprime des couches entre l’application et le matériel mais cela nécessite une programmation hautement sécurisée des applications et de la manière de gérer les accès matériels.”

Midori peut être comme une évolution de Singularity. Il s’agit à la fois d’un système distribué et en code managé et sera donc hautement modulaire s’appuyant sur des silos fonctionnant sur des noyaux indépendants. Et le noyau NT (de Windows 7) sera là pour assurer une compatibilité avec l’existant. Des rumeurs (non confirmées) voudraient que Midori sera aussi lié à un autre projet très prometteur Oslo comme la modélisation complète (de l’application aux architectures virtualisés) des applications, des systèmes. 

D’autres éléments, pouvant apparaître comme isolés, répondent à une logique technologique pouvant appaître dans le futur de Windows et de .net : l’informatique prouvée, la programmation asynchronique, le massivement parallèle. En réalité les trois éléments sont intimement liés. La présentation du futur Visual Studio Asynchrone est une étape importante et Microsoft ne cache pas les ambitions de la programmation asynchrone : améliorer la réactivité et les réponses de l’interface, améliorer la montée en charge des interfaces et processus, réduire les temps de latence. Dans une approche système à multiple “noyaux” ou cherchant à être plus réactif, plus disponible, l’asynchrone est un modèle de fonctionnement et de développement indispensanble et même crucial. Etape vers le massivement parallèle dans le système et les applications, tout comme l’informatique prouvée. Par informatique prouvée, nous entendons un fonctionnement parfaitement sûr et que l’on est capable de prédire le fonctionnement, son état (informatique prédictible). L’asynchrone est une des pièces de cette approche mais c’est la programmation fonctionnelle (F# dans le monde .net) qui permet de tendre vers cette informatique de demain (dès Windows 8 ?).

Et si vous mettez bout à bout les couches et piles parallèles de .net 4 / Visual Studio 2010, le modèle asynchone et F# pour la partie fonctionnelle, vous avez là, sous vos yeux, le modèle de développement et applicatif de demain que Microsoft poussera. C’est pour nous, la prochaine étape.

Nous invitoons à venir discuter de cette actualité sur notre forum