SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
Etat de l’art des serveurs Unix au dessus de Mach
R´emy Card
card@tsx-11.mit.edu
Franck M´evel
mevel@masi.ibp.fr
Julien Simon
simon@freenix.fr
16 mars 1995
Nous pr´esentons ici bri`evement le fonctionnement des syst`emes qui offrent une ´emulation d’Unix
au dessus du micronoyau Mach.
Ils sont de trois types :
• les syst`emes `a architecture monolithique, utilisant Mach comme couches basses (OSF/1
IK) ;
• les syst`emes compos´es d’un seul serveur, qui s’´ex´ecute en mode utilisateur au dessus de
Mach (BSD Single Server, CMU Unix Server, OSF/1 MK, Lites et Sprite) ;
• les syst`emes compos´es de plusieurs serveurs coop´erants, appel´es syst`emes multiserveurs.
(CMU Mach-US et GNU Hurd).
1 Syst`emes monolithiques
1.1 OSF/1 IK
OSF/1 IK [Foundation 1990], d´evelopp´e par l’Open Software Foundation, repose sur Mach 2.5.
Ce syst`eme reprend la structure monolithique pr´esente dans Unix et se contente d’utiliser les
fonctionnalit´es de Mach pour assurer les s´emantiques Unix sans en tirer pleinement profit. Pour
ces raisons, nous nous contentons de le d´ecrire bri`evement.
Sa structure est repr´esent´ee sur la figure 1.
Les innovations offertes par OSF/1 IK par rapport `a Unix, au niveau structurel, sont :
• l’utilisation des fonctionnalit´es de gestion de tˆaches et threads pour fournir des processus
selon la s´emantique Unix ;
1
OSF/1 IK
Mach 2.5
Matériel
Mode utilisateur
Mode superviseur
Figure 1: Structure de OSF/1 IK
2
• la possibilit´e d’utiliser plusieurs threads au sein d’un mˆeme processus ;
• la parall´elisation des fonctions du syst`eme, grˆace aux fonctionnalit´es fournies par Mach,
afin de permettre une ex´ecution optimale sur des ordinateurs multiprocesseurs ;
• l’utilisation des gestionnaires de p´eriph´eriques contenus dans Mach pour effectuer les
entr´ees-sorties ;
• l’optimisation de la gestion de la m´emoire virtuelle grˆace `a l’utilisation des m´ecanismes de
Mach (notamment par rapport `a la version BSD de Unix qui impl´emente une gestion peu
performante de la m´emoire1 [Leffler et al. 1989].
L’utilisation de fonctionnalit´es de Mach permet d’all´eger le code du syst`eme lui-mˆeme
puisque de nombreuses fonctions internes (ordonnancement de processus, gestion des p´eriph´eriques,
gestion de la m´emoire physique...) peuvent ˆetre remplac´ees par des appels `a Mach. N´eanmoins,
de par son caract`ere monolithique, OSF/1 IK n’est pas diff´erent d’une impl´ementation clas-
sique de fonctionnalit´es Unix dans la mesure o`u il est fond´e sur la mˆeme structure et en
poss`ede donc les mˆemes inconv´enients.
2 Syst`emes monoserveurs
2.1 OSF/1 MK
2.1.1 Structure de OSF/1 MK
OSF/1 MK [Places et al. 1992], d´evelopp´e par l’Open Software Foundation, repose sur la version
3.0 de Mach. L’architecture de ce syst`eme est directement inspir´ee de celle du BSD Single Server
de Carnegie Mellon University. C’est ´egalement le cas du Unix Server de CMU [Golub et al.
1990], et de Lites [Helander 1994].
Il est donc compos´e d’un serveur unique, qui s’ex´ecute en mode utilisateur au dessus de Mach.
Les composantes de ce serveur sont :
• la quasi-int´egralit´e du code de OSF/1 IK ;
• une couche d’interface avec les processus utilisateurs, charg´ee de convertir leurs appels
syst`eme en RPC a destination de Mach ;
• une couche d’interface avec le micronoyau, qui permet au serveur d’obtenir des services
indisponibles en mode utilisateur.
Sa structure est repr´esent´ee sur la figure 2.
1
pour les versions ant´erieures `a 4.4BSD, cette derni`ere ayant repris la gestion de la m´emoire virtuelle de Mach
3
2.1.2 Traitement des appels syst`eme
OSF/1 MK offre une compatibilit´e binaire avec Unix, grˆace `a une librairie d’´emulation plac´ee
dans l’espace d’adressage des processus utilisateurs.
Interface
appels système
Services
de base
Librairie
d’émulation
Matériel
Mach 3.0
OSF/1
Processus
Mode Utilisateur
Mode Superviseur
Figure 2: Structure de OSF/1 MK
Lorsqu’un processus effectue un appel syst`eme, il ex´ecute une trappe qui transf`ere le contrˆole `a
Mach. Celui-ci redirige l’appel vers la librairie, qui ex´ecute l’appel syst`eme. Si l’appel est simple,
la librairie peut l’ex´ecuter seule.
Par contre, dans le cas o`u l’appel est plus complexe, elle effectue un RPC vers le micro-noyau
et retourne les r´esultats au processus utilisateur.
Cependant, l’utilisation d’une librairie d’´emulation pose de s´erieux probl`emes de s´ecurit´e et de
maintenance. Pour tenter de les r´esoudre, OSF a mis au point une version d’OSF/1 MK sans
librairie d’´emulation [Patience 1993]. Ceci a ´et´e rendu possible au prix de plusieurs modifications
de Mach 3.0, notamment dans la gestion de la m´emoire virtuelle et des exceptions.
4
Mach 3.0
2. retour de trappe
3. saut
Processus Serveur OSF/1
1. trappe
Figure 3: Appel syst`eme simple dans OSF/1 MK
5
Mach 3.0
2. retour de trappe
4. retour
de trappe
de trappe
6. retour
RPC
Processus Serveur OSF/1
1. trappe
3. trappe
5. trappe
7. saut
Figure 4: Appel syst`eme complexe dans OSF/1 MK
6
2.1.3 Gestion des processus
Les processus sont g´er´es par le biais des tˆaches et threads Mach. Le serveur maintient des
structures de donn´ees contenant les informations li´ees aux s´emantiques Unix des processus qui ne
sont pas directement g´er´ees par Mach. Les informations maintenues par le serveur sont ´egalement
accessibles par la librairie d’´emulation sans son espace d’adressage, afin de lui permettre de traiter
directement certains appels syst`eme, sans faire appel au serveur.
La m´emoire virtuelle des processus est g´er´ee par un paginateur, appel´e ”vnode pager”, qui fait
partie du serveur.
2.1.4 Gestion des entr´ees-sorties
Le serveur contient une version non modifi´ee des fonctions d’entr´ees-sorties d’Unix BSD (syst`emes
de fichiers, gestion des sockets, . . . ). Dans Unix, ces sous-syst`emes utilisent des tables de poin-
teurs sur fonctions pour acc´eder au gestionnaires de p´eriph´eriques [Leffler et al. 1989].
Dans OSF/1 MK, ces tables contiennent les adresses de fonctions, contenues dans la couche
d’interface avec le micronoyau, qui redirigent les requˆetes vers les gestionnaires de p´eriph´eriques
contenus dans Mach.
2.2 Sprite
Sprite [Ousterhout et al. 1988], d´evelopp´e ´a l’Universit´e de Berkeley, est un syst`eme r´eparti,
bas´e sur les s´emantiques Unix. Les fonctionnalit´ees r´eparties de Sprite permettent `a un ensemble
de stations reli´ees par un r´eseau de partager leurs ressources (processeurs, fichiers) de mani`ere
transparente.
Sprite a ´et´e port´e au dessus de Mach 3.0 [Kupfer 1993], afin de b´en´eficier du grand nombre de
plates-formes support´ees par ce micronoyau. Sa structure est repr´esent´ee sur la figure 5.
Sous cette forme, Sprite s’ex´ecute en tant que serveur unique en mode utilisateur. Si l’objectif de
portabilit´e ait ´et´e atteint, les performances sont en revanche tr`es inf´erieures `a celles du syst`eme
de d´epart.
7
Mach kernel
Sprite
server
Emulation
library
process
User
Figure 5: Structure de Sprite au dessus de Mach
8
3 Systemes multiserveurs
3.1 Mach-US
3.1.1 Structure de Mach-US
D´evelopp´e par Carnegie Mellon University, Mach-US est un syst`eme multi-serveurs orient´e objet
bas´e sur Mach 3.0 [Guedes et Julin 1991], [Stevenson et Julin 1995]. Les composantes de Mach-
US sont :
• un ensemble de serveurs, offrant chacun un type de service bien d´etermin´e ;
• une librairie d’´emulation, charg´ee dans l’espace d’adressage de chaque processus utilisateur,
et qui permet d’offrir une compatibilit´e binaire avec 4.3BSD.
Sa structure est repr´esent´ee sur la figure 6.
Les serveurs sont de deux types :
• les serveurs ind´ependants des fonctionnalit´es syst`eme ´a offrir aux processus utilisateurs :
– serveur de configuration, charg´e de lancer les autres et de leur fournir des informations
globales ;
– serveur d’authentification ;
– serveur de diagnostic.
• les serveurs offrant des fonctionnalit´es syst`eme aux processus utilisateurs :
– serveur de chemin ;
– serveur de fichiers, qui g`ere les syst`emes de fichiers de type UFS ;
– serveur de communications inter-processus locales (tubes, sockets, . . . );
– serveur de communications r´eseau par sockets ;
– serveur de terminaux, qui g`ere les lignes s´eries ;
– serveur de processus.
3.1.2 Traitement des appels syst`eme
Les appels syst`eme sont impl´ement´es de la mˆeme fa¸con que dans OSF/1 MK : les processus
utilisateur provoquent une trappe g´er´ee par Mach qui la redirige vers la librairie d’´emulation
selon un effet de trampoline. Cette librairie ex´ecute ensuite l’appel syst`eme en transmettant une
ou plusieurs requˆetes aux serveurs.
9
server
TTY
server
File
server
Process
Mach Kernel
Emulation
library
User code
Emulation
library
User code
Process A Process B
Figure 6: Structure de Mach-US
10
3.2 GNU Hurd
3.2.1 Structure interne de Hurd
Hurd est en cours de d´eveloppement par la Free Software Foundation [Bushnell et al. 1994] Il
est con¸cu comme un ensemble de serveurs coop´erants, auquels s’ajoute une librairie d’´emulation.
Certains de ces serveurs sont essentiels au fonctionnement du syst`eme alors que d’autres peuvent
ˆetre remplac´es dynamiquement.
Les serveurs indispensables sont :
• le serveur d’authentification ;
• le serveur de processus ;
• les serveurs de fichiers (UFS, NFS, . . . );
• le serveur de terminaux.
3.2.2 M´ecanisme de translation
La plupart des serveurs sont accessibles via des fichiers. Normalement, l’ouverture d’un fichier
provoque l’envoi d’un droit d’´emission sur un port caract´erisant le fichier. Tout syst`eme de
fichiers est g´er´e par un serveur ; quand un fichier est ouvert, le serveur cr´ee un port, l’associe au
fichier et transmet un droit d’´emission sur ce port au client.
Un fichier peut avoir un “translateur” qui lui est associ´e. Dans ce cas, au lieu de retourner un
port caract´erisant le fichier, le serveur ex´ecute un programme, appel´e “translateur”. Le serveur
fournit `a ce programme le port correspondant au fichier ouvert et le translateur doit renvoyer
un port au client.
Ce m´ecanisme de translation est utilis´e pour le montage de syst`emes de fichiers : quand un
utilisateur ouvre le fichier correspondant `a un point de montage, le translateur correspondant,
qui comprend la structure physique du syst`eme de fichiers mont´e, est ex´ecut´e et renvoie un
port au client. Les acc`es ult´erieurs aux fichiers sont donc ensuite dirig´es, via ce port, sur ce
translateur.
Un translateur peut ˆetre associ´e `a un fichier par son propri´etaire. De la sorte, tout programme
peut ˆetre utilis´e comme translateur `a condition qu’il respecte un protocole bien d´efini. Il est donc
ainsi possible, pour tout utilisateur, d’ajouter dynamiquement des fonctionnalit´es au syst`eme
par le biais de translateurs.
Aucun des translateurs pr´esents install´e dans le syst`eme de fichiers ne voit ses privil`eges accrus.
Les translateurs s’ex´ecutent avec l’identit´e et les droits des propri´etaires des fichiers auxquels
11
ils sont associ´es, et peuvent ˆetre associ´es `a des fichiers ou modifi´es seulement par leurs pro-
pri´etaires. Les protocoles d’entr´ees-sorties et d’acc`es aux fichiers sont con¸cus de fa¸con `a ne pas
faire confiance aux diff´erents clients et serveurs.
3.2.3 Traitement des appels syst`eme
Les appels syst`eme sont impl´ement´es de la mˆeme fa¸con que dans OSF/1 MK : les processus
utilisateur provoquent une trappe g´er´ee par Mach qui la redirige vers la librairie d’´emulation
selon un effet de trampoline. Cette librairie ex´ecute ensuite l’appel syst`eme en transmettant une
ou plusieurs requˆetes aux serveurs.
R´ef´erences
[Bushnell et al. 1994] M. Bushnell, R. Stallman, R. Mc Grath, et Jan Brittenson. Towards a
New Strategy of Os Design. GNU Bulletin, January 1994.
[Foundation 1990] Open Software Foundation. The Design of the OSF/1 Operating System.
Open Software Foundation,, 1990.
[Golub et al. 1990] D. Golub, R. Dean, A. Forin, et R. Rashid. Unix as an Application Program.
In Proceedings of the Summer 1990 USENIX Conference, pages 87–96, June 1990.
[Guedes et Julin 1991] P. Guedes et D. Julin. Object-Oriented Interfaxes in the Mach 3.0 Multi-
Server System. In Proceedings of the IEEE Second International Workshop on Object Orien-
tation in Operating Systems, October 1991.
[Helander 1994] J. Helander. Unix under Mach - the Lites Server. Master’s thesis, Helsinki
University of Technology, December 1994.
[Kupfer 1993] Michael D. Kupfer. Sprite on Mach. In Proceedings of the Third Usenix Mach
Symposium, April 1993.
[Leffler et al. 1989] S. Leffler, M. Mc Kusick, M. Karels, et J. Quaterman. The Design and
Implementation of the 4.3BSD UNIX Operating System. Addison-Wesley, 1989.
[Ousterhout et al. 1988] J. Ousterhout, A.Cherenson, F. Douglis, M. Nelson, et B. Welch. The
Sprite Network Operating System. IEEE Computer, 21(2):23–36, February 1988.
[Patience 1993] Simon Patience. Redirecting System Calls in Mach 3.0 : an Alternative to the
Emulator. In Proceedings of the Third Usenix Mach Symposium, April 1993.
[Places et al. 1992] F. Barbou Des Places, P. Bernadat, M. Condict, S. Empereur, J. Febvre,
D. George, J. Loveluck, E. McManus, S. Patience, J. Rogado, et P. Roudaud. Architecture
and Benefits of a Multithreaded OSF/1 Server. Technical report, OSF Research Institute,
June 1992.
[Stevenson et Julin 1995] J. Stevenson et D. Julin. Mach-Us: Unix on Generic Os Object servers.
In Proceedings of the 1995 Usenix Conference, January 1995.
12

