Avec Singularity, Microsoft tente de créer l’OS idéal, incapable du moindre plantage, y compris lorsqu’un logiciel tiers fait des siennes. Heureuse nouvelle pour tous ceux qui connaissent le plantage de PC avec message d'erreur , vidage de la mémoire et écran bleu en cadeau.
===
Avec Singularity, un projet né il y a 18 mois dans ses laboratoires de Seattle, l’éditeur tente de créer l’OS idéal, incapable du moindre plantage, y compris lorsqu’un logiciel tiers fait des siennes.
« Les OS actuels reposent tous sur des principes aujourd’hui dépassés, explique Bernard Ourghanlian, directeur technique et sécurité de Microsoft France. Le but du projet Singularity est de construire un OS fiable doté d’un comportement prévisible, en exploitant toutes les ressources actuelles de l’informatique. »
Le micronoyau réapparaît
Les chercheurs de Microsoft ont donc exhumé l’OS à micronoyau, hérité de travaux universitaires américains des années quatre-vingt. Le principe est simple. Le micronoyau constitue le cœur du système : de taille réduite, il n’incorpore que les fonctions de base de l’OS, telles que la gestion de la mémoire, des processeurs et l’ordonnancement des tâches.
Contrairement à ce qui se passe actuellement, il ne prend pas en compte l’exécution directe de logiciels tiers tels que les pilotes, dont certains, mal conçus, déstabilisent le système. Au sein de Singularity, les entrées-sorties, les pilotes et la pile IP s’exécutent dans des processus indépendants du noyau afin de ne pas en entraver le fonctionnement.
Si un processus connaît un problème, le système le supprime automatiquement et réalloue la mémoire disponible. Le chargement de codes dynamiques et le partage de mémoire propres aux systèmes Windows actuels sont prohibés. Cette approche présente un inconvénient de taille : les échanges entre le noyau et les processus sont nombreux, ce qui réduit considérablement les performances de l’OS.
Pour Bernard Ourghanlian, cela n’est pas si gênant : « La puissance disponible dans les serveurs modernes permet de gérer ces échanges. Ce qui posait un problème, c’était la mauvaise gestion de la mémoire. Le C ou le C++ employés à l’époque étaient incapables d’allouer des segments de mémoire bien définis à un programme. Les nouveaux langages tels Java ou C# gèrent très bien cette segmentation mémoire. »
Singularity est donc, de ce fait, entièrement développé en Sing#, une extension de C#. Ce langage fait du noyau de Singularity une boîte noire sécurisée. « Le noyau est constitué de 2 % d’Assembleur, 3 % de C++, 18 % de C# et 77 % de Sing#. Avec Sing#, le programmeur peut donc coder le chargement et le déchargement d’un objet en mémoire. Toutes ces opérations sont prises en compte par le langage. »
De plus, Singularity dispose de canaux servant à véhiculer les messages. Ceux-ci sont instanciés à la volée après passation d’un contrat de sécurité entre composants, sécurisant ainsi l’échange.
L’inexorable course à l’objet
Singularity ne verra jamais le jour tel quel. L’environnement n’est qu’une base de réflexion. Sa machine virtuelle Bartok n’est pas compatible avec l’environnement d’exécution actuel, la CLR. Pourtant, l’éditeur ne cache pas son intention de réécrire ses applications en langage objet.
« À partir de 2008, nous allons entamer la réécriture en langage C# de l’ensemble de notre gamme de progiciels [Navision, Axapta, Great Plains, NDLR], afin de proposer à nos clients un ensemble convergent et modulaire. L’utilisation de codes administrés permettra de gérer automatiquement l’allocation mémoire, son isolation ou l’audit d’exécution », souligne aussi Jean-Christophe Cimetière, chef produit plate-forme d’entreprise de Microsoft.
Parallèlement, la CLR va évoluer afin de prendre en charge X#, un langage de programmation objet qui permet de fédérer les langages XML et SQL. « Il deviendra donc possible d’instancier une collection d’objets présente en mémoire vive, directement à l’aide du langage SQL. Et inversement, d’utiliser des objets pour requêter une base relationnelle », poursuit-il. Cette CLR, déjà en version bêta, sera logiquement disponible lors de la sortie en 2007 du futur OS Longhorn Server.
Le mouvement de réécriture des applications en langage objet pourrait bien affecter Windows. Plusieurs conditions devront être réunies pour cela. « C’est une option intéressante à titre technologique, à la condition de maintenir la compatibilité avec tout notre existant et d’assurer un niveau de performances élevé, ce qui sera certainement possible demain avec l’augmentation de la puissance matérielle », note Jean-Christophe Dupuy, directeur marketing MBS au sein de Microsoft France.
Pour l’heure, Microsoft n’en est pas là. L’éditeur préfère fiabiliser l’exécution de Windows par d’autres moyens, disponibles plus rapidement. Avec notamment sa plate-forme WDF (Windows Driver Framework) qui équipera le futur Vista, et qui impose des règles de programmation strictes aux développeurs de pilotes et de programmes tiers.
Une option futuriste
L’avènement d’environnements fondés sur des micronoyaux ne sera d’actualité que d’ici à une dizaine d’années. Car les éditeurs cherchent à rentabiliser les investissements déjà réalisés. « Des années sont nécessaires pour disposer d’un Unix tel Solaris, doté d’un noyau robuste ou d’une machine virtuelle sécurisée dédiée au langage Java. Pas question donc de tout jeter, sous prétexte que des approches nouvelles existent.
Seule exception, ces environnements à base de micronoyaux peuvent se révéler intéressants pour le marché de l’embarqué. Même dans ce cadre, les machines virtuelles sont une option déjà opérationnelle. Ce qu’illustre J2ME qui est installé au sein d’un milliard de téléphones », souligne Alexis Moussine-Pouchkine, architecte Java Web Services chez Sun France.
Par 01Net
===
Avec Singularity, un projet né il y a 18 mois dans ses laboratoires de Seattle, l’éditeur tente de créer l’OS idéal, incapable du moindre plantage, y compris lorsqu’un logiciel tiers fait des siennes.
« Les OS actuels reposent tous sur des principes aujourd’hui dépassés, explique Bernard Ourghanlian, directeur technique et sécurité de Microsoft France. Le but du projet Singularity est de construire un OS fiable doté d’un comportement prévisible, en exploitant toutes les ressources actuelles de l’informatique. »
Le micronoyau réapparaît
Les chercheurs de Microsoft ont donc exhumé l’OS à micronoyau, hérité de travaux universitaires américains des années quatre-vingt. Le principe est simple. Le micronoyau constitue le cœur du système : de taille réduite, il n’incorpore que les fonctions de base de l’OS, telles que la gestion de la mémoire, des processeurs et l’ordonnancement des tâches.
Contrairement à ce qui se passe actuellement, il ne prend pas en compte l’exécution directe de logiciels tiers tels que les pilotes, dont certains, mal conçus, déstabilisent le système. Au sein de Singularity, les entrées-sorties, les pilotes et la pile IP s’exécutent dans des processus indépendants du noyau afin de ne pas en entraver le fonctionnement.
Si un processus connaît un problème, le système le supprime automatiquement et réalloue la mémoire disponible. Le chargement de codes dynamiques et le partage de mémoire propres aux systèmes Windows actuels sont prohibés. Cette approche présente un inconvénient de taille : les échanges entre le noyau et les processus sont nombreux, ce qui réduit considérablement les performances de l’OS.
Pour Bernard Ourghanlian, cela n’est pas si gênant : « La puissance disponible dans les serveurs modernes permet de gérer ces échanges. Ce qui posait un problème, c’était la mauvaise gestion de la mémoire. Le C ou le C++ employés à l’époque étaient incapables d’allouer des segments de mémoire bien définis à un programme. Les nouveaux langages tels Java ou C# gèrent très bien cette segmentation mémoire. »
Singularity est donc, de ce fait, entièrement développé en Sing#, une extension de C#. Ce langage fait du noyau de Singularity une boîte noire sécurisée. « Le noyau est constitué de 2 % d’Assembleur, 3 % de C++, 18 % de C# et 77 % de Sing#. Avec Sing#, le programmeur peut donc coder le chargement et le déchargement d’un objet en mémoire. Toutes ces opérations sont prises en compte par le langage. »
De plus, Singularity dispose de canaux servant à véhiculer les messages. Ceux-ci sont instanciés à la volée après passation d’un contrat de sécurité entre composants, sécurisant ainsi l’échange.
L’inexorable course à l’objet
Singularity ne verra jamais le jour tel quel. L’environnement n’est qu’une base de réflexion. Sa machine virtuelle Bartok n’est pas compatible avec l’environnement d’exécution actuel, la CLR. Pourtant, l’éditeur ne cache pas son intention de réécrire ses applications en langage objet.
« À partir de 2008, nous allons entamer la réécriture en langage C# de l’ensemble de notre gamme de progiciels [Navision, Axapta, Great Plains, NDLR], afin de proposer à nos clients un ensemble convergent et modulaire. L’utilisation de codes administrés permettra de gérer automatiquement l’allocation mémoire, son isolation ou l’audit d’exécution », souligne aussi Jean-Christophe Cimetière, chef produit plate-forme d’entreprise de Microsoft.
Parallèlement, la CLR va évoluer afin de prendre en charge X#, un langage de programmation objet qui permet de fédérer les langages XML et SQL. « Il deviendra donc possible d’instancier une collection d’objets présente en mémoire vive, directement à l’aide du langage SQL. Et inversement, d’utiliser des objets pour requêter une base relationnelle », poursuit-il. Cette CLR, déjà en version bêta, sera logiquement disponible lors de la sortie en 2007 du futur OS Longhorn Server.
Le mouvement de réécriture des applications en langage objet pourrait bien affecter Windows. Plusieurs conditions devront être réunies pour cela. « C’est une option intéressante à titre technologique, à la condition de maintenir la compatibilité avec tout notre existant et d’assurer un niveau de performances élevé, ce qui sera certainement possible demain avec l’augmentation de la puissance matérielle », note Jean-Christophe Dupuy, directeur marketing MBS au sein de Microsoft France.
Pour l’heure, Microsoft n’en est pas là. L’éditeur préfère fiabiliser l’exécution de Windows par d’autres moyens, disponibles plus rapidement. Avec notamment sa plate-forme WDF (Windows Driver Framework) qui équipera le futur Vista, et qui impose des règles de programmation strictes aux développeurs de pilotes et de programmes tiers.
Une option futuriste
L’avènement d’environnements fondés sur des micronoyaux ne sera d’actualité que d’ici à une dizaine d’années. Car les éditeurs cherchent à rentabiliser les investissements déjà réalisés. « Des années sont nécessaires pour disposer d’un Unix tel Solaris, doté d’un noyau robuste ou d’une machine virtuelle sécurisée dédiée au langage Java. Pas question donc de tout jeter, sous prétexte que des approches nouvelles existent.
Seule exception, ces environnements à base de micronoyaux peuvent se révéler intéressants pour le marché de l’embarqué. Même dans ce cadre, les machines virtuelles sont une option déjà opérationnelle. Ce qu’illustre J2ME qui est installé au sein d’un milliard de téléphones », souligne Alexis Moussine-Pouchkine, architecte Java Web Services chez Sun France.
Par 01Net