Exercice Corrigé Système d’Exploitation Linux – Partie 2

Les exercices pratiques sur les systèmes d’exploitation comportent des exercices théoriques et pratiques. Pour résoudre les exercices pratiques, vous avez besoin d’un shell UNIX. Un shell très populaire est Bash. Le terminal Apple Mac OS X est suffisant pour la plupart des exercices pratiques. L’invite de commande Windows et Windows PowerShell ne sont pas suffisants pour les exercices.

Pour vous préparer, l’idéal est d’installer sur votre système le système d’exploitation Linux. Une installation dans une machine virtuelle est suffisante. Les distributions faciles à utiliser sont, par exemple, Debian, Ubuntu et CentOS. VirtualBox est une solution de virtualisation gratuite.

Vous pouvez également travailler avec un système vivant sur CD, DVD ou lecteur de mémoire flash USB. Dans ce cas, aucune installation locale n’est nécessaire.

 
 

Exercice 1: Classifications des systèmes d’exploitation

1.1) À chaque instant, un seul programme peut être exécuté. Quel est le terme technique pour ce mode de fonctionnement ?

Le terme technique pour ce mode de fonctionnement est « singletasking« . Cela signifie qu’à chaque instant, un seul programme peut être exécuté, contrairement au multitâche où plusieurs programmes peuvent fonctionner simultanément.

1.2) Quelle est la différence entre les systèmes d’exploitation 8 bits, 16 bits, 32 bits et 64 bits ?

Le numéro du bit indique la longueur de l’adresse mémoire avec laquelle le système d’exploitation fonctionne en interne. La différence entre les systèmes d’exploitation 8 bits, 16 bits, 32 bits et 64 bits se résume ainsi:

  • 8 bits: Peut adresser jusqu’à 256 octets. Très ancien (ex.: certains ordinateurs personnels).
  • 16 bits: Peut adresser jusqu’à 65 536 octets (64 Ko). Ex.: MS-DOS.
  • 32 bits: Peut adresser jusqu’à 4 Go de RAM. Ex.: Windows XP, certaines versions de Linux.
  • 64 bits: Peut adresser jusqu’à 16 exaoctets de RAM. Ex.: Windows 10, macOS modernes.

Plus le nombre de bits est élevé, plus le système peut traiter de données et gérer de mémoire.

1.3) Quels sont les critères essentiels des systèmes d’exploitation en temps réel ?

Dans les systèmes d’exploitation en temps réel, le temps de réponse (ou latence courte) et le respect des délais sont cruciaux. Cela signifie que le système doit:

  • Réagir rapidement aux événements, minimisant le temps entre la détection d’un événement et la réponse.
  • Respecter les délais fixés pour chaque tâche, garantissant que les opérations critiques soient exécutées dans un temps prédéfini.

Ces caractéristiques sont essentielles pour garantir le bon fonctionnement d’applications où la temporisation est vitale, comme dans les systèmes de contrôle industriels ou les applications médicales.

1.4) Citez les deux types de systèmes d’exploitation en temps réel.

Les deux types de systèmes d’exploitation en temps réel sont:

  • Systèmes d’exploitation en temps réel dur: Ces systèmes garantissent que les délais sont strictement respectés. Toute tâche doit être terminée dans un délai prédéfini, sinon le système peut échouer. Ils sont utilisés dans des applications critiques, comme le contrôle de processus industriels ou les systèmes embarqués.
  • Systèmes d’exploitation en temps réel souple: Ces systèmes offrent une certaine flexibilité dans le respect des délais. Bien que le temps de réponse soit important, un léger dépassement des délais n’entraîne pas nécessairement une défaillance. Ils sont souvent utilisés dans des applications moins critiques, comme le traitement multimédia.

Ces distinctions permettent de choisir le type de système en fonction des exigences de l’application.

1.5) Citez quatre domaines d’application typiques des systèmes d’exploitation en temps réel et classez chaque domaine d’application dans l’une des catégories de la réponse ci-dessus.

Voici quatre domaines d’application typiques des systèmes d’exploitation en temps réel, classés en fonction des catégories mentionnées:

1. Systèmes d’exploitation en temps réel dur:

  • Contrôle industriel: Utilisé dans les systèmes de contrôle de processus, comme les usines automatisées.
  • Aérospatial: Systèmes de contrôle de vol dans les avions ou les satellites, où la sécurité est critique.

2. Systèmes d’exploitation en temps réel souple:

  • Traitement multimédia: Applications de vidéo et de son en temps réel, comme la diffusion en direct.
  • Jeux vidéo: Systèmes de jeu interactifs qui nécessitent des réponses rapides mais peuvent tolérer de légers délais.

Ces domaines illustrent comment les systèmes en temps réel sont adaptés à des besoins spécifiques en fonction de la criticité des délais.

1.6) Décrire la structure d’un nano-noyau (ou nanokernel).

Un nano-noyau (ou nanokernel) a une structure minimale et modulaire:

  • Noyau minimal: Contient uniquement les fonctions essentielles (gestion de la mémoire, des interruptions).
  • Modularité: Les services supplémentaires (systèmes de fichiers, gestion des périphériques) sont implémentés en tant que modules externes.
  • Communication inter-processus (IPC): Utilise des mécanismes d’IPC pour permettre la communication entre modules et applications.
  • Gestion des ressources: Alloue et libère les ressources de manière sécurisée.

1.7) Décrire la structure d’un noyau monolithique.

Un noyau monolithique est un type de noyau d’un système d’exploitation où toutes les fonctionnalités essentielles sont intégrées dans un seul binaire. Un noyau monolithique a la structure suivante:

  • Code unique: Tout le code (gestion de la mémoire, des processus, des périphériques) est intégré dans un seul binaire.
  • Accès direct: Modules peuvent accéder directement aux ressources matérielles, offrant de bonnes performances.
  • Gestion des processus et de la mémoire: Inclut des fonctions pour la planification, la synchronisation et la gestion de la mémoire.
  • Pilotes inclus: Les pilotes de périphériques sont souvent intégrés, augmentant la taille du noyau.

1.8) Décrire la structure d’un micro-noyau.

Un micro-noyau a une structure minimaliste et modulaire:

  • Fonctionnalités essentielles: Ne contient que la gestion de la mémoire, des processus et la communication inter-processus (IPC).
  • Modularité: Services supplémentaires (systèmes de fichiers, pilotes) fonctionnent en espace utilisateur.
  • IPC: Utilise des mécanismes efficaces pour échanger des messages entre le micro-noyau et les services externes.

1.9) Décrire la structure d’un noyau hybride.

Un noyau hybride combine des éléments des noyaux monolithiques et des micro-noyaux. Voici ses principales caractéristiques:

  • Architecture mixte: Intègre des fonctionnalités essentielles dans le noyau (comme la gestion de la mémoire et des processus), tout en permettant des modules externes pour d’autres services (comme les pilotes).
  • Flexibilité: Les composants critiques fonctionnent dans le noyau pour de meilleures performances, tandis que les services moins critiques peuvent être exécutés en espace utilisateur.
  • Communication: Utilise des mécanismes d’IPC, mais peut également permettre des appels directs pour les composants noyau.

1.10) Linux implémente un _______________.

A noyau monolithique

B micro-noyau

C noyau hybride

A

Linux implémente un noyau monolithique:

  • Intégration: Toutes les fonctions essentielles (gestion des processus, mémoire, pilotes) sont dans un seul binaire.
  • Accès direct: Les modules du noyau accèdent directement au matériel, offrant de bonnes performances.
  • Modularité: Permet le chargement dynamique de modules pour une certaine flexibilité.

 

1.11) MacOS X implémente un _______________.

A noyau monolithique

B micro-noyau

C noyau hybride

C

MacOS X implémente un noyau hybride, appelé XNU (X is Not Unix). Voici ses principales caractéristiques:

  • Architecture mixte: Combine des éléments d’un noyau monolithique et d’un micro-noyau, intégrant des fonctionnalités essentielles tout en permettant des modules externes.
  • Micro-noyau Mach: Utilise le micro-noyau Mach pour la gestion des processus et de la mémoire, tandis que les services comme les pilotes de périphériques sont intégrés dans le noyau.
  • Performances optimisées: Les composants critiques fonctionnent dans le noyau pour des performances élevées, tandis que d’autres services peuvent s’exécuter en espace utilisateur.

 

1.12) Windows NT4/Vista/XP/7/8/10 implémente un _______________.

A noyau monolithique

B micro-noyau

C noyau hybride

C

Les systèmes d’exploitation Windows NT (y compris NT4, XP, Vista, 7, 8 et 10) implémentent un noyau hybride. Voici ses principales caractéristiques:

  • Architecture mixte: Combine des éléments d’un noyau monolithique et d’un micro-noyau, intégrant des fonctionnalités essentielles tout en permettant l’exécution de certains services en espace utilisateur.
  • Noyau NT: Le noyau NT gère les processus, la mémoire, et les pilotes, tout en utilisant des modules pour des fonctionnalités supplémentaires.
  • Performances et modularité: Les composants critiques fonctionnent dans le noyau pour des performances optimales, tandis que d’autres services peuvent être modulaires et s’exécuter en espace utilisateur.

 

1.13) Citez un avantage et un inconvénient des noyaux monolithiques.

Avantages:

  • Moins de changements de contexte ⇒ meilleures performances
  • Stabilité accrue

Inconvénients:

  • Les composants bloqués ne peuvent pas être démarrés séparément dans le noyau et peuvent entraîner le blocage de l’ensemble du système.
  • Les extensions du noyau entraînent un effort de développement important, car pour chaque compilation de l’extension, le noyau complet doit être recompilé.

1.14) Citez un avantage et un inconvénient des micro-noyaux.

Avantages:

  • Les composants peuvent être échangés facilement
  • Meilleure stabilité et sécurité en théorie, car moins de fonctions s’exécutent en mode noyau.

Inconvénients:

  • Ralentissement en raison d’un plus grand nombre de changements de contexte
  • Le développement d’un nouveau (micro)noyau est une tâche complexe.

1.15) Citez un avantage et un inconvénient des noyaux hybrides.

Avantages:

  • Meilleures performances qu’avec les micro-noyaux (parce qu’il y a moins de changements de contexte)
  • La stabilité est (théoriquement) meilleure qu’avec les noyaux monolithiques.

Inconvénients:

  • Le développement d’un nouveau noyau (hybride) est une tâche complexe.
 

Exercice 2: Commandes de base de Linux/UNIX

2.1) Quelle commande permet de consulter les pages de manuel ?

man

2.2) Quelle commande permet d’afficher le répertoire de travail actuel dans l’interpréteur de commandes ?

pwd

2.3) Quelle commande permet de créer un nouveau répertoire ?

mkdir

2.4) Quelle commande permet de naviguer vers un répertoire ?

cd

2.5) Quelle commande permet d’afficher le contenu d’un répertoire dans l’interpréteur de commandes ?

ls

2.6) Quelle commande permet de créer un fichier vide ?

touch

2.7) Quelle commande permet de déterminer le contenu d’un fichier ?

file

2.8) Quelle commande permet de concaténer le contenu de fichiers avec d’autres fichiers et peut également être utilisé pour afficher le contenu d’un fichier ?

cat

2.9) Quelle commande permet d’afficher des lignes à partir de la fin d’un fichier dans l’interpréteur de commandes ?

tail

2.10) Quelle commande permet d’afficher les lignes du début d’un fichier dans l’interpréteur de commandes ?

head

2.11) Quelle commande permet de copier des fichiers ou des répertoires à un autre endroit ?

cp

2.12) Quelle commande permet de déplacer des fichiers ou des répertoires vers un autre emplacement ?

mv

2.13) Quelle commande permet de supprimer des fichiers ou des répertoires ?

rm

2.14) Quelle commande permet de supprimer un répertoire vide ?

rmdir

2.15) Quelle commande permet d’introduire une chaîne dans le shell?

echo

2.16) Quelle commande permet de modifier les permissions du fichier ou du répertoire ?

chmod

2.17) Quelle commande permet de changer le mot de passe d’un utilisateur ?

passwd

2.18) Quelle commande permet de mettre fin à une session (et donc au shell) et permet de spécifier la valeur de retour d’un script shell ?

exit

2.19) Quelle commande permet de redémarrer le système ?

reboot OU shutdown -r now

2.20) Quelle commande permet d’arrêter le système ?

halt OU shutdown

2.21) Quelle commande permet de créer un nouvel utilisateur ?

adduser

2.22) Quelle commande permet de supprimer un utilisateur ?

deluser

2.23) Quelle commande permet de modifier un utilisateur ?

usermod

2.24) Quelle commande permet d’afficher l’appartenance d’un utilisateur à un groupe ?

groups

2.25) Quelle commande permet de créer un nouveau groupe ?

groupadd

2.26) Quelle commande permet de supprimer un groupe ?

groupdel

2.27) Quelle commande permet de modifier un groupe ?

groupmod

2.28) Quelle commande permet de changer l’utilisateur (ownership) associé à un fichier ou à un répertoire ?

chown

2.29) Quelle commande permet de changer le groupe associé à un fichier ou à un répertoire ?

chgrp

2.30) Quelle commande permet de créer un lien ?

ln

2.31) Quelle commande permet de rechercher dans un fichier les lignes qui contiennent un motif de recherche ?

grep

2.32) Quelle commande permet d’afficher la liste des processus en cours dans l’interpréteur de commandes ?

ps

2.33) Quelle commande permet de faire passer au premier-plan(foreground) un processus qui s’exécute dans l’arrière-plan(backgrund) de l’interpréteur de commandes ?

fg

2.34) Quelle commande permet de faire passer un processus en arrière-plan de l’interpréteur de commandes ?

bg

2.35) Quelle commande permet de tuer (terminer) un processus ?

kill

2.36) Quelle commande permet de tuer (terminer) un groupe de processus ?

killall

2.37) Quelle commande permet de spécifier la priorité d’un nouveau processus ?

nice

2.38) Quelle commande permet de modifier la priorité d’un processus existant ?

renice

2.39) Quelle commande permet d’afficher l’arbre des processus dans l’interpréteur de commandes ?

pstree
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *