Aller au contenu

Systèmes d'exploitation

Système d'exploitation

Un système d’exploitation (SE) ou Operating System (OS) en anglais est un ensemble de programmes installés sur une machine qui permet de gérer ses dispositifs matériels (comme la mémoire, ses périphériques) et d’en donner une représentation virtuelle aux utilisateurs, permettant de commander la machine.

Ainsi, le système d'exploitation permet d'utiliser la machine en ignorant les détails de l'architecture matérielle.

Il existe différents systèmes d’exploitation : ceux de la famille Windows (par exemple Windows 11), ceux de la famille Apple (par exemple macOS 15), ou encore ceux de la famille GNU/Linux (Ubuntu, Fedora, Debian, Archlinux…).

img

img

Le système d'exploitation possède différentes responsabilités :

  • Gestion des ressources matérielles :: L’OS cache la complexité du matériel : il joue le rôle d'interface entre les programmes et la machine ainsi qu'avec les périphériques d'entrée/sortie. Il rend ainsi possible l'exécution de programmes sur des machines parfois très différentes physiquement.

  • Exécution des programmes :: L’OS charge les programmes depuis la mémoire et gère leurs exécutions sur le processeur. On appelle ces programmes en mémoire des processus. Cependant, le processeur ne peut faire qu'une seule chose à la fois ! Les systèmes d'exploitation modernes permettent de faire fonctionner plusieurs processus en même temps.

  • Gestion de la mémoire :: Un programme avec ses données est stocké dans la mémoire. L'OS s’assure que seule la partie utile à l’exécution du programme à l’instant $t$ est chargée dans la RAM en effaçant les données non utilisées pendant un certain temps. Il permet de faire fonctionner ensemble efficacement les différents composants matériels de l'ordinateur.

  • Sécurisation :: L’OS assure la sécurité globale du système. Il empêche que certaines opérations soient effectuées dans certains contexte (par exemple que certains utilisateurs aient accès aux fichiers d'un autre utilisateur, pourtant présents sur la même machine).

Fichiers et utilisateurs

Le système d'exploitation permet d'accéder facilement aux données situées dans l'espace de stockage de la machine.

Le système d'exploitation utilise pour cela des fichiers, organisés dans des dossiers (ou répertoire).

  • un fichier possède un nom, une extension (.py, .pdf, .md etc), ainsi que des métadonnées (date de création, de modification, type de donnée, etc).
  • les dossiers sont constitués de plusieurs fichiers et d'autres dossiers. Ils sont organisés de manière hiérarchique, on parle d'arborescence.

Le répertoire racine est le répertoire le plus haut dans l'arborescence des fichiers. On le note / tous les fichiers et tous les dossiers sont contenus dans le répertoire racine ou un de ses sous-répertoires.

Chaque fichier et chaque dossier est identifié de manière unique par un chemin d'accès (son emplacement dans le système de fichiers).

Il existe deux types de chemins :

  • les chemins absolus : ils sont issus de la racine du système de fichier et mentionnent chaque dossier jusqu'au fichier ou dossier en question ;
  • les chemins relatifs : on traite les chemins comme issus du répertoire de travail (ou dossier courant) et ils mentionnent chaque sous-dossier jusqu'au fichier ou dossier en question.

On considère un dossier data-shell présent dans le répertoire /home/ada/

Le répertoire de travail est /home/ada/data-shell

🐍 Code Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
data-shell
|-- creatures
|-- data
|   |-- animal-counts
|   |-- elements
|   |-- pdb
|-- molecules
|-- north-pacific
|   |-- 2012-07-03
|-- writing
    |-- data
    |-- thesis
    |-- tools
        |-- old
  1. Donner deux exemples de chemins relatifs.

  2. Donner deux exemples de chemins absolus.

  3. Donner le chemin absolu et le chemin relatif du dossier old.

On utilise souvent des abréviations de chemins pour nommer certains répertoires.

Abréviation Répertoire
./ Répertoire courant.
../ Répertoire contenant le répertoire courant (son parent).
~/ Répertoire personnel de l'utilisateur (équivalent à /home/nom_utilisateur/).

Une même machine peut être utilisée par différents utilisateurs. Tout fichier ou dossier présent dans l'arborescence des fichiers possède un propriétaire (la personne qui a créé le fichier).

Chaque fichier possède des permissions qui gèrent les autorisations d'accès au fichier pour le propriétaire ainsi que les autres utilisateurs.

Permission Abréviation Description
Lecture r L'utilisateur peut afficher le contenu du fichier.
Écriture w L'utilisateur peut écrire dans le fichier.
Exécution x L'utilisateur peut exécuter le fichier comme un programme.

Par défaut, pour des raisons de sécurité, seul l'utilisateur peut lire et écrire dans son répertoire personnel, et les fichiers créés par l'utilisateur sont non exécutables.

Ligne de commande

Le terminal est un programme qui permet d'exécuter des lignes de commande. Il s'agit d'instructions données directement au système d'exploitation sous forme de texte. Celui-ci les exécute depuis le répertoire courant, puis affiche le résultat (textuel) dans le terminal.

Les commandes de base à connaître sont :

Commande Description
pwd Affiche le chemin du répertoire courant.
ls Liste le contenu du répertoire courant.
cp Copie un fichier ou un dossier d'un emplacement à un autre.
mv Déplace un fichier ou un dossier d'un emplacement à un autre.
rm Supprime un fichier ou un dossier.
Commande Description
cd Change de répertoire courant.
mkdir Créé un répertoire.
cat Affiche le contenu d'un fichier.
grep Cherche du texte dans un fichier.
chmod Change les permissions d'un fichier ou d'un dossier.
man Affiche la page de manuel.

Il est possible de modifier le comportement d'une commande à l'aide d'options. Les options de commande sont listées dans la page de manuel de la commande, ou accessibles à l'aide de l'option --help. Les commandes prennent souvent la forme :

commande [OPTIONS] [ARGUMENTS]

On affiche le contenu d'un fichier présent dans le sous-répertoire cours-nsi-premiere.

🐍 Code Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
> ls
cours-nsi-premiere
> cd cours-nsi-premiere
> ls
README.md
> cat --help
Utilisation : cat [OPTION]... [FICHIER]...
Concaténer les FICHIERs vers la sortie standard.

  -n, --number             numéroter toutes les lignes en sortie
  -s, --squeeze-blank      supprimer les lignes vides qui se répètent en sortie
  -T, --show-tabs          afficher les caractères TAB comme ^I
  -v, --show-nonprinting   utiliser les notations ^ et M-, sauf pour LFD et TAB
      --help
         afficher l'aide et quitter
      --version
         afficher des informations de version et quitter
> cat -n README.md
     1  # cours-nsi-premiere
     2
     3  Dépôt des cours de NSI du lycée Fustel de Coulanges (première). 
     4
     5  Ça va être super ! Si si, vraiment !