Contenu connexe

Tendances

Systémes d'exploitation
Systémes d'exploitationSystémes d'exploitation
Systémes d'exploitationSelman Dridi
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système LinuxEL AMRI El Hassan
 
Cours linux complet
Cours linux completCours linux complet
Cours linux completaubin82
 
Cours linux intermediaire
Cours linux intermediaireCours linux intermediaire
Cours linux intermediaireGrenois Sempre
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére filsSelman Dridi
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiationrobertpluss
 
Tp système écoulement
Tp système écoulementTp système écoulement
Tp système écoulementdihiaselma
 
DEBUTER SOUS LINUX : GUIDE COMPLET
DEBUTER SOUS LINUX : GUIDE COMPLETDEBUTER SOUS LINUX : GUIDE COMPLET
DEBUTER SOUS LINUX : GUIDE COMPLETTaoufik AIT HSAIN
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linuxEmmanuel Florac
 
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...Jean-Antoine Moreau
 
Chapitre i généralités et notions de base
Chapitre i généralités et notions de base Chapitre i généralités et notions de base
Chapitre i généralités et notions de base Wajdi Ben Helal
 

Tendances (19)

Systémes d'exploitation
Systémes d'exploitationSystémes d'exploitation
Systémes d'exploitation
 
Ar mv7
Ar mv7Ar mv7
Ar mv7
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système Linux
 
Cour1
Cour1Cour1
Cour1
 
Cours linux complet
Cours linux completCours linux complet
Cours linux complet
 
Cours linux intermediaire
Cours linux intermediaireCours linux intermediaire
Cours linux intermediaire
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére fils
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiation
 
Initiation Linux
Initiation LinuxInitiation Linux
Initiation Linux
 
Cours s epartie2
Cours s epartie2Cours s epartie2
Cours s epartie2
 
Tp système écoulement
Tp système écoulementTp système écoulement
Tp système écoulement
 
Ch1 p1
Ch1 p1Ch1 p1
Ch1 p1
 
Cours SNMP
Cours SNMPCours SNMP
Cours SNMP
 
DEBUTER SOUS LINUX : GUIDE COMPLET
DEBUTER SOUS LINUX : GUIDE COMPLETDEBUTER SOUS LINUX : GUIDE COMPLET
DEBUTER SOUS LINUX : GUIDE COMPLET
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linux
 
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
 
Chapitre i généralités et notions de base
Chapitre i généralités et notions de base Chapitre i généralités et notions de base
Chapitre i généralités et notions de base
 
SdE 1 - Introduction
SdE 1 - IntroductionSdE 1 - Introduction
SdE 1 - Introduction
 
Chapitre 03
Chapitre 03Chapitre 03
Chapitre 03
 

En vedette

Trabajo colaborativo Inmigrantes digitales
Trabajo colaborativo Inmigrantes digitalesTrabajo colaborativo Inmigrantes digitales
Trabajo colaborativo Inmigrantes digitalesMarleny Rueda Santos
 
140819 - Présentation mécanique à 2
140819 - Présentation mécanique à 2140819 - Présentation mécanique à 2
140819 - Présentation mécanique à 2ComiteBasketCalvados
 
apostila__legislacao_sus_com_exercicios__saude__professor_paulo_prieto
 apostila__legislacao_sus_com_exercicios__saude__professor_paulo_prieto apostila__legislacao_sus_com_exercicios__saude__professor_paulo_prieto
