Aller au contenu

10 Les systèmes d’exploitation

Table des matières

  1. Les systèmes d’exploitation
  2. Premiers pas
  3. Gestion des utilisateurs et des groupes
  4. Les commandes de base
  5. Exercices

1. Les systèmes d’exploitation

⚓︎

Un système d’exploitation (OS - Operating System) est un ensemble de programmes permettant de gérer les ressources matérielles et logicielles d’un ordinateur. Il assure l’interface entre le matériel (processeur, mémoire, disque dur...) et les applications utilisées par l’utilisateur.

1.1. Historique des systèmes d’exploitation

⚓︎
Activité n°1 :

🎥 Regarder la vidéo : Histoire des systèmes d’exploitation

Activité n°2 :

🎥 Regarder la vidéo : Comprendre ce qu’est un système d’exploitation

📌 Quelques repères historiques :

  • 1975 : Création de Microsoft par Bill Gates et Paul Allen.

  • 1983 : Première version de Windows, fonctionnant avec MS-DOS.

  • Aujourd’hui : Windows reste le système d’exploitation le plus utilisé sur les ordinateurs grand public.

💡 Autres systèmes :

  • macOS (Apple) : basé sur UNIX et propriétaire.

  • Linux : système open-source, utilisé principalement sur les serveurs et les supercalculateurs.

1.2. Le libre et l’open source

⚓︎
Activité n°3 :

🎥 Regarder la vidéo : Libre et Open Source

📌 Différences entre logiciel propriétaire, logiciel libre et lorgiciel open source:

:

Type de logiciel Caractéristiques
Logiciel propriétaire Code source fermé, usage restreint, soumis à licence. Ex : Windows, macOS.
Logiciel libre Code source accessible, modifiable et redistribuable sous certaines licences (GPL, etc.). Ex : Linux, Firefox.
Logiciel open source Code source ouvert et consultable, souvent modifiable, mais pas toujours libre (la licence peut limiter les usages). Ex : Chrome, VS Code.

🔍 Remarque :

  • Tous les logiciels libres sont open source, mais tous les open source ne sont pas nécessairement libres.
  • Par exemple, Firefox est libre et open source ; Google Chrome est open source (partiellement via Chromium) mais pas libre.

1.3. UNIX

⚓︎
Activité n°4 :

🎥 Regarder la vidéo : UNIX

📌 UNIX en bref :

  • Développé dans les années 1970.

  • Système propriétaire mais influençant de nombreux OS.

  • Base de macOS, Linux, et de nombreux systèmes d’exploitation professionnels.

1.4. Linux

⚓︎
Activité n°5 :

🎥 Regarder la vidéo : Linux

📌 Linux, un système open-source :

  • Créé en 1991 par Linus Torvalds.

  • Fonctionne sur serveurs, supercalculateurs, smartphones (Android), systèmes embarqués.

  • Mascotte : un manchot nommé TUX.

💡 Différence majeure : Contrairement à Windows et macOS, Linux permet à chaque utilisateur de modifier son système selon ses besoins.

1.5. Rôles du système d’exploitation

⚓︎

Un système d’exploitation assure plusieurs fonctions essentielles :

  • Gestion du processeur : répartit les tâches entre les programmes.

  • Gestion de la mémoire vive : alloue et libère la mémoire nécessaire aux applications.

  • Gestion des entrées/sorties : contrôle l’accès aux périphériques (souris, écran, disque dur…).

  • Gestion des fichiers : organise et sécurise les données stockées.

  • Gestion des utilisateurs et des droits : assure la protection des ressources.

1.6. Composantes d’un système d’exploitation

⚓︎

📌 Un OS est composé de plusieurs éléments :

Composante Rôle
Le noyau (Kernel) Gère la mémoire, les processus et le matériel.
Le shell Interpréteur de commandes (interface texte).
Le système de fichiers Structure l’organisation des fichiers et dossiers.

💡 Exemple d’organisation sous Linux :

📋 Texte
/ (racine)
│── home (dossiers utilisateurs)
│── etc (configurations)
│── bin (programmes)
│── var (logs)

2. Premiers pas

⚓︎

2.1. Qu’est ce qu’un shell ?

⚓︎

Un shell est une interface en ligne de commande permettant de contrôler un OS.

📌 Exemples de shells :

  • Bash (le plus courant sous Linux).

  • Zsh, Sh, PowerShell (Windows).

Avantages :

Puissant et rapide.

Idéal pour l’automatisation des tâches.

2.2. Le prompt et l’invite de commandes

⚓︎

📌 Exemple sous Linux (Raspberry Pi) :

📋 Texte
pi@raspberrypi:~$  
💡 Explication :

  • pi → Nom de l’utilisateur.

  • raspberrypi → Nom de l’ordinateur.

  • ~ → Répertoire courant (dossier personnel de l'utilisateur).

Sur Python le prompt est : >>>

2.3. Système de fichier

⚓︎

📌 Organisation des fichiers :

  • Tout est fichier (y compris périphériques et processus).

  • Arborescence unique (racine /).

📌 Exemple :

📋 Texte
/home/user/docs/rapport.odt  # Chemin absolu

2.4. Chemin absolu ou chemin relatif

⚓︎

📌 Différence entre les deux :

Type Exemple Explication
Chemin absolu /home/boot/grub/grub.cfg Depuis la racine /.
Chemin relatif ../../bin/cat Depuis le dossier courant grub.

=> CAPYTALE Le code vous sera donné par votre enseignant

Activité n°6 :

Chemin absolu : en utilisant, l’arborescence précédente déterminer le chemin absolu permettant d’accéder au fichier :

  • "cat"

  • "rapport.odt"

Activité n°7 :

Chemin relatif : en utilisant, l’arborescence précédente déterminer le chemin relatif permettant d’accéder au fichier :

  • "rapport.odt" depuis le répertoire "elsa"

  • "fiche.ods" depuis le répertoire "boulot"

2.5. Commande de base du terminal

⚓︎

2.5.1. Changer de dossier : cd

⚓︎
Bash
cd documents        # Aller dans "documents"
cd ..               # Revenir au dossier précédent
cd /home/user       # Chemin absolu vers le dossier "user"

Autres commandes à connaitre :

  • cd ~ : permet de revenir au répertoire de l'utilisateur

  • cd / : permet de se placer à la racine des fichiers

2.5.2. Lister le contenu d’un dossier : ls

⚓︎
Bash
ls                 # Liste simple
ls -l              # Liste détaillée
ls -a              # Affiche les fichiers cachés
Activité n°8 :

Faire l’exercice 1

2.5.3. Créer et supprimer un fichier/répertoire : mkdir, rm, touch

⚓︎
Bash
mkdir mon_dossier  # Créer un répertoire
touch mon_fichier.txt  # Créer un fichier vide
rm mon_fichier.txt  # Supprimer un fichier
rm -r mon_dossier  # Supprimer un dossier et son contenu

2.5.4. Copier et déplacer des fichiers : cp, mv

⚓︎
Bash
cp fichier1.txt dossier/  # Copier un fichier
mv fichier1.txt dossier/  # Déplacer un fichier

2.5.5. Connaître sa position dans l’arborescence : pwd

⚓︎
Bash
pwd   # Affiche le chemin absolu du dossier courant

3. Gestion des utilisateurs et des groupes

⚓︎

Les systèmes UNIX et Linux sont multi-utilisateurs, ce qui signifie que plusieurs utilisateurs peuvent partager un même ordinateur tout en conservant un environnement de travail propre à chacun.

Chaque utilisateur dispose de droits spécifiques qui lui permettent d’effectuer certaines opérations et d’en restreindre d’autres. Ces droits sont gérés par le système d’exploitation.

📌 L’utilisateur "root" (super-administrateur)

  • Il possède tous les droits sur le système.

  • Il peut ajouter, modifier et supprimer des fichiers et des utilisateurs.

  • Il peut attribuer ou retirer des permissions aux autres utilisateurs.

💡 Gestion par groupes

  • Au lieu d’attribuer des droits à chaque utilisateur individuellement, il est plus efficace de les regrouper dans des groupes.

  • Un groupe possède des permissions spécifiques, et tous ses membres héritent de ces permissions.

3.1. Droits des fichiers et des répertoires

⚓︎

Chaque fichier et répertoire possède trois types de droits :

Droit Symbole Description
Lecture r (read) Autorise à lire le contenu d’un fichier ou la liste d’un répertoire.
Écriture w (write) Autorise à modifier un fichier ou à ajouter/supprimer des fichiers dans un répertoire.
Exécution x (execute) Autorise l’exécution d’un fichier ou l’accès au contenu d’un répertoire.

📌 Trois types d’utilisateurs sont associés à chaque fichier :

Utilisateur Symbole Explication
Propriétaire u (user) Celui qui a créé le fichier, il peut modifier ses propres droits.
Groupe g (group) Ensemble d’utilisateurs partageant les mêmes permissions sur un fichier.
Autres o (others) Tous les autres utilisateurs du système.

💡 Affichage des permissions avec ls -l

Si on exécute la commande suivante :

Bash
ls -l fichier.txt
On peut obtenir un résultat comme celui-ci :
📋 Texte
-rw-r--r-- 1 pi pi 204678 Mar 21 22:01 fichier.txt
📌 Explication des colonnes :

Colonne Signification
-rw-r--r-- Type de fichier et permissions
1 Nombre de liens
pi Propriétaire du fichier
pi Groupe du fichier
204678 Taille du fichier en octets
Mar 21 22:01 Date et heure de la dernière modification
fichier.txt Nom du fichier

💡 Décryptage des permissions :

  • - → Fichier normal (d pour un répertoire).

  • rw- → Le propriétaire (u) peut lire et écrire, mais pas exécuter.

  • r-- → Le groupe (g) peut seulement lire.

  • r--Tous les autres utilisateurs (o) peuvent seulement lire.

3.2. Modifier les permissions avec chmod

⚓︎

📌 Syntaxe de la commande :

Bash
chmod [u/g/o/a] [+/-/=] [r/w/x] fichier
- u → Propriétaire du fichier
- g → Groupe
- o → Autres
- a → Tous (u, g et o)

📌 Exemples :

Commande Explication
chmod u+x script.sh Ajoute l’exécution (x) au propriétaire.
chmod g-w fichier.txt Retire l’écriture (w) au groupe.
chmod o=r document.txt Donne uniquement la lecture (r) aux autres.

📌 Notation en base 8( octal)

Les permissions peuvent aussi être définies en utilisant des chiffres : - r (lecture) = 4 - w (écriture) = 2 - x (exécution) = 1

Chaque groupe de permissions est additionné :

Permissions Valeur
rwx 4+2+1 = 7
rw- 4+2+0 = 6
r-- 4+0+0 = 4

📌 Exemple de modification avec notation octale :

Bash
chmod 750 fichier.txt
🔹 Décryptage des valeurs :
- 7Propriétaire (rwx)
- 5Groupe (r-x)
- 0Autres (---)

Ce qui permet de faire toutes les combinaisons :

0 1 2 3 4 5 6 7
- - - - - x - w – - w x r - - r - x r w – r w x
aucun droit exécution écriture écriture et exécution lecture seule lecture et exécution lecture et écriture lecture écriture exécution
Activité n°9 :

analyser l’enchainement de commandes suivantes :

Activité n°10 :

Conversion en octal : donner les droits de la commande suivante

chmod 750 Template

Activité n°11 :

gestion des droits : Dans le répertoire utilisateur ‘~’, les droits du dossier rep1 sont par défaut à 755 (rwxr-xr-x). Compléter les tableaux avec les commandes (en notation symbolique et en base 8) pour lui donner les droits suivants (on suppose qu'après chaque commande on remet le répertoire à 755) :

Par défaut
Commande 1
Commande 2
Commande 3
Commande 4
Propriétaire(u) Groupe(g) Autres(o)
Lecture Écriture Accès Lecture Écriture Accès Lecture Écriture Accès
défaut oui oui oui oui non oui oui non oui
Commande 1
Commande 2
Commande 3
Commande 4
Notation symbolique (relatif) Notation en base 8 (absolu)
Commande 1 chmod u-x,o-r rep1 chmod 651 rep1
Commande 2
Commande 3
Commande 4

4. Les commandes de base

⚓︎
Commande Description
cat Affiche le contenu d'un ou plusieurs fichiers sur la sortie standard (concatène les fichiers si plusieurs sont donnés).
cd Change de répertoire courant.
chmod Modifie les permissions d'accès d'un fichier ou d'un répertoire.
chown Change le propriétaire d'un fichier ou d'un répertoire.
cp Copie un ou plusieurs fichiers ou répertoires.
crontab Planifie des tâches automatiques.
cut Extrait certaines parties d’un fichier (colonnes, champs, caractères).
date Affiche ou modifie la date et l'heure du système.
dd Copie un fichier bit à bit (utile pour créer des images disque).
df Affiche l’espace disque disponible sur les systèmes de fichiers montés.
du Affiche l’espace disque utilisé par un fichier ou un répertoire.
echo Affiche du texte sur la sortie standard.
exit Ferme le terminal ou met fin à une session shell.
find Recherche de fichiers selon divers critères (nom, taille, permissions…).
fsck Vérifie et répare l’intégrité d’un système de fichiers.
grep Recherche une chaîne de texte dans un ou plusieurs fichiers. Exemple : grep -n "montexte" monfichier affiche les lignes contenant "montexte" avec leur numéro.
groupadd Crée un nouveau groupe d’utilisateurs.
gunzip Décompresse un fichier .gz.
gzip Compresse un fichier en format .gz.
head Affiche les 10 premières lignes d’un fichier (modifiable avec -n).
help Affiche l’aide sur les commandes internes de Bash.
kill Envoie un signal à un processus (ex : kill -9 PID force l'arrêt d’un processus).
less Permet de visualiser le contenu d’un fichier page par page.
ln Crée un lien symbolique ou un lien physique entre fichiers.
ls Liste le contenu d’un répertoire.
man Affiche le manuel d’une commande. Exemple : man ls pour la documentation de ls.
mkdir Crée un nouveau répertoire.
mkfs Crée un système de fichiers sur une partition ou un disque.
more Affiche un fichier page par page (comme less, mais avec moins de fonctionnalités).
mount Monte un système de fichiers (ex : mount /dev/sdb1 /mnt).
mv Déplace ou renomme un fichier ou un répertoire.
ps Affiche la liste des processus en cours d’exécution.
pwd Affiche le chemin absolu du répertoire courant.
rm Supprime un fichier (avec -r permet de supprimer un répertoire et son contenu).
rmdir Supprime un répertoire vide.
tail Affiche les 10 dernières lignes d’un fichier (modifiable avec -n).
tar Archive des fichiers en un fichier .tar (avec -z pour compression .tar.gz).
touch Crée un fichier vide ou met à jour la date de modification d’un fichier.
su Permet de changer d’utilisateur (ex : su root pour passer en super-utilisateur).
uname Affiche des informations sur le système d’exploitation.
unzip Décompresse un fichier .zip.
useradd Crée un nouvel utilisateur.
whereis Localise un fichier binaire, sa documentation et ses fichiers sources associés.

📚 Pour aller plus loin sur Linux

👉 Tutoriel complet sur OpenClassrooms

5. Exercices

⚓︎

Exercice 1

Dans ce TP vous allez appliquer un certain nombre de commandes UNIX, utilisable dans le Shell (ou encore dans un terminal) en jouant à un jeu en ligne : TERMINUS.

Vous trouverez ce jeu à l’url suivante :

http://luffah.xyz/bidules/Terminus/

Cette barre d’outils présente en bas du jeu : est très utile.

Remarques :

Pour obtenir le caractère À : ctrl Alt 7 puis Maj A

Pour obtenir le caractère É : Alt maintenu avec 0201 puis relâcher la touche

Vous devrez quasiment à chaque étape utiliser les commandes ls et cat.

La commande touch est utilisée pour « créer » un objet (et pas le « toucher », comme une mauvaise traduction le dit dans le jeu)

Il faut absolument tout lire pour ne pas manquer d’informations (cat) Avant de commencer :

Ceci pourra vous aider à gagner beaucoup de temps à la fin du jeu, quand vous chercherez le « password »

Quelques indices

  • Vous trouverez dans la suite le plan du jeu, cela peut vous aider (document de Charles Poulmaire). Je donne aussi quelques indications qui permettent de ne pas perdre trop de temps.
  • Toujours commencer par ls. Vous verrez le rôle de cette commande. Il est préférable d’interagir et de parler, avant de se déplacer.
  • Depuis la maison, commencer par aller dans le Bois des lutins, avant d’aller dans la prairie.

  • Visiter les lieux dans l’ordre suivant :

  • Place du vendeur. Ne pas oublier de cliquer deux fois pour acheter rm et mkdir. Si vous n’obtenez pas la confirmation de ces achats, vous serez bloqué ultérieurement.

  • Boutique artisanale.

  • Bibliothèque.

  • Chemin de pierres.

  • Pont cassé.

  • On accède aux cinq lieux Place du marché, Boutique artisanale, Bibliothèque, Chemin en pierres et Pont cassé à partir de la Place du village.

  • Histoire de Terminus, Nostalgie du pays, Romance de poche, Tous sur les sorts, Super livre des sortilèges, VIM proved.

  • On peut créer un autre épi de maïs en utilisant le sort cp.

  • L'enfant est à déplacer de la cage avec le sort mv.

  • L.txt, M.txt, Q.txt, R.txt, S.txt, T.txt, U.txt, V.txt et W.txt. : Exécuter l'instruction grep password.

  • Dans le répertoire FichierNoyau, exécuter l'instruction sudo cat Certificat, puis saisir le mot de passe obtenu précédemment.

**Liste des commandes du jeu TERMINUS **

Commande Description Utilisation
cat Examiner en détail (lire, écrire, concaténer) Saisir cat Objet ou Personne, puis Entrée
ls Lister (LiSt) les éléments Saisir ls, puis Entrée
cd Changer de destination (Change Directory) Saisir cd .., puis Entrée pour revenir au dernier endroit.
Saisir cd Salle, puis Entrée pour entrer dans la Salle.
Saisir cd ~, puis Entrée pour revenir au départ.
pwd Rappeler le lieu où on est ou perdu (Print Working Directory) Saisir pwd, puis Entrée
mv Déplacer des objets (MoVe) Saisir mv Objet Chemin, puis Entrée
exit Quitter Saisir exit, puis Entrée
help Donner la liste des sorts Saisir help, puis Entrée
man Connaître les détails d'utilisation d'un sort Saisir man Sort, puis Entrée
rm Faire disparaître un objet ou une personne pour toujours (ReMove) Saisir rm Objet ou Personne, puis Entrée
mkdir Créer un nouveau chemin (MaKe DIRectory) Saisir mkdir Chemin, puis Entrée
unzip Récupérer le contenu d'un sac zippé Saisir unzip Sac, puis Entrée
touch Créer un objet Saisir touch Objet, puis Entrée
cp Copier un objet (CoPy) Saisir cp Objet, puis Entrée
sudo Lancer un sort sur un objet (Substitute User DO) Saisir sudo Sort, puis Entrée
grep Trouver les parties d’un texte qui contiennent le mot magique Saisir grep Mot Texte, puis Entrée
Légende : Les lieux Les personnages Les objets Les sorts Maison Palourde (cd, ls) Prairie Poney (cat) Montagnes Vieil homme (exit) Manuscrit (help, man) Cave - - Sombre corridor - - Bois des lutins (pwd) - Panneau / Rentre chez toi Académie des Bots - - Cours Professeur (mv) - Salle d'entraînement Note / Piliers 1, 2 et 3 Boîte - - Légende : Les lieux Les personnages Les objets Les sorts Cellier Rocher déplacer vers Petit renforcement - - Tunnel Touffe de poils - Chambre de Pierre - - Portail - - Place du village Canard / Viel homme / Villageoise en Pleurs - 1 Place du marché Vendeur Sac à dos (unzip, rm, mkdir) Boutique artisanale Artisane (touch) Babiole étrange / dragon (cp) Bibliothèque Intrigant levier... ² Chemin en pierres - Enorme rocher utiliser rm Femme Fermier Epi de maïs ³ # Pont cassé - - ./IntrigantLevier utiliser touch Planche Pièce secrète Bibliothécaire Grep (grep) Clairière Homme en pleurs - utiliser mkdir Maison Chemin inquiétant Ronces tordues Maison - - utiliser rm Cave des trolls 3 trolls - utiliser rm utiliser mv Toboggan - - Cage Enfant kidnappé⁴ - Fichier noyau Certificat / Instructions Prospectus (sudo) Chemin à créer⁶ Pile de fichiers noyau - 9 fichiers textes⁵ Paradis - - THE END