1. Définition et fonctions
Un système d’exploitation (OS, Operating System) est l’ensemble de programmes qui fait l’interface entre le matériel (processeur, mémoire, disque, périphériques…) et les applications (navigateur, éditeur, jeux, etc.). Il s’appuie sur un composant central appelé le noyau (kernel).
Le noyau s’exécute en mode noyau (ou mode superviseur) : il peut accéder à toutes les ressources matérielles et exécuter toutes les instructions nécessaires à la gestion du système. Les applications s’exécutent en mode utilisateur, avec des droits limités.
Un système d’exploitation assure notamment :
- la construction d’une machine virtuelle plus simple à utiliser (interface) au-dessus du matériel ;
-
la gestion des ressources (partage et protection) :
- processeur (partage du CPU entre plusieurs programmes),
- mémoire (allocation, protection, isolation),
- entrées/sorties (disques, clavier, écran, réseau…).
- la gestion des fichiers (organisation, accès, droits),
- la planification et l’ordonnancement des processus (tâches).
Exemples : Unix, Linux, Windows, macOS, Android, iOS.
2. Interface utilisateur : CLI et GUI
L’utilisateur interagit avec le système via une interface : soit un langage de commandes textuel, soit une interface graphique.
-
CLI (Command Line Interface) : puissant mais demande un apprentissage.
- Shell (Unix/Linux),
- PowerShell (Windows).
-
GUI (Graphical User Interface) : plus simple, souvent plus limité.
- GNOME / KDE (Linux),
- Explorateur Windows,
- Finder (macOS).
3. Linux (GNU/Linux)
Linux est un système d’exploitation libre de type Unix. L’interpréteur de commandes s’appelle le shell et s’utilise dans un terminal. Sur de nombreuses distributions, l’interpréteur par défaut est Bash.
Lors d’une session, le shell affiche un caractère appelé prompt :
$pour un utilisateur ordinaire,#pour le super-utilisateur root,>quand une commande continue sur plusieurs lignes.
3.1. Syntaxe des commandes
Une commande suit généralement la forme :
commande [options] arguments
- Une option courte :
-l,-a… - Une option longue :
--help… - Un argument : un nom de fichier, un répertoire, une valeur…
Des méta-caractères facilitent la sélection de fichiers :
*: n’importe quelle suite de caractères,?: exactement un caractère,[abc]: un caractère parmi la liste,[a-z]: intervalle.
4. Système de fichiers : arborescence et chemins
4.1. Arborescence
Les fichiers sont organisés en arborescence. Sur les systèmes de type Unix, tout démarre à la
racine, notée /.
Dans une distribution Ubuntu, on aurait :
/
├── usr
│ └── bin
│ ├── zip
│ ├── cd
│ └── lib
├── sbin
├── home
│ ├── bob
│ │ ├── calendrier.doc
│ │ └── Documents
│ │ └── notes.txt
│ └── alice
│ ├── journal.tex
│ └── Documents
│ ├── photo1.png
│ ├── photo2.png
│ └── recherche1.txt
├── etc
│ └── rc.d
└── bin
├── apropos
├── man
├── cp
└── mv
Sous /, on trouve par exemple :
/bin,/usr: commandes et programmes,/etc: fichiers de configuration,/tmp: fichiers temporaires,/home: répertoires personnels des utilisateurs.
4.2. Chemins absolus et relatifs
Chemin absolu
Un chemin est absolu s’il commence par / (la racine).
Il localise un fichier sans ambiguïté.
/home/alice/Documents/photo1.png
Chemin relatif
Un chemin est relatif s’il ne commence pas par /.
Il dépend du répertoire courant.
| Symbole | Signification |
|---|---|
. | répertoire courant |
.. | répertoire parent |
/ | séparateur dans un chemin |
~ | répertoire personnel de l’utilisateur |
Si le répertoire courant est /home/alice/Documents, alors ces chemins pointent vers le même fichier :
monfichier.txt./monfichier.txt~/Documents/monfichier.txt
4.3. Parcourir l’arborescence (commandes essentielles)
pwd: affiche le chemin absolu du répertoire courantcd: change de répertoirels,ls -l: liste le contenu (simple / détaillé)cat,less: affiche le contenu d’un fichiernano: édite un fichier (simple)
4.4. Modifier l’arborescence
- Répertoires :
mkdir,rmdir,rm -r,mv - Fichiers :
touch,rm,mv,cp - Redirection :
>(écrase),>>(ajoute)
4.5. Demander de l’aide
man commande: manuel completwhatis commande: résumé rapidecommande --help: aide courte
5. Utilisateurs, groupes et droits
Unix/Linux est multi-utilisateur : plusieurs personnes peuvent être connectées. Le système doit gérer l’accès aux fichiers : qui peut lire, écrire, exécuter.
5.1. Identification
- root : super-utilisateur (administrateur)
- utilisateurs : droits limités
uid: identifiant utilisateur •gid: groupe principalid: affiche uid + groupes
5.2. Permissions r/w/x
Pour un fichier :
r: lirew: écrire/modifierx: exécuter
Pour un répertoire :
r: lister le contenuw: créer/supprimer/renommer dans le répertoirex: entrer dans le répertoire (ex.cd)
Exemple : rwxr-x--x
- propriétaire : tout
- groupe : lecture + exécution
- autres : exécution seule
5.3. Modifier les droits : chmod
Syntaxe :
chmod public opération droits
u(user),g(group),o(others),a(all)+ajouter-retirer=fixerr,w,x
Exemples :
chmod o+w nom_fichierchmod u-x nom_fichier
Notation octale (ex. 754) :
| Droits | Binaire | Octal |
|---|---|---|
rwx | 111 | 7 |
r-- | 100 | 4 |
sudo permet d’exécuter temporairement une commande avec les droits administrateur (si autorisé).
Exercices
- Citer 4 rôles d’un système d’exploitation.
- Expliquer la différence entre mode noyau et mode utilisateur.
- Donner un exemple de chemin absolu et de chemin relatif vers le même fichier.
- Que fait
pwd? Que faitcd? - Interpréter
rw-r-----. - Donner une commande
chmodqui ajoute le droit d’exécution au propriétaire d’un fichierscript.sh.