Fondements des Systèmes d’Exploitation - Examen [session principale] 2009/2010

Ce document est un examen de Fondements des Systèmes d’Exploitation, destiné à évaluer les connaissances pratiques et théoriques des étudiants sur la gestion des fichiers, les droits d’accès, les processus, le démarrage du système et la virtualisation dans un environnement GNU/Linux.

D'après le document Fondements des Systèmes d’Exploitation - Examen [session principale] 2009/2010

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source

Fondements des Systèmes d’Exploitation - Examen [session principale] 2009/2010

Operating Systems Fundamentals · PDF · 4 pages · 2009

Afficher l'aperçu du document

Consulter le document original →

Ce document est un examen de Fondements des Systèmes d’Exploitation, destiné à évaluer les connaissances pratiques et théoriques des étudiants sur la gestion des fichiers, les droits d’accès, les processus, le démarrage du système et la virtualisation dans un environnement GNU/Linux.

EXERCICE 1

On étudie ici la gestion des répertoires, des fichiers et des droits dans un système Linux, avec des commandes concrètes à écrire et expliquer.

1) Afficher le répertoire courant

L’utilisateur1 est dans le répertoire « bureau » et souhaite afficher le chemin du répertoire courant.

La commande Linux permettant d’afficher le répertoire courant est :

pwd

Réponse : pwd

2) Organisation des fichiers sources et d’en-tête

L’utilisateur1 veut organiser son environnement de travail en créant deux répertoires et en déplaçant les fichiers sources et entêtes dans ces répertoires.

a) Créer les répertoires « source » et « include » dans le répertoire courant (bureau)

La commande pour créer plusieurs répertoires en une seule ligne est :

mkdir source include

Réponse : mkdir source include

b) Première solution pour déplacer les fichiers entêtes (.h) dans « include » et les fichiers sources (.c) dans « source »

On utilise la commande mv avec un motif générique :

mv *.h include/
mv *.c source/

Réponse : mv *.h include/ mv *.c source/

c) Seconde solution pour réaliser le déplacement

On peut utiliser la commande find combinée avec mv pour déplacer les fichiers :

find . -maxdepth 1 -name "*.h" -exec mv {} include/ \;
find . -maxdepth 1 -name "*.c" -exec mv {} source/ \;

Réponse : find . -maxdepth 1 -name "*.h" -exec mv {} include/ \; find . -maxdepth 1 -name "*.c" -exec mv {} source/ \;

3) Déplacement des répertoires « include » et « source » vers « work »

a) Créer le répertoire « work » dans « utilisateur1 » alors qu’on est dans « bureau »

Le répertoire « utilisateur1 » est un répertoire parent de « bureau » (selon l’arborescence). Pour créer « work » dans « utilisateur1 », on utilise :

mkdir ../work

Réponse : mkdir ../work

b) Déplacer « include » et « source » vers « work »

- Pour « include », utiliser le chemin absolu :

Supposons que le chemin absolu vers « utilisateur1 » soit /home/utilisateur1, alors :

mv include /home/utilisateur1/work/

- Pour « source », utiliser le chemin relatif :

mv source ../work/

Réponse : mv include /home/utilisateur1/work/ mv source ../work/

c) Se déplacer vers le répertoire « source » sous « work »

- Avec chemin absolu :

cd /home/utilisateur1/work/source

- Avec chemin relatif (depuis « bureau ») :

cd ../work/source

Réponse : cd /home/utilisateur1/work/source cd ../work/source

4) Droits d’accès et masque de création

a) Afficher les droits d’accès aux fichiers dans « source »

La commande pour afficher les droits est :

ls -l source

Réponse : ls -l source

b) Droits d’accès pour le fichier « codeur.c »

Sans informations supplémentaires, on suppose que les droits sont ceux par défaut avec un masque 022. Par défaut, un fichier est créé avec les droits 666 (rw-rw-rw-), le masque 022 enlève les droits d’écriture pour le groupe et les autres, donc :

Droits effectifs : rw-r--r--

Réponse : rw-r--r--

c) Signification des droits d’accès pour « codeur.c »

  • Le propriétaire peut lire et écrire (rw-)
  • Le groupe peut lire seulement (r--)
  • Les autres utilisateurs peuvent lire seulement (r--)

Réponse : Le propriétaire peut lire et écrire le fichier, les membres du groupe et les autres utilisateurs peuvent seulement le lire.

d) Représentation en base octale des droits

rw- = 4 (lecture) + 2 (écriture) + 0 (exécution) = 6

r-- = 4 (lecture) + 0 + 0 = 4

r-- = 4

Donc les droits sont : 644

Réponse : 644

5) Protection des accès

a) Seul l’utilisateur1 a accès aux fichiers dans « source »

Pour que seul le propriétaire ait accès, on enlève tous les droits pour le groupe et les autres :

chmod 700 source

Cette commande donne tous les droits au propriétaire et aucun aux autres.

Réponse : chmod 700 source

b) Les membres du groupe ont seulement un accès en lecture aux fichiers dans « include », sans pouvoir lister le contenu du répertoire

Pour empêcher la liste du contenu du répertoire, on enlève le droit d’exécution sur le répertoire pour le groupe, car le droit d’exécution sur un répertoire permet d’y accéder et de lister son contenu.

Pour que le groupe ait seulement la lecture des fichiers mais pas la liste du répertoire, on peut :

  • Donner les droits 640 aux fichiers (lecture pour groupe, pas d’exécution)
  • Donner les droits 600 au répertoire « include » pour le groupe (pas d’exécution, donc pas de liste)

Mais ici, on demande la commande pour le répertoire « include » :

chmod 640 include

Cependant, pour un répertoire, le droit d’exécution est nécessaire pour accéder aux fichiers à l’intérieur. Donc pour empêcher la liste mais permettre l’accès aux fichiers, on donne :

chmod 640 include

Mais cela empêche aussi l’accès aux fichiers. La solution correcte est :

chmod 640 include
chmod g-rx include
chmod g--x include

En fait, pour empêcher la liste mais permettre la lecture des fichiers, on enlève le droit de lecture (r) sur le répertoire pour le groupe, mais on garde le droit d’exécution (x) :

chmod 710 include

Ce droit donne au propriétaire tous les droits, au groupe seulement l’exécution (accès aux fichiers), et aux autres aucun droit.

Réponse : chmod 710 include

EXERCICE 2

On demande ici la signification des droits d’accès et les droits minimum nécessaires pour différentes opérations sur fichiers et répertoires.

1) Signification des trois droits d’accès pour un fichier et pour un répertoire

  • Lecture (r) :
    • Fichier : permet de lire le contenu du fichier.
    • Répertoire : permet de lister les noms des fichiers dans le répertoire.
  • Écriture (w) :
    • Fichier : permet de modifier ou supprimer le contenu du fichier.
    • Répertoire : permet de créer, supprimer ou renommer des fichiers dans le répertoire.
  • Exécution (x) :
    • Fichier : permet d’exécuter le fichier s’il est exécutable (programme ou script).
    • Répertoire : permet d’accéder aux fichiers dans le répertoire (accès aux inodes), nécessaire pour ouvrir un fichier ou accéder aux sous-répertoires.
  • Réponse : Les droits lecture, écriture et exécution ont des significations différentes selon qu’ils s’appliquent à un fichier ou à un répertoire, comme expliqué ci-dessus.

    2) Droits minimum pour différentes opérations

    • a) Créer un fichier :

      Il faut le droit d’écriture (w) et d’exécution (x) sur le répertoire où on crée le fichier, car on modifie le contenu du répertoire et on doit pouvoir y accéder.

      Réponse : w + x sur le répertoire

    • b) Créer un répertoire :

      Même que pour créer un fichier, il faut w + x sur le répertoire parent.

      Réponse : w + x sur le répertoire parent

    • c) Copier un fichier vers un autre répertoire :

      Il faut lire le fichier source (r sur le fichier), et écrire + exécuter sur le répertoire de destination (w + x).

      Réponse : r sur le fichier source, w + x sur le répertoire destination

    • d) Renommer un fichier :

      Le renommage modifie le contenu du répertoire parent, donc w + x sur ce répertoire.

      Réponse : w + x sur le répertoire contenant le fichier

    • e) Lister le contenu d’un répertoire :

      Il faut le droit de lecture (r) et d’exécution (x) sur ce répertoire.

      Réponse : r + x sur le répertoire

    EXERCICE 3

    Questions sur le démarrage du système et les niveaux d’exécution (runlevels).

    1) Rôle de GRUB

    GRUB est un chargeur d’amorçage (bootloader) qui permet de choisir et de lancer un système d’exploitation au démarrage de l’ordinateur.

    Réponse : GRUB permet de sélectionner et démarrer un système d’exploitation lors du boot.

    2) Nombre de niveaux d’exécution possibles

    En général, il existe 7 niveaux d’exécution (runlevels) numérotés de 0 à 6.

    Réponse : 7 niveaux d’exécution (0 à 6)

    3) Runlevel par défaut

    Le runlevel par défaut est généralement le niveau 3 ou 5 selon la configuration, mais le plus courant est le niveau 3 (mode multi-utilisateur avec réseau).

    Réponse : runlevel 3

    4) Signification du résultat de la commande « ls /etc/rc3.d »

    Les fichiers dans /etc/rc3.d commencent par K ou S suivis d’un numéro et d’un nom de service :

    • K15httpd : signifie que le service httpd sera arrêté (Kill) avec une priorité 15 lors du passage au runlevel 3.
    • S10network : signifie que le service network sera démarré (Start) avec une priorité 10 lors du passage au runlevel 3.

    Réponse : Les fichiers K* arrêtent les services, les fichiers S* démarrent les services au runlevel 3, avec un ordre donné par le numéro.

    5) Ligne de commande pour arrêter le système après 5 minutes

    La commande est :

    shutdown -h +5

    Réponse : shutdown -h +5

    EXERCICE 4

    Questions sur les fichiers système, gestion des processus, compilation du noyau et commandes diverses.

    1) Fichier des mots de passe

    a) Fichier contenant les mots de passe

    Le fichier est /etc/passwd

    Réponse : /etc/passwd

    b) Deux exemples de champs dans une ligne de ce fichier

    Une ligne est organisée en champs séparés par « : ». Deux exemples de champs :

    • Nom d’utilisateur
    • Identifiant utilisateur (UID)

    Réponse : nom d’utilisateur et UID

    2) Différence entre « cat f1.txt > f2.txt » et « cat f1.txt >> f2.txt »

    - « cat f1.txt > f2.txt » : remplace le contenu de f2.txt par celui de f1.txt (écrasement).

    - « cat f1.txt >> f2.txt » : ajoute le contenu de f1.txt à la fin de f2.txt (ajout).

    Si f2.txt existe, la première commande écrase son contenu, la seconde ajoute à la fin.

    Réponse : > écrase le fichier, >> ajoute à la fin.

    3) Deux méthodes pour exécuter un processus en arrière-plan

    • Ajouter « & » à la fin de la commande, par exemple : commande &
    • Exécuter la commande normalement puis suspendre avec CTRL + Z et reprendre en arrière-plan avec bg

    Réponse : lancer avec & ou utiliser CTRL+Z puis bg

    4) Signal système équivalent à « CTRL + Z »

    Le signal envoyé est SIGTSTP (signal de suspension du terminal).

    Réponse : SIGTSTP

    5) Ligne de commande pour compter fichiers et sous-répertoires dans « /usr »

    On peut utiliser :

    ls -lR /usr | grep "^-" | wc -l  # compte les fichiers
    ls -lR /usr | grep "^d" | wc -l  # compte les répertoires

    Ou une commande combinée :

    ls -lR /usr | grep -E "^-|^d" | wc -l

    Réponse : ls -lR /usr | grep -E "^-|^d" | wc -l

    6) Intérêt de refaire la compilation du noyau

    Recompiler le noyau permet d’intégrer de nouveaux pilotes, d’ajuster la configuration, d’optimiser les performances ou de corriger des bugs.

    Réponse : Permet d’adapter, optimiser ou corriger le noyau selon les besoins.

    7) Ligne de commande pour lancer la compilation du noyau en mode texte

    La commande classique est :

    make

    Réponse : make

    8) Ligne de commande pour lancer la compilation du noyau en mode graphique

    On utilise :

    make xconfig

    Réponse : make xconfig

    EXERCICE 5

    Avantages de la virtualisation.

    1) Deux avantages de la virtualisation

    • Isolation : La virtualisation permet d’exécuter plusieurs systèmes d’exploitation indépendants sur une même machine physique, isolant ainsi les environnements et évitant les conflits.
    • Optimisation des ressources : Elle permet de mieux utiliser les ressources matérielles en partageant CPU, mémoire et stockage entre plusieurs machines virtuelles, augmentant ainsi l’efficacité.

    Réponse : Isolation des environnements et optimisation des ressources matérielles.

    Méthode

    Ce sujet récompense la maîtrise des commandes Linux de gestion des fichiers et répertoires, la compréhension des droits d’accès et de leur représentation, ainsi que la connaissance des concepts liés au démarrage du système et à la gestion des processus. Il est important de :

    • Respecter la syntaxe exacte des commandes et chemins.
    • Montrer les étapes de raisonnement, notamment pour les droits d’accès et leur conversion en notation octale.
    • Ne pas confondre les droits sur fichiers et répertoires, car leur signification diffère.
    • Utiliser les chemins absolus et relatifs selon la consigne.
    • Expliquer clairement les concepts théoriques (rôle de GRUB, signification des runlevels, etc.).
    • Ne pas inventer d’informations absentes du sujet.

    Les erreurs fréquentes punies sont l’oubli des droits d’exécution sur les répertoires, la confusion entre écrasement et ajout dans la redirection, et l’utilisation incorrecte des chemins.

    Partager

    Commentaires

    Aucun commentaire pour le moment. Posez la première question.

    Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

    ← Toutes les révisions