apostila__legislacao_sus_com_exercicios__saude__professor_paulo_prietoLeon Machado Guedes
 
Presenta Puntos Urbanos De InteréS En Bg
Presenta Puntos Urbanos De InteréS En BgPresenta Puntos Urbanos De InteréS En Bg
Presenta Puntos Urbanos De InteréS En Bgsmestref
 
Proceso RAP (Renewed Approach to Programme). Scouts MSC
Proceso RAP (Renewed Approach to Programme). Scouts MSCProceso RAP (Renewed Approach to Programme). Scouts MSC
Proceso RAP (Renewed Approach to Programme). Scouts MSCMelo Sánchez
 
Nnya Y Tic
Nnya Y TicNnya Y Tic
Nnya Y Ticnoraznar
 
deçiseño marcos
deçiseño marcosdeçiseño marcos
deçiseño marcosmarginal
 
Sparus aurata
Sparus aurataSparus aurata
Sparus auratasmestref
 
Der spreewald
Der spreewaldDer spreewald
Der spreewaldthomeck
 
Plaquette pro Ecota.co Nantes
Plaquette pro Ecota.co NantesPlaquette pro Ecota.co Nantes
Plaquette pro Ecota.co NantesEcotaco
 
BOITE À OUTILS POUR LA SELECTION ET LA GESTION DES ARBRES AGROFORESTIERS DANS...
BOITE À OUTILS POUR LA SELECTION ET LA GESTION DES ARBRES AGROFORESTIERS DANS...BOITE À OUTILS POUR LA SELECTION ET LA GESTION DES ARBRES AGROFORESTIERS DANS...
BOITE À OUTILS POUR LA SELECTION ET LA GESTION DES ARBRES AGROFORESTIERS DANS...e_smith
 
MOOC et Francophonie (ACFAS 2013)
MOOC et Francophonie (ACFAS 2013)MOOC et Francophonie (ACFAS 2013)
MOOC et Francophonie (ACFAS 2013)Prof_UQAM_TIC
 
Vih et grossesse,m1&m2
Vih et grossesse,m1&m2Vih et grossesse,m1&m2
Vih et grossesse,m1&m2Idrissou Fmsb
 
Con Mucho Afecto Monos
Con Mucho Afecto MonosCon Mucho Afecto Monos
Con Mucho Afecto Monospaquitaguapa
 
Webs Dinámicas, web nos centros educativos baseadas en Software Libre
Webs Dinámicas, web nos centros educativos baseadas en Software LibreWebs Dinámicas, web nos centros educativos baseadas en Software Libre
Webs Dinámicas, web nos centros educativos baseadas en Software Libreousli07
 
autodestrucción
autodestrucciónautodestrucción
autodestrucciónkolo
 
Itinerari Les Santes. Aida, Montse i Javi
Itinerari Les Santes. Aida, Montse i JaviItinerari Les Santes. Aida, Montse i Javi
Itinerari Les Santes. Aida, Montse i Javismestref
 

En vedette (20)

Trabajo colaborativo Inmigrantes digitales
Trabajo colaborativo Inmigrantes digitalesTrabajo colaborativo Inmigrantes digitales
Trabajo colaborativo Inmigrantes digitales
 
140819 - Présentation mécanique à 2
140819 - Présentation mécanique à 2140819 - Présentation mécanique à 2
140819 - Présentation mécanique à 2
 
apostila__legislacao_sus_com_exercicios__saude__professor_paulo_prieto
 apostila__legislacao_sus_com_exercicios__saude__professor_paulo_prieto apostila__legislacao_sus_com_exercicios__saude__professor_paulo_prieto
apostila__legislacao_sus_com_exercicios__saude__professor_paulo_prieto
 
Presenta Puntos Urbanos De InteréS En Bg
Presenta Puntos Urbanos De InteréS En BgPresenta Puntos Urbanos De InteréS En Bg
Presenta Puntos Urbanos De InteréS En Bg
 
Proceso RAP (Renewed Approach to Programme). Scouts MSC
Proceso RAP (Renewed Approach to Programme). Scouts MSCProceso RAP (Renewed Approach to Programme). Scouts MSC
Proceso RAP (Renewed Approach to Programme). Scouts MSC
 
Nnya Y Tic
Nnya Y TicNnya Y Tic
Nnya Y Tic
 
deçiseño marcos
deçiseño marcosdeçiseño marcos
deçiseño marcos
 
Sparus aurata
Sparus aurataSparus aurata
Sparus aurata
 
Der spreewald
Der spreewaldDer spreewald
Der spreewald
 
Plaquette pro Ecota.co Nantes
Plaquette pro Ecota.co NantesPlaquette pro Ecota.co Nantes
Plaquette pro Ecota.co Nantes
 
Imagenes de Cuba 1
Imagenes de Cuba 1Imagenes de Cuba 1
Imagenes de Cuba 1
 
BOITE À OUTILS POUR LA SELECTION ET LA GESTION DES ARBRES AGROFORESTIERS DANS...
BOITE À OUTILS POUR LA SELECTION ET LA GESTION DES ARBRES AGROFORESTIERS DANS...BOITE À OUTILS POUR LA SELECTION ET LA GESTION DES ARBRES AGROFORESTIERS DANS...
BOITE À OUTILS POUR LA SELECTION ET LA GESTION DES ARBRES AGROFORESTIERS DANS...
 
MOOC et Francophonie (ACFAS 2013)
MOOC et Francophonie (ACFAS 2013)MOOC et Francophonie (ACFAS 2013)
MOOC et Francophonie (ACFAS 2013)
 
Loteria Homer
Loteria HomerLoteria Homer
Loteria Homer
 
Vih et grossesse,m1&m2
Vih et grossesse,m1&m2Vih et grossesse,m1&m2
Vih et grossesse,m1&m2
 
Con Mucho Afecto Monos
Con Mucho Afecto MonosCon Mucho Afecto Monos
Con Mucho Afecto Monos
 
Webs Dinámicas, web nos centros educativos baseadas en Software Libre
Webs Dinámicas, web nos centros educativos baseadas en Software LibreWebs Dinámicas, web nos centros educativos baseadas en Software Libre
Webs Dinámicas, web nos centros educativos baseadas en Software Libre
 
