The MASIX Multi-Server Operating System

Rémy Card, Éric Commelin, Stéphane Dayras, Franck Mével

IBP-Masi 1993/72: Rapport de Recherche Masi / Masi research reports
pages - Novembre/November 1999 - Document en anglais.

PostScript : 30 Ko /Kb

Titre / Title: The MASIX Multi-Server Operating System


Résumé : Les systèmes d'exploitation ont traditionnellement été conçus sous forme d'un noyau monolithique offrant tous les services nécessaires. Cette approche pose de gros problèmes de maintenance et d'évolution du système. Cet article propose une méthode originale de conception de système sous forme de serveurs utilisant les services offerts par un micro-noyau. La décomposition du système en serveurs permet d'obtenir une structure modulaire et très évolutive. Le système décrit dans cet article est composé de plusieurs couches. La première, le système d'accueil, offre tous les services permettant d'inclure dynamiquement de nouveaux services et des interfaces utilisateur différentes. La seconde, l'environnement Unix, est constituée d'un ensemble de serveurs réalisant les abstractions et les sémantiques offertes par le systeme Unix. Cet environnement repose sur des implementations nouvelles et optimisées tenant compte des fonctionnalités offertes par le micro-noyau Mach. La troisième couche, le système virtuel, est constituée d'un ensemble de serveurs implémentant des fonctionnalités réparties. Ces serveurs sont inclus dynamiquement dans le système en utilisant les possibilités du système d'accueil. De nombreuses améliorations incluses dans le système permettent d'optimiser ses performances malgrè les changements de contexte et échanges de messages nécessaires pour communiquer entre serveurs differents. Le système résultant possède une structure novatrice, facilement extensible et constitue la base de recherches futures dans le domaine des systèmes d'exploitation répartis.

Abstract : Traditional operating systems have been designed as a monolithic kernel implementing the whole set of the system services. This approach leads to important maintenance end evolution problems. This paper discusses a new design methodology. The operating system is implemented as a set of servers using the services provided by a micro-kernel. Splitting up the operating system into a set of servers leads to a modular and evolutive structure. The system exposed in this paper is made up of three layers. The first one, the host system, provides services which allow the dynamic inclusion of new servers and different user interfaces. The second one, the Unix environment, contains a set of servers which provide Unix abstractions and semantics. It is based on new and optimized implementations, using the Mach micro-kernel facilities. The third layer, the virtual system, is made up of a set of servers providing distributed features. These servers are dynamically included in the system by using the host system services. Numerous improvements included in the system imply performance optimizations in spite of context switches and messages exchanges needed to make different servers communicate with each others. The resulting structure is innovative and easy to extend. This system is the basis for future distributed operating system researches.


Publications internes Masi 1993 / Masi research reports 1993