12.07.2015 Views

Généralités sur les systèmes d'exploitation - Site personnel de ...

Généralités sur les systèmes d'exploitation - Site personnel de ...

Généralités sur les systèmes d'exploitation - Site personnel de ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

LO14 : Université Technologique <strong>de</strong> TroyesUn serveur NFS est state<strong>les</strong>s : c'est un protocole sans état, c'est à dire qu'il ne gère pas d'information <strong>sur</strong><strong>les</strong> fichiers ouverts.Localdistantopen -> retourne une clé en mettant à jour unetable : position <strong>de</strong> lecture fichier ouvert/fermé...,read : on passe la clécloseloockup -> retourne une clé, sans copier aucuneinformation dans une tableread : on passe la clé qui contient l'endroit et lenombre d'octets à lireL'intérêt du protocole sans état est la sécurité si un serveur tombe en panne : si le serveur crashe aucuneinformation <strong>sur</strong> <strong>les</strong> fichiers ouvert est perdue (puisqu'il n'y en a pas).ProblèmesUn fichier Unix peut être ouvert et verrouillé (locked) pour empêcher <strong>les</strong> autres processus <strong>de</strong> l'utiliser maiscomment faire <strong>de</strong> même avec un protocole sans état (il perd le nom du processus qui l'a verrouillé). Fichierfermé verrous relachés. NFS est state<strong>les</strong>s, on ne peut pas associer <strong>de</strong> verrous à l'ouverture d'un fichier. Ilfaut un mécanisme externe à NFS pour gérer le verouillage. Compléments voir exercice 5.NFS utilise quand même le système <strong>de</strong> protection Unix (bits rwx pour le owner, group et world).MAIS : le serveur NFS croit toujours le client pour vali<strong>de</strong>r un accès.Que faire si le client ment ?Utilisation <strong>de</strong> la cryptographie pour vali<strong>de</strong>r <strong>les</strong> requêtes.Problème : <strong>les</strong> données, el<strong>les</strong>, ne sont pas cryptées.Les clés sont gérées par le NIS ( Network Information Service, ou yellow pages)Un client qui veut accé<strong>de</strong>r à une directory distante doit la monter dans sa propre hiérarchie. Comman<strong>de</strong>smount showmountSous UNIX pour savoir où sont réellement <strong>les</strong> fichiers, le plus simple est d'utiliser la comman<strong>de</strong> df. Elledonne par exemple :Fi<strong>les</strong>ystem kbytes used avail capacity Mounted on/<strong>de</strong>v/sd0a 30383 6587 20758 24% //<strong>de</strong>v/sd0g 57658 24254 17639 88% /usrserver-sys:/usr/spool/mail300481 190865 79567 71% /var/spool/mailsignifiant par exemple que /usr rési<strong>de</strong> <strong>sur</strong> /<strong>de</strong>v/sd0g que le répertoire /var/spool/mail est réellement lerépertoire usr/spool/mail situé <strong>sur</strong> la machine server.sys.ImplémentationComment tout cela peut-il fonctionner ? Sous LINUX comme sous UNIX le concept général en ce quiconcerne <strong>les</strong> fichiers est le système virtuel <strong>de</strong> fichiers (SVF) présenté ci-après. Dans toute cette architecturegénérale quand vous utilisez un système <strong>de</strong> fichier à travers un réseau on voit qu'il suffit <strong>de</strong> changer laseule couche <strong>de</strong> gestionnaire <strong>de</strong> périphérique dans SVF.La couche SVF maintient une table pour chaque fichier ouvert. Chaque entrée est un v-no<strong>de</strong> (virtual i-no<strong>de</strong>). On indique si le fichier est local ou distant.Exemple : la séquence < MOUNT, OPEN, READ >.MOUNT :• le sysop envoie mount + remote directory + local directory + other ;• le programme mount parcourt le nom <strong>de</strong> la remote dir et trouve le nom <strong>de</strong> la machine distante associée ;• mount contacte la machine et <strong>de</strong>man<strong>de</strong> un handle pour cette directory ;• le serveur renvoie le handle si la requête est correcte ;• mount fait un appel système MOUNT (kernel).Le kernel a la main :• il construit un v-no<strong>de</strong> pour la remote dir ;• <strong>de</strong>man<strong>de</strong> au client NFS <strong>de</strong> créer un r-no<strong>de</strong> (remote i-no<strong>de</strong>) dans sa table pour le file handle ;• le v-no<strong>de</strong> pointe <strong>sur</strong> le r-no<strong>de</strong>.OPEN :42 /98 S. Moutou : Cours

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!