autodestrucción
autodestrucciónautodestrucción
autodestrucción
 
Aprendiendo con eduvblogs
Aprendiendo con eduvblogsAprendiendo con eduvblogs
Aprendiendo con eduvblogs
 
Itinerari Les Santes. Aida, Montse i Javi
Itinerari Les Santes. Aida, Montse i JaviItinerari Les Santes. Aida, Montse i Javi
Itinerari Les Santes. Aida, Montse i Javi
 

Similaire à Etat de l’art des serveurs Unix au dessus de Mach (1995)

Introduction aux systèmes d-exploitation (2).ppt
Introduction aux systèmes d-exploitation (2).pptIntroduction aux systèmes d-exploitation (2).ppt
Introduction aux systèmes d-exploitation (2).pptMahdiHERMASSI1
 
La technologie des systemes distribués 2 ppt2222.pptx
La technologie des systemes distribués 2 ppt2222.pptxLa technologie des systemes distribués 2 ppt2222.pptx
La technologie des systemes distribués 2 ppt2222.pptxkaoutarghaffour
 
Cours sys 2PPT20.pdf
Cours sys 2PPT20.pdfCours sys 2PPT20.pdf
Cours sys 2PPT20.pdfC00LiMoUn
 
Cours Microsoft Windows 2003 Server 1ere Partie 6 Mars 2008
Cours Microsoft Windows 2003 Server 1ere Partie 6 Mars 2008Cours Microsoft Windows 2003 Server 1ere Partie 6 Mars 2008
Cours Microsoft Windows 2003 Server 1ere Partie 6 Mars 2008guest9dd59e
 
Cours windows-2003-server
Cours windows-2003-serverCours windows-2003-server
Cours windows-2003-servermbarek_slide
 
Le Système Linux (1992)
Le Système Linux (1992)Le Système Linux (1992)
Le Système Linux (1992)Julien SIMON
 
Cours système d’exploitation partie1
Cours système d’exploitation partie1Cours système d’exploitation partie1
Cours système d’exploitation partie1manou2008
 
Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------NasriMohsen2
 
Important Vm Ware Infrastrucutre Slides
Important Vm Ware Infrastrucutre SlidesImportant Vm Ware Infrastrucutre Slides
Important Vm Ware Infrastrucutre Slidesnouari
 
Comprendre les systèmes informatiques virtuels
Comprendre les systèmes informatiques virtuels Comprendre les systèmes informatiques virtuels
Comprendre les systèmes informatiques virtuels Roland Kouakou
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspgharbisalah
 
Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...
Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...
Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...fabricemeillon
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseurISIG
 

Similaire à Etat de l’art des serveurs Unix au dessus de Mach (1995) (20)

Introduction aux systèmes d-exploitation (2).ppt
Introduction aux systèmes d-exploitation (2).pptIntroduction aux systèmes d-exploitation (2).ppt
Introduction aux systèmes d-exploitation (2).ppt
 
La technologie des systemes distribués 2 ppt2222.pptx
La technologie des systemes distribués 2 ppt2222.pptxLa technologie des systemes distribués 2 ppt2222.pptx
La technologie des systemes distribués 2 ppt2222.pptx
 
Cloud_2022.pdf
Cloud_2022.pdfCloud_2022.pdf
Cloud_2022.pdf
 
Cours sys 2PPT20.pdf
Cours sys 2PPT20.pdfCours sys 2PPT20.pdf
Cours sys 2PPT20.pdf
 
Cours Microsoft Windows 2003 Server 1ere Partie 6 Mars 2008
Cours Microsoft Windows 2003 Server 1ere Partie 6 Mars 2008Cours Microsoft Windows 2003 Server 1ere Partie 6 Mars 2008
Cours Microsoft Windows 2003 Server 1ere Partie 6 Mars 2008
 
Cours windows-2003-server
Cours windows-2003-serverCours windows-2003-server
Cours windows-2003-server
 
Le Système Linux (1992)
Le Système Linux (1992)Le Système Linux (1992)
Le Système Linux (1992)
 
Cours système d’exploitation partie1
Cours système d’exploitation partie1Cours système d’exploitation partie1
Cours système d’exploitation partie1
 
Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------
 
Important Vm Ware Infrastrucutre Slides
Important Vm Ware Infrastrucutre SlidesImportant Vm Ware Infrastrucutre Slides
Important Vm Ware Infrastrucutre Slides
 
chapitre0.pptx
chapitre0.pptxchapitre0.pptx
chapitre0.pptx
 
Comprendre les systèmes informatiques virtuels
Comprendre les systèmes informatiques virtuels Comprendre les systèmes informatiques virtuels
Comprendre les systèmes informatiques virtuels
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
 
1514117367383.pptx
1514117367383.pptx1514117367383.pptx
1514117367383.pptx
 
Chapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dspChapitre 3-architecture-des-dsp
Chapitre 3-architecture-des-dsp
 
Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...
Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...
Comment créer, gérer et sauvegarder éfficacement vos environnements virtuels ...
 
Introduction.ppt
Introduction.pptIntroduction.ppt
Introduction.ppt
 
Linux_Cours.ppt
Linux_Cours.pptLinux_Cours.ppt
Linux_Cours.ppt
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 
Le microprocesseur
Le microprocesseurLe microprocesseur
Le microprocesseur
 

Plus de Julien SIMON

An introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging FaceAn introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging FaceJulien SIMON
 
Reinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face TransformersReinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face TransformersJulien SIMON
 
Building NLP applications with Transformers
Building NLP applications with TransformersBuilding NLP applications with Transformers
Building NLP applications with TransformersJulien SIMON
 
Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)Julien SIMON
 
Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)Julien SIMON
 
Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)Julien SIMON
 
An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)Julien SIMON
 
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...Julien SIMON
 
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)Julien SIMON
 
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...Julien SIMON
 
A pragmatic introduction to natural language processing models (October 2019)
A pragmatic introduction to natural language processing models (October 2019)A pragmatic introduction to natural language processing models (October 2019)
A pragmatic introduction to natural language processing models (October 2019)Julien SIMON
 
Building smart applications with AWS AI services (October 2019)
Building smart applications with AWS AI services (October 2019)Building smart applications with AWS AI services (October 2019)
Building smart applications with AWS AI services (October 2019)Julien SIMON
 
Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)Julien SIMON
 
The Future of AI (September 2019)
The Future of AI (September 2019)The Future of AI (September 2019)
The Future of AI (September 2019)Julien SIMON
 
Building Machine Learning Inference Pipelines at Scale (July 2019)
Building Machine Learning Inference Pipelines at Scale (July 2019)Building Machine Learning Inference Pipelines at Scale (July 2019)
Building Machine Learning Inference Pipelines at Scale (July 2019)Julien SIMON
 
Train and Deploy Machine Learning Workloads with AWS Container Services (July...
Train and Deploy Machine Learning Workloads with AWS Container Services (July...Train and Deploy Machine Learning Workloads with AWS Container Services (July...
Train and Deploy Machine Learning Workloads with AWS Container Services (July...Julien SIMON
 
Optimize your Machine Learning Workloads on AWS (July 2019)
Optimize your Machine Learning Workloads on AWS (July 2019)Optimize your Machine Learning Workloads on AWS (July 2019)
Optimize your Machine Learning Workloads on AWS (July 2019)Julien SIMON
 
Deep Learning on Amazon Sagemaker (July 2019)
Deep Learning on Amazon Sagemaker (July 2019)Deep Learning on Amazon Sagemaker (July 2019)
Deep Learning on Amazon Sagemaker (July 2019)Julien SIMON
 
Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)Julien SIMON
 
Build, train and deploy ML models with Amazon SageMaker (May 2019)
Build, train and deploy ML models with Amazon SageMaker (May 2019)Build, train and deploy ML models with Amazon SageMaker (May 2019)
Build, train and deploy ML models with Amazon SageMaker (May 2019)Julien SIMON
 

Plus de Julien SIMON (20)

An introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging FaceAn introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging Face
 
Reinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face TransformersReinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face Transformers
 
Building NLP applications with Transformers
Building NLP applications with TransformersBuilding NLP applications with Transformers
Building NLP applications with Transformers
 
Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)
 
Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)
 
Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)
 
An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)
 
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
 
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
 
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
 
A pragmatic introduction to natural language processing models (October 2019)
A pragmatic introduction to natural language processing models (October 2019)A pragmatic introduction to natural language processing models (October 2019)
A pragmatic introduction to natural language processing models (October 2019)
 
Building smart applications with AWS AI services (October 2019)
Building smart applications with AWS AI services (October 2019)Building smart applications with AWS AI services (October 2019)
Building smart applications with AWS AI services (October 2019)
 
Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)
 
The Future of AI (September 2019)
The Future of AI (September 2019)The Future of AI (September 2019)
The Future of AI (September 2019)
 
Building Machine Learning Inference Pipelines at Scale (July 2019)
Building Machine Learning Inference Pipelines at Scale (July 2019)Building Machine Learning Inference Pipelines at Scale (July 2019)
Building Machine Learning Inference Pipelines at Scale (July 2019)
 
Train and Deploy Machine Learning Workloads with AWS Container Services (July...
Train and Deploy Machine Learning Workloads with AWS Container Services (July...Train and Deploy Machine Learning Workloads with AWS Container Services (July...
Train and Deploy Machine Learning Workloads with AWS Container Services (July...
 
Optimize your Machine Learning Workloads on AWS (July 2019)
Optimize your Machine Learning Workloads on AWS (July 2019)Optimize your Machine Learning Workloads on AWS (July 2019)
Optimize your Machine Learning Workloads on AWS (July 2019)
 
Deep Learning on Amazon Sagemaker (July 2019)
Deep Learning on Amazon Sagemaker (July 2019)Deep Learning on Amazon Sagemaker (July 2019)
Deep Learning on Amazon Sagemaker (July 2019)
 
Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)
 
Build, train and deploy ML models with Amazon SageMaker (May 2019)
Build, train and deploy ML models with Amazon SageMaker (May 2019)Build, train and deploy ML models with Amazon SageMaker (May 2019)
Build, train and deploy ML models with Amazon SageMaker (May 2019)
 

Etat de l’art des serveurs Unix au dessus de Mach (1995)

  • 1. Etat de l’art des serveurs Unix au dessus de Mach R´emy Card card@tsx-11.mit.edu Franck M´evel mevel@masi.ibp.fr Julien Simon simon@freenix.fr 16 mars 1995 Nous pr´esentons ici bri`evement le fonctionnement des syst`emes qui offrent une ´emulation d’Unix au dessus du micronoyau Mach. Ils sont de trois types : • les syst`emes `a architecture monolithique, utilisant Mach comme couches basses (OSF/1 IK) ; • les syst`emes compos´es d’un seul serveur, qui s’´ex´ecute en mode utilisateur au dessus de Mach (BSD Single Server, CMU Unix Server, OSF/1 MK, Lites et Sprite) ; • les syst`emes compos´es de plusieurs serveurs coop´erants, appel´es syst`emes multiserveurs. (CMU Mach-US et GNU Hurd). 1 Syst`emes monolithiques 1.1 OSF/1 IK OSF/1 IK [Foundation 1990], d´evelopp´e par l’Open Software Foundation, repose sur Mach 2.5. Ce syst`eme reprend la structure monolithique pr´esente dans Unix et se contente d’utiliser les fonctionnalit´es de Mach pour assurer les s´emantiques Unix sans en tirer pleinement profit. Pour ces raisons, nous nous contentons de le d´ecrire bri`evement. Sa structure est repr´esent´ee sur la figure 1. Les innovations offertes par OSF/1 IK par rapport `a Unix, au niveau structurel, sont : • l’utilisation des fonctionnalit´es de gestion de tˆaches et threads pour fournir des processus selon la s´emantique Unix ; 1
  • 2. OSF/1 IK Mach 2.5 Matériel Mode utilisateur Mode superviseur Figure 1: Structure de OSF/1 IK 2
  • 3. • la possibilit´e d’utiliser plusieurs threads au sein d’un mˆeme processus ; • la parall´elisation des fonctions du syst`eme, grˆace aux fonctionnalit´es fournies par Mach, afin de permettre une ex´ecution optimale sur des ordinateurs multiprocesseurs ; • l’utilisation des gestionnaires de p´eriph´eriques contenus dans Mach pour effectuer les entr´ees-sorties ; • l’optimisation de la gestion de la m´emoire virtuelle grˆace `a l’utilisation des m´ecanismes de Mach (notamment par rapport `a la version BSD de Unix qui impl´emente une gestion peu performante de la m´emoire1 [Leffler et al. 1989]. L’utilisation de fonctionnalit´es de Mach permet d’all´eger le code du syst`eme lui-mˆeme puisque de nombreuses fonctions internes (ordonnancement de processus, gestion des p´eriph´eriques, gestion de la m´emoire physique...) peuvent ˆetre remplac´ees par des appels `a Mach. N´eanmoins, de par son caract`ere monolithique, OSF/1 IK n’est pas diff´erent d’une impl´ementation clas- sique de fonctionnalit´es Unix dans la mesure o`u il est fond´e sur la mˆeme structure et en poss`ede donc les mˆemes inconv´enients. 2 Syst`emes monoserveurs 2.1 OSF/1 MK 2.1.1 Structure de OSF/1 MK OSF/1 MK [Places et al. 1992], d´evelopp´e par l’Open Software Foundation, repose sur la version 3.0 de Mach. L’architecture de ce syst`eme est directement inspir´ee de celle du BSD Single Server de Carnegie Mellon University. C’est ´egalement le cas du Unix Server de CMU [Golub et al. 1990], et de Lites [Helander 1994]. Il est donc compos´e d’un serveur unique, qui s’ex´ecute en mode utilisateur au dessus de Mach. Les composantes de ce serveur sont : • la quasi-int´egralit´e du code de OSF/1 IK ; • une couche d’interface avec les processus utilisateurs, charg´ee de convertir leurs appels syst`eme en RPC a destination de Mach ; • une couche d’interface avec le micronoyau, qui permet au serveur d’obtenir des services indisponibles en mode utilisateur. Sa structure est repr´esent´ee sur la figure 2. 1 pour les versions ant´erieures `a 4.4BSD, cette derni`ere ayant repris la gestion de la m´emoire virtuelle de Mach 3
  • 4. 2.1.2 Traitement des appels syst`eme OSF/1 MK offre une compatibilit´e binaire avec Unix, grˆace `a une librairie d’´emulation plac´ee dans l’espace d’adressage des processus utilisateurs. Interface appels système Services de base Librairie d’émulation Matériel Mach 3.0 OSF/1 Processus Mode Utilisateur Mode Superviseur Figure 2: Structure de OSF/1 MK Lorsqu’un processus effectue un appel syst`eme, il ex´ecute une trappe qui transf`ere le contrˆole `a Mach. Celui-ci redirige l’appel vers la librairie, qui ex´ecute l’appel syst`eme. Si l’appel est simple, la librairie peut l’ex´ecuter seule. Par contre, dans le cas o`u l’appel est plus complexe, elle effectue un RPC vers le micro-noyau et retourne les r´esultats au processus utilisateur. Cependant, l’utilisation d’une librairie d’´emulation pose de s´erieux probl`emes de s´ecurit´e et de maintenance. Pour tenter de les r´esoudre, OSF a mis au point une version d’OSF/1 MK sans librairie d’´emulation [Patience 1993]. Ceci a ´et´e rendu possible au prix de plusieurs modifications de Mach 3.0, notamment dans la gestion de la m´emoire virtuelle et des exceptions. 4
  • 5. Mach 3.0 2. retour de trappe 3. saut Processus Serveur OSF/1 1. trappe Figure 3: Appel syst`eme simple dans OSF/1 MK 5
  • 6. Mach 3.0 2. retour de trappe 4. retour de trappe de trappe 6. retour RPC Processus Serveur OSF/1 1. trappe 3. trappe 5. trappe 7. saut Figure 4: Appel syst`eme complexe dans OSF/1 MK 6
  • 7. 2.1.3 Gestion des processus Les processus sont g´er´es par le biais des tˆaches et threads Mach. Le serveur maintient des structures de donn´ees contenant les informations li´ees aux s´emantiques Unix des processus qui ne sont pas directement g´er´ees par Mach. Les informations maintenues par le serveur sont ´egalement accessibles par la librairie d’´emulation sans son espace d’adressage, afin de lui permettre de traiter directement certains appels syst`eme, sans faire appel au serveur. La m´emoire virtuelle des processus est g´er´ee par un paginateur, appel´e ”vnode pager”, qui fait partie du serveur. 2.1.4 Gestion des entr´ees-sorties Le serveur contient une version non modifi´ee des fonctions d’entr´ees-sorties d’Unix BSD (syst`emes de fichiers, gestion des sockets, . . . ). Dans Unix, ces sous-syst`emes utilisent des tables de poin- teurs sur fonctions pour acc´eder au gestionnaires de p´eriph´eriques [Leffler et al. 1989]. Dans OSF/1 MK, ces tables contiennent les adresses de fonctions, contenues dans la couche d’interface avec le micronoyau, qui redirigent les requˆetes vers les gestionnaires de p´eriph´eriques contenus dans Mach. 2.2 Sprite Sprite [Ousterhout et al. 1988], d´evelopp´e ´a l’Universit´e de Berkeley, est un syst`eme r´eparti, bas´e sur les s´emantiques Unix. Les fonctionnalit´ees r´eparties de Sprite permettent `a un ensemble de stations reli´ees par un r´eseau de partager leurs ressources (processeurs, fichiers) de mani`ere transparente. Sprite a ´et´e port´e au dessus de Mach 3.0 [Kupfer 1993], afin de b´en´eficier du grand nombre de plates-formes support´ees par ce micronoyau. Sa structure est repr´esent´ee sur la figure 5. Sous cette forme, Sprite s’ex´ecute en tant que serveur unique en mode utilisateur. Si l’objectif de portabilit´e ait ´et´e atteint, les performances sont en revanche tr`es inf´erieures `a celles du syst`eme de d´epart. 7
  • 9. 3 Systemes multiserveurs 3.1 Mach-US 3.1.1 Structure de Mach-US D´evelopp´e par Carnegie Mellon University, Mach-US est un syst`eme multi-serveurs orient´e objet bas´e sur Mach 3.0 [Guedes et Julin 1991], [Stevenson et Julin 1995]. Les composantes de Mach- US sont : • un ensemble de serveurs, offrant chacun un type de service bien d´etermin´e ; • une librairie d’´emulation, charg´ee dans l’espace d’adressage de chaque processus utilisateur, et qui permet d’offrir une compatibilit´e binaire avec 4.3BSD. Sa structure est repr´esent´ee sur la figure 6. Les serveurs sont de deux types : • les serveurs ind´ependants des fonctionnalit´es syst`eme ´a offrir aux processus utilisateurs : – serveur de configuration, charg´e de lancer les autres et de leur fournir des informations globales ; – serveur d’authentification ; – serveur de diagnostic. • les serveurs offrant des fonctionnalit´es syst`eme aux processus utilisateurs : – serveur de chemin ; – serveur de fichiers, qui g`ere les syst`emes de fichiers de type UFS ; – serveur de communications inter-processus locales (tubes, sockets, . . . ); – serveur de communications r´eseau par sockets ; – serveur de terminaux, qui g`ere les lignes s´eries ; – serveur de processus. 3.1.2 Traitement des appels syst`eme Les appels syst`eme sont impl´ement´es de la mˆeme fa¸con que dans OSF/1 MK : les processus utilisateur provoquent une trappe g´er´ee par Mach qui la redirige vers la librairie d’´emulation selon un effet de trampoline. Cette librairie ex´ecute ensuite l’appel syst`eme en transmettant une ou plusieurs requˆetes aux serveurs. 9
  • 11. 3.2 GNU Hurd 3.2.1 Structure interne de Hurd Hurd est en cours de d´eveloppement par la Free Software Foundation [Bushnell et al. 1994] Il est con¸cu comme un ensemble de serveurs coop´erants, auquels s’ajoute une librairie d’´emulation. Certains de ces serveurs sont essentiels au fonctionnement du syst`eme alors que d’autres peuvent ˆetre remplac´es dynamiquement. Les serveurs indispensables sont : • le serveur d’authentification ; • le serveur de processus ; • les serveurs de fichiers (UFS, NFS, . . . ); • le serveur de terminaux. 3.2.2 M´ecanisme de translation La plupart des serveurs sont accessibles via des fichiers. Normalement, l’ouverture d’un fichier provoque l’envoi d’un droit d’´emission sur un port caract´erisant le fichier. Tout syst`eme de fichiers est g´er´e par un serveur ; quand un fichier est ouvert, le serveur cr´ee un port, l’associe au fichier et transmet un droit d’´emission sur ce port au client. Un fichier peut avoir un “translateur” qui lui est associ´e. Dans ce cas, au lieu de retourner un port caract´erisant le fichier, le serveur ex´ecute un programme, appel´e “translateur”. Le serveur fournit `a ce programme le port correspondant au fichier ouvert et le translateur doit renvoyer un port au client. Ce m´ecanisme de translation est utilis´e pour le montage de syst`emes de fichiers : quand un utilisateur ouvre le fichier correspondant `a un point de montage, le translateur correspondant, qui comprend la structure physique du syst`eme de fichiers mont´e, est ex´ecut´e et renvoie un port au client. Les acc`es ult´erieurs aux fichiers sont donc ensuite dirig´es, via ce port, sur ce translateur. Un translateur peut ˆetre associ´e `a un fichier par son propri´etaire. De la sorte, tout programme peut ˆetre utilis´e comme translateur `a condition qu’il respecte un protocole bien d´efini. Il est donc ainsi possible, pour tout utilisateur, d’ajouter dynamiquement des fonctionnalit´es au syst`eme par le biais de translateurs. Aucun des translateurs pr´esents install´e dans le syst`eme de fichiers ne voit ses privil`eges accrus. Les translateurs s’ex´ecutent avec l’identit´e et les droits des propri´etaires des fichiers auxquels 11
  • 12. ils sont associ´es, et peuvent ˆetre associ´es `a des fichiers ou modifi´es seulement par leurs pro- pri´etaires. Les protocoles d’entr´ees-sorties et d’acc`es aux fichiers sont con¸cus de fa¸con `a ne pas faire confiance aux diff´erents clients et serveurs. 3.2.3 Traitement des appels syst`eme Les appels syst`eme sont impl´ement´es de la mˆeme fa¸con que dans OSF/1 MK : les processus utilisateur provoquent une trappe g´er´ee par Mach qui la redirige vers la librairie d’´emulation selon un effet de trampoline. Cette librairie ex´ecute ensuite l’appel syst`eme en transmettant une ou plusieurs requˆetes aux serveurs. R´ef´erences [Bushnell et al. 1994] M. Bushnell, R. Stallman, R. Mc Grath, et Jan Brittenson. Towards a New Strategy of Os Design. GNU Bulletin, January 1994. [Foundation 1990] Open Software Foundation. The Design of the OSF/1 Operating System. Open Software Foundation,, 1990. [Golub et al. 1990] D. Golub, R. Dean, A. Forin, et R. Rashid. Unix as an Application Program. In Proceedings of the Summer 1990 USENIX Conference, pages 87–96, June 1990. [Guedes et Julin 1991] P. Guedes et D. Julin. Object-Oriented Interfaxes in the Mach 3.0 Multi- Server System. In Proceedings of the IEEE Second International Workshop on Object Orien- tation in Operating Systems, October 1991. [Helander 1994] J. Helander. Unix under Mach - the Lites Server. Master’s thesis, Helsinki University of Technology, December 1994. [Kupfer 1993] Michael D. Kupfer. Sprite on Mach. In Proceedings of the Third Usenix Mach Symposium, April 1993. [Leffler et al. 1989] S. Leffler, M. Mc Kusick, M. Karels, et J. Quaterman. The Design and Implementation of the 4.3BSD UNIX Operating System. Addison-Wesley, 1989. [Ousterhout et al. 1988] J. Ousterhout, A.Cherenson, F. Douglis, M. Nelson, et B. Welch. The Sprite Network Operating System. IEEE Computer, 21(2):23–36, February 1988. [Patience 1993] Simon Patience. Redirecting System Calls in Mach 3.0 : an Alternative to the Emulator. In Proceedings of the Third Usenix Mach Symposium, April 1993. [Places et al. 1992] F. Barbou Des Places, P. Bernadat, M. Condict, S. Empereur, J. Febvre, D. George, J. Loveluck, E. McManus, S. Patience, J. Rogado, et P. Roudaud. Architecture and Benefits of a Multithreaded OSF/1 Server. Technical report, OSF Research Institute, June 1992. [Stevenson et Julin 1995] J. Stevenson et D. Julin. Mach-Us: Unix on Generic Os Object servers. In Proceedings of the 1995 Usenix Conference, January 1995. 12