URL: https://linuxfr.org/users/patrick_g/journaux/la-vengeance-de-tanenbaum Title: La vengeance de Tanenbaum Authors: patrick_g Date: 2006年05月07日T21:51:46+02:00 Tags: linus_torvalds et andrew_tanenbaum Score: 0 Dans le numéro de mai du magazine "Computer" on trouve un article très intéressant d'Andrew Tanenbaum : [http://www.computer.org/portal/site/computer/index.jsp?pageI(...)](http://www.computer.org/portal/site/computer/index.jsp?pageID=computer_level1_article&TheCat=1005&path=computer/homepage/0506&file=cover1.xml&xsl=article.xsl) Pour rappel Tanenbaum est un des experts mondiaux dans la conception de systèmes d'exploitation. Il a eu une dispute célèbre avec Linus Torvalds aux débuts des années 90 : [http://people.fluidsignal.com/~luferbu/misc/Linus_vs_Tanenba(...)](http://people.fluidsignal.com/~luferbu/misc/Linus_vs_Tanenbaum.html) Linus, qui venait de lancer le noyau Linux, se voyait reprocher par Tanenbaum la conception traditionnelle qu'il avait retenu. Tanenbaum est un partisan résolu des microkernels (il est l'auteur du système Minix qui est un OS basé sur cette approche) et il a critiqué violemment le design monolithique de Linux. Comme chacun sait ce design n'a pas empêché Linux de se répandre partout dans le monde et de devenir une référence incontournable dans le monde des OS. De plus ce design monolithique s'est trouvé amélioré par la possibilité de charger dynamiquement des modules. Linux n'est donc plus purement monolithique et son design est assez hybride. Dans l'article de "Computer" tanenbaum annonce le début de la fin pour les noyaux de type Linux: _Microkernels—long discarded as unacceptable because of their lower performance compared with monolithic kernels—might be making a comeback in operating systems due to their potentially higher reliability, which many researchers now regard as more important than performance._ Il passe en revue quatre approches qui permettent d'éviter les défauts de Linux, les deux premières étant des rustines sur l'existant qui permettent de conserver le code actuel alors que les deux dernières sont des approches radicales qui nécessitent une réécriture complète : 1) **ARMORED OPERATING SYSTEMS** L'idée est d'encapsuler chaque driver dans une couche logicielle protectrice. Celle-ci intercepte les appels entre le driver et le kernel et s'assure de la conformité de ces appels. C'est le projet Nooks dont les buts peuvent se résumer en la protection du noyau contre les bugs des drivers, le redémarrage automatique des drivers fautifs et enfin le changement minimum du noyau Linux actuel. Même si Tanenbaum reconnait que c'est un projet intéressant et qui peux améliorer la fiabilité, il pointe également le fait que certains bugs passent encore au travers de la couche de protection et que ces couches sont très contraignantes à écrire pour chaque appel noyau existant. 2) **PARAVIRTUAL MACHINES** Cette fois-ci on utilise un microkernel réduit à sa plus simple expression directement sur le hardware et on fait tourner par dessus le noyau Linux classique. C'est l'approche de L4Linux ou de Xen. On peut même choisir de faire tourner deux instances de Linux : Une pour les drivers et l'autre pour les programmes en userland. Si une des instances se bloque on peut la tuer et la relancer...mais les processus qui étaient en cours sont perdus. C'est maintenant que les approches plus radicales commencent (comme l'annonce Tanenbaum : _The first two approaches focus on patching legacy operating systems. The next two focus on future systems._ 3) **MULTISERVER OPERATING SYSTEMS** L'architecture examinée ici est le concept classique de microkernel avec toutes les tâches non essentielles déportées en mode user. Tanenbaum détaille son OS Minix mais on peut également penser au Hurd. Les avantages sont le confinement et la séparation de chaque processus, la simplicité conceptuelle et le nombre réduit de ligne de code critique en mode noyau. Selon Tanenbaum la puissance actuelle des machines fait que l'approche microkernel est maintenant plus avantageuse que la complexe et dangereuse architecture monolithique. Avec un écart de moins de 10% en performance cela vaut le coup. On peut également assister à un magnifique lancer de troll : _Minix 3's reliability comes from multiple sources. First, only about 4,000 lines of code run in the kernel, so with a conservative estimate of six bugs per 1,000 lines, the total number of bugs in the kernel is probably only about 24—compared with 15,000 for Linux and far more for Windows._ 4) **LANGUAGE-BASED PROTECTION** Selon Tanenbaum c'est l'approche la plus révolutionnaire de toute...et c'est Microsoft Research qui poursuit ce but ! C'est un nouveau type d'OS, nommé Singularity, et il est basé sur un language formel spécifique (Sing#) qui permet, par design, une sécurité absolue. Le kernel et le userland partagent la même adresse mémoire virtuelle (donc les performances sont bonnes) etla sécurité inhérente du language autorise, sans danger, ce partage mémoire. Le Sing# est largement basé sur le C# mais avec des ajouts spécifiques aux OS (primitive d'envoi de messages, sémantique définie par des contrats formels). Tanenbaum finit l'article en soulignant que des 4 approches, 3 se basent sur des microkernels. Il conclut par cette phrase qui résonne comme une revanche sur la vieille controverse : _it is interesting to note that microkernels—long discarded as unacceptable because of their lower performance compared with monolithic kernels—might be making a comeback due to their potentially higher reliability, which many people now regard as more important than performance. The wheel of reincarnation has turned._

AltStyle によって変換されたページ (->オリジナル) /