Objectif. Comprendre ce qu’est un système d’exploitation et savoir manipuler les bases d’un système de fichiers (chemins + droits).

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.

Noyau, applications et matériel
Le système d’exploitation fait le lien entre applications et matériel.

Un système d’exploitation assure notamment :

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.

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 :

3.1. Syntaxe des commandes

Une commande suit généralement la forme :

commande [options] arguments

Des méta-caractères facilitent la sélection de fichiers :

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 /.

Arborescence de fichiers
Le système de fichiers est organisé comme un arbre.

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 :

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é.

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 :

4.3. Parcourir l’arborescence (commandes essentielles)

4.4. Modifier l’arborescence

4.5. Demander de l’aide

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

5.2. Permissions r/w/x

Droits Unix : utilisateur, groupe, autres
Les permissions s’appliquent à : propriétaire, groupe, autres.

Pour un fichier :

Pour un répertoire :

Lecture de la chaîne rwx
Lecture d’une chaîne de permissions.

Exemple : rwxr-x--x

5.3. Modifier les droits : chmod

Syntaxe :

chmod public opération droits

Exemples :

Notation octale (ex. 754) :

Droits Binaire Octal
rwx1117
r--1004

sudo permet d’exécuter temporairement une commande avec les droits administrateur (si autorisé).

Exercices

  1. Citer 4 rôles d’un système d’exploitation.
  2. Expliquer la différence entre mode noyau et mode utilisateur.
  3. Donner un exemple de chemin absolu et de chemin relatif vers le même fichier.
  4. Que fait pwd ? Que fait cd ?
  5. Interpréter rw-r-----.
  6. Donner une commande chmod qui ajoute le droit d’exécution au propriétaire d’un fichier script.sh.