Systèmes d'exploitation
Rôle d'un système d'exploitation
Un système d’exploitation (Operating System = OS) est un programme dont le rôle est de servir d’interface entre l’utilisateur et le matériel.
Ses principales fonctions sont les suivantes:
- Gestion de l’accès des différents programmes au processeur.
- Gestion de la mémoire (Disque Dur et mémoire vive).
- Gestion des Entrées / Sorties
- Protection du système
De nos jours, les principaux systèmes d’exploitations sont les suivants :
- OS "propriétaires" :
- Windows
- MacOS (et iOS, ...)
- Android (majoritairement libre)

- OS "libres" :
- Distributions Linux (Ubuntu, Mint, Debian, ...)

La principale différence entre un OS libre et un OS propriétaire réside dans le fait que le code qui constitue l’OS libre est public et peut être modifié et utilisé légalement par n’importe qui.
Gestion du système de fichiers
Pour permettre à l'utilisateur d'accéder aux données stockées sur le disque dur, les systèmes d'exploitation utilisent une représentation sous forme d'arbre (physiquement, les données ne sont pas organisées ainsi dans le disque dur).
Les feuilles de l'arbre sont les fichiers stockés dans le disque.
Les noeuds sont des dossiers, pouvant donc contenir d'autres dossiers et/ou des fichiers.
Le noeud principal est un dossier appelé la racine du système de fichiers.
Adresse absolue
L’adresse absolue de n’importe quel fichier stocké en mémoire est alors la suite de tous les dossiers à parcourir pour y accéder, en commençant par la racine.
Les adresses absolues commencent donc toujours par le symbole "/".
Par exemple, l'adresse absolue du fichier fiche.ods est /home/elsa/documents/fiche.ods
Adresse relative
On parle aussi d’adresse relative lorsqu’on indique l’emplacement d’un fichier en partant d’un autre emplacement que la racine.
Exemple : L’adresse relative du fichier gdbd_3.jpg depuis le dossier max est images/ski/gdbd_3.jpg
Remarque : Sous Windows, on utilise souvent l’antislash au lieu du slash pour délimiter les dossiers, et chaque disque dur possède sa propre racine (C :, D :, etc...)
Console et lignes de commandes
Pour donner des instructions à un système d'exploitation, quel qu'il soit, le moyen le plus direct est d'utiliser une console. Il s'agit d'un terminal permettant à l'utilisateur de taper du texte pour indiquer les commandes qu'il souhaite exécuter.
Sous Linux, on ouvre un terminal avec le raccourcis Ctrl+Alt+T. Sous Windows, on peut lancer le logiciel cmd, ou le plus récent PowerShell.
Il est important de noter qu'un terminal est toujours ouvert "quelque part" dans le système de fichiers. L'emplacement actuel est indiqué à chaque fois que le système vous invite à entrer une commande
La syntaxe est toujours la même : On tape le nom d'une commande (ou d'un programme à exécuter), suivi d'un espace, suivi des différents paramètres ou options que ce programme attend.
Voici quelques exemples de commandes et de leurs options possibles (listes non exhaustives)
| Commande | Paramètres attendus | Options possibles | Description | Exemple |
|---|---|---|---|---|
| man | Nom d'une commande | Affiche le manuel de la commande donnée en paramètre. | man ls | |
| pwd | Affiche l'adresse absolue de l'emplacement actuel. | pwd | ||
| cd | Adresse absolue ou relative | Change d'emplacement actuel en allant à l'adresse indiquée. | cd /home/elsa/documentscd boulot | |
| ls | Adresse absolue ou relative | -l | Liste le contenu du dossier actuel (ou du dossier spécifié en paramètre). L'option -l liste le contenu de manière plus détaillée | ls -l /home/max/images |
| mkdir | (Adresse)Nom | Crée un dossier | mkdir /home/max/documents | |
| cp |
| -R | Copie le fichier source dans la destination. L'option -R permet de copier un dossier et son contenu. | cp rapport.odt /home/max/documents/rapport.odt |
| mv |
| -R | Déplace le fichier source dans la destination. L'option -R permet de déplacer un dossier et son contenu. | mv photos_vac/photo_1.jpg ski/photo_1.jpgmv ski/photo_1.jpg ski/gdbd_4.jpg |
| rm | Adresse absolue ou relative | -R | Supprime le fichier indiqué. L'option -R permet de supprimer un dossier et son contenu. | rm -R photos_vac/ |
Gestion des permissions d'accès
Permissions d'accès
Dans un système de fichiers, chaque dossier et chaque fichier possède un certain nombre de réglages appelés permissions. Ces permissions régissent les droits d'accès des différents utilisateurs à ce fichier. On compte trois types de permissions:
- Permission de lire
- Persmission d'écrire
- Permission d'exécuter
Ce sont (entre autres) ces permissions qui permettent au système de se protéger contre les modifications, volontaires ou non, légitimes ou non, de ses fichiers sensibles.
Représentation des permissions
Sous linux, on peut ajouter le paramètre -l à la commande ls pour voir les permission associées à chaque élément du dossier.
Une suite de caractères apparaît alors devant chaque élément : drwxrwxrwx (chaque caractère éventuellement remplacé par un tiret), suivie du propriétaire et du groupe propriétaire de l’élément.
Le caractère d est présent s'il s'agit d'un dossier (Directory). Il est remplacé par un tiret sinon.
La suite rwx indique le droit d’accès en lecture (Read), en écriture (Write) et en execution (eXecute). Cette suite est affichée d’abord pour le propriétaire du fichier, puis pour les membres du groupe d’utilisateurs associé au fichier, puis pour les autres utilisateurs.
Par exemple, la ligne -rwxrw-rw- dan jcrew ... run.py signifie que le propriétaire du fichier (l'utilisateur dan) a tous les droits sur le fichier run.py, que le groupe propriétaire (les membres du groupe jcrew) peuvent lire ou modifier le fichier, mais pas l'exécuter, et que les autres utilisateurs aussi.
Remarque
Sous linux toujours, on utilise souvent la valeur décimale correspondant au code binaire formé par les trois booléens r, w, et x dans cet ordre pour représenter les permissions.
Autrement, en considérant que r vaut 4, w vaut 2 et x vaut 1, la somme des permissions accordée donne un code entre 0 et 7 qui indique la permission d'un fichier pour un groupe donné.
Modification des permissions
Le plus simple est d'utiliser les commandes suivantes :
| Commande | Paramètres attendus | Options possibles | Description | Exemple |
|---|---|---|---|---|
| chgrp |
| -R | Change le groupe propriétaire d'un fichier/dossier L'option -R permet de changer le dossier et tout son contenu | chgrp jcrew run.py |
| chown |
| -R | Change l'utilisateur propriétaire d'un fichier/dossier | chown dan run.pychown dan:jcrew run.py |
| chmod |
| -R | Donne les nouvelles permissions d'un fichier/dossier | chmod 750 run.py |

