Le site du prof

Architecture matérielle

Niveau 0

Authentifiez-vous pour suivre votre progression !


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)

CommandeParamètres attendusOptions possiblesDescriptionExemple
manNom d'une commandeAffiche le manuel de la commande donnée en paramètre.man ls
pwdAffiche l'adresse absolue de l'emplacement actuel.pwd
cdAdresse absolue ou relativeChange d'emplacement actuel en allant à l'adresse indiquée.cd /home/elsa/documents
cd boulot
lsAdresse absolue ou relative-lListe 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)NomCrée un dossiermkdir /home/max/documents
cp
  • Source
  • Destination
-RCopie 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
  • Source
  • Destination
-RDé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.jpg
mv ski/photo_1.jpg ski/gdbd_4.jpg
rmAdresse absolue ou relative-RSupprime 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 :

CommandeParamètres attendusOptions possiblesDescriptionExemple
chgrp
  • groupe
  • fichier
-RChange 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
  • utilisateur(:groupe)
  • fichier
-RChange l'utilisateur propriétaire d'un fichier/dossierchown dan run.py
chown dan:jcrew run.py
chmod
  • permissions
  • fichier
-RDonne les nouvelles permissions d'un fichier/dossierchmod 750 run.py