Systèmes d'exploitation
Définition
-
Un système d'exploitation (ou OS, Operating System) est un logiciel qui sert d'intermédiaire entre les programmes et le matériel de l'ordinateur (CPU, RAM, disques, périphériques, etc.).
-
Il offre une interface standardisée permettant d'éviter aux programmes de se soucier des spécificités du matériel.
-
L'OS est le premier programme lancé au démarrage et reste actif en permanence.
-
Parmi les OS courants : Windows, Linux, macOS, Android, iOS.
-
Le noyau (ou kernel) est la partie centrale de l'OS. Ses principales fonctionnalités :
Fonctionnalité Description Gestion de la mémoire Gère la mémoire RAM allouée aux programmes. Gestion des processus Permet l'exécution simultanée de plusieurs processus (programmes). Gestion des entrées/sorties Permet aux programmes de communiquer avec les périphériques matériels (clavier, mémoire de stockage, carte réseau, écran etc.). Gestion des fichiers Organise, stocke et permet l'accès aux données sur les supports de stockage (création, lecture, écriture...). Gestion des droits Gère les droits d'accès aux ressources système et aux fichiers.
Logiciels propriétaires vs logiciels libres
On distingue deux grands types de logiciels :
-
Un logiciel propriétaire a un code source fermé : il ne peut pas être modifié, ni partagé. Il est souvent payant. Exemples : Windows, macOS, iOS, Android.
-
Un logiciel libre a un code source ouvert : il peut être utilisé, modifié et redistribué librement. Exemples : Linux, Ubuntu, Debian, LineageOS.
Commandes UNIX
-
Sur les OS basés sur UNIX (Linux ou macOS), les fichiers et les dossiers sont organisés en arborescence :
-
Le terminal est la fenêtre (graphique ou texte) dans laquelle on tape des commandes.
-
Le shell est le programme qui interprète ces commandes et les transmet au noyau du système.
-
Quelques commandes UNIX de base :
Commande | Description | Options courantes | Exemple |
---|---|---|---|
ls |
Liste les fichiers et dossiers | -l (format long) |
ls -l |
cd |
Change de répertoire courant | — | cd /boot/grub/ |
pwd |
Affiche le chemin du répertoire courant | — | pwd |
mkdir |
Crée un dossier | — | mkdir projets |
touch |
Crée un fichier vide | — | touch memo.txt |
cp |
Copie un fichier ou un dossier | -r (récursif) |
cp -r images backup |
mv |
Déplace ou renomme un fichier | — | mv notes.csv .. |
rm |
Supprime un fichier ou dossier | -r (récursif), -f (force) |
rm -rf travail/ |
cat |
Affiche le contenu d'un fichier | — | cat fibo.py |
man |
Manuel d'une commande | — | man ls |
grep |
Recherche un motif dans un fichier | — | grep "mdp" essai.txt |
sudo |
Exécute une commande avec les droits administrateur | — | sudo rm -rf / |
Droits utilisateurs et permissions
- UNIX distingue trois catégories d'utilisateurs et de droits :
Utilisateur | Anglais | Symbole |
---|---|---|
Propriétaire | User | u |
Groupe associé | Group | g |
Autres utilisateurs | Others | o |
Droit | Anglais | Symbole |
---|---|---|
Droit de lecture | Read | r |
Droit d'écriture | Write | w |
Droit d'exécution | Execution | x |
-
Les droits pour chaque fichier et dossier sont visibles avec
ls -l
: -
Lecture des droits, par exemple
-rwxr-xr--
: -
Seul le propriétaire ou un administrateur peut modifier les droits avec la commande
chmod
:chmod [u g o a] [+ - =] [r w x] nom_du_fichier
- u / g / o / a : utilisateur, groupe, autres, tous (all)
- + / - / = : ajoute / retire / remplace un droit
- Exemple :
chmod g+w notes.txt
Processus
Création et états d'un processus
-
Quand un programme est lancé, un processus est créé par le système d'exploitation. Un processus contient :
- Les instructions du programme à exécuter (chargées en mémoire).
- Un espace mémoire réservé.
- Des droits d'accès à certaines ressources (fichiers, périphériques…).
-
Un processus peut être démarré au démarrage du système, par l'utilisateur, par un périphérique ou par un autre processus appelé parent.
-
Chaque processus possède un identifiant unique (PID) et celui de son parent (PPID). Cela permet de structurer les processus en arbre. Si un processus parent se termine, tous ses processus enfants (et leur descendance) sont également arrêtés.
-
Un processeur n'exécute qu'une seule instruction à la fois, donc un seul processus à la fois. Pour donner l'illusion de simultanéité d'exécution, les processus se partagent le processeur à tour de rôle. Ainsi, un processus peut donc se trouver dans différents états :
Commandes UNIX relatifs aux processus
ps
affiche un cliché instantané des processus en cours d'exécution. Les options -ef
permet d'afficher tous les processus avec informations détaillées.
top
affiche en temps réel les processus actifs et leur consommation flsystème (CPU, mémoire...).
kill <PID>
termine le processus identifié par son PID. L'option -9
permet de forcer l'arrêt immédiat du processus, sans lui laisser la possibilité de se terminer de manière contrôlée.
Ordonnancement des processus
L'ordonnanceur est un programme du système d'exploitation qui choisit le processus à élire, l'interrompt si nécessaire, et définit le temps processeur (mesuré en cycles) qui lui est alloué. Pour cela, il peut appliquer différentes stratégies d'ordonnancement, selon des critères comme la priorité des processus, leur durée estimée, leur ordre d'arrivée, un partage équitable du temps etc. Voici quelques stratégies d'ordonnancement pour les quatre processus suivants :
Interblocage (deadlock)
L'interblocage est une situation où plusieurs processus sont bloqués, chacun attendant une ressource détenue par un autre, aboutissant à un blocage mutuel et infini.