Aller au contenu

Partie 3 : Systèmes d'exploitation


Un système d'exploitation (SE, ou Operating System - OS) est un logiciel qui sert d'intermédiaire entre le matériel (processeur, mémoire, disque, écran...) et les applications (navigateur, traitement de texte, jeux...).

┌──────────────────────────────────┐
│ Applications │
│ (navigateur, Python, jeux...) │
├──────────────────────────────────┤
│ Système d'exploitation │
│ (Linux, Windows, macOS...) │
├──────────────────────────────────┤
│ Matériel │
│ (processeur, RAM, disque...) │
└──────────────────────────────────┘

Le système d'exploitation assure cinq fonctions essentielles :

FonctionDescription
Gestion des processusLancer, suspendre, arrêter des programmes ; partager le processeur entre eux
Gestion de la mémoireAttribuer de la mémoire aux programmes, la libérer quand ils se terminent
Gestion des fichiersOrganiser les données sur le disque (répertoires, fichiers, droits)
Gestion des entrées/sortiesCommuniquer avec les périphériques (clavier, écran, réseau, USB...)
Interface utilisateurFournir une interface graphique (GUI) ou en ligne de commande (CLI)
SystèmeCréateurTypeUsage principal
LinuxLinus Torvalds (1991)Libre (open source)Serveurs, développement, embarqué
WindowsMicrosoft (1985)PropriétaireBureautique, jeux
macOSApple (2001)Propriétaire (base UNIX)Créatif, développement
AndroidGoogle (2008)Libre (basé sur Linux)Smartphones
iOSApple (2007)PropriétaireSmartphones Apple

Les fichiers sont organisés dans une structure arborescente (un arbre) :

/ (racine)
├── home/
│ ├── alice/
│ │ ├── Documents/
│ │ │ └── cours.txt
│ │ ├── Images/
│ │ └── .bashrc
│ └── bob/
│ └── projet/
├── etc/
├── var/
├── tmp/
└── usr/
ÉlémentDescription
/Répertoire racine (sommet de l'arbre)
/home/alice/Répertoire personnel de l'utilisateur Alice
~Raccourci vers le répertoire personnel de l'utilisateur courant
.Répertoire courant
..Répertoire parent

Il existe deux façons de désigner un fichier :

TypeDéfinitionExemple
Chemin absoluPart de la racine //home/alice/Documents/cours.txt
Chemin relatifPart du répertoire courantDocuments/cours.txt (si on est dans /home/alice/)
# Analogie Python
# Chemin absolu : l'adresse complète
"/home/alice/Documents/cours.txt"
# Chemin relatif : depuis où on est
"Documents/cours.txt" # dans /home/alice/
"../bob/projet/" # remonter d'un niveau, aller dans bob/projet

Le terminal (ou shell) est une interface en ligne de commande qui permet d'interagir avec le système d'exploitation en tapant des commandes textuelles.

Le caractère > (ou $) est l'invite de commande (prompt) : il indique que le terminal attend une commande.

CommandeSignificationExemple
pwdAfficher le répertoire courant (Print Working Directory)> pwd → /home/alice
lsLister le contenu d'un répertoire (List)> ls → Documents Images .bashrc
ls -lListe détaillée (droits, taille, date)
cd repChanger de répertoire (Change Directory)> cd Documents
cd ..Remonter au répertoire parent> cd ..
cd ~Retourner au répertoire personnel> cd ~
cd /Aller à la racine> cd /
CommandeActionExemple
mkdir nomCréer un répertoire (Make Directory)> mkdir Projets
rmdir nomSupprimer un répertoire vide> rmdir Projets
touch nomCréer un fichier vide> touch notes.txt
cp source destCopier un fichier (Copy)> cp notes.txt copie.txt
mv source destDéplacer ou renommer (Move)> mv notes.txt Documents/
rm nomSupprimer un fichier (Remove)> rm copie.txt
cat nomAfficher le contenu d'un fichier> cat notes.txt
less nomAfficher page par page> less notes.txt
Fenêtre de terminal
> pwd
/home/alice
> ls
Documents Images .bashrc
> mkdir Projets
> cd Projets
> pwd
/home/alice/Projets
> touch hello.py
> ls
hello.py
> cp hello.py hello_backup.py
> ls
hello.py hello_backup.py
> cd ..
> pwd
/home/alice

Sous UNIX, chaque fichier appartient à un utilisateur (le propriétaire) et à un groupe. Les droits d'accès sont définis pour trois catégories :

CatégorieSymboleDescription
PropriétaireuL'utilisateur qui possède le fichier
GroupegLes membres du groupe du fichier
AutresoTous les autres utilisateurs
DroitLettreValeurSur un fichierSur un répertoire
Lecturer4Lire le contenuLister le contenu (ls)
Écriturew2Modifier le contenuAjouter/supprimer des fichiers
Exécutionx1Exécuter le programmeTraverser (cd)

La commande ls -l affiche les droits de chaque fichier :

> ls -l
-rw-r--r-- 1 alice staff 1234 juil. 7 10:30 cours.txt
drwxr-x--- 2 alice staff 64 juil. 7 10:30 Documents

Décomposition de -rw-r--r-- :

- rw- r-- r--
│ │ │ │
│ │ │ └── Autres : lecture seule
│ │ └──────── Groupe : lecture seule
│ └─────────────── Propriétaire : lecture + écriture
└──────────────────── Type (- = fichier, d = répertoire)

La commande chmod (change mode) modifie les droits d'accès.

Fenêtre de terminal
> chmod u+x script.py # ajouter l'exécution pour le propriétaire
> chmod g-w fichier.txt # retirer l'écriture pour le groupe
> chmod o-r secret.txt # retirer la lecture pour les autres
> chmod a+r public.txt # ajouter la lecture pour tout le monde
SymboleSignification
u, g, o, aPropriétaire, groupe, autres, tous
+, -Ajouter, retirer un droit
r, w, xLecture, écriture, exécution

On additionne les valeurs des droits pour chaque catégorie :

DroitsCalculValeur
rwx4 + 2 + 17
rw-4 + 2 + 06
r-x4 + 0 + 15
r--4 + 0 + 04
---0 + 0 + 00
Fenêtre de terminal
> chmod 755 script.py # rwxr-xr-x (proprio: tout, groupe/autres: lecture+exécution)
> chmod 644 fichier.txt # rw-r--r-- (proprio: lire+écrire, groupe/autres: lire)
> chmod 700 secret.txt # rwx------ (proprio uniquement)

Un processus est un programme en cours d'exécution. Quand on lance un programme, le système d'exploitation crée un processus qui contient :

  • Le code du programme en mémoire
  • Les données qu'il manipule
  • Un identifiant unique appelé PID (Process Identifier)
CommandeRôle
psLister les processus de l'utilisateur
ps auxLister tous les processus du système
topAfficher les processus en temps réel (Ctrl+C pour quitter)
kill PIDTerminer un processus par son PID
Fenêtre de terminal
> ps
PID TTY TIME CMD
1234 pts/0 00:00:00 bash
5678 pts/0 00:00:02 python3
5679 pts/0 00:00:00 ps

Les systèmes d'exploitation modernes sont multi-tâches : ils donnent l'impression que plusieurs programmes s'exécutent en même temps. En réalité, le processeur alterne très rapidement entre les processus (plusieurs milliers de fois par seconde). L'ordonnanceur (scheduler) du SE décide quel processus obtient le processeur à chaque instant.


  • Le système d'exploitation est l'intermédiaire entre le matériel et les applications.
  • Ses fonctions : gestion des processus, de la mémoire, des fichiers, des entrées/sorties et de l'interface.
  • Le système de fichiers est organisé en arbre avec une racine (/).
  • Chemin absolu : depuis la racine (/home/alice/doc.txt). Chemin relatif : depuis le répertoire courant.
  • Commandes essentielles : pwd, ls, cd, mkdir, cp, mv, rm, cat, chmod.
  • Trois types de droits : lecture (r), écriture (w), exécution (x), pour trois catégories : propriétaire, groupe, autres.
  • chmod modifie les droits : notation symbolique (u+x) ou numérique (755).
  • Un processus = programme en cours d'exécution, identifié par un PID.