Cours théorique et pratique sur les systèmes informatiques.
Enseignants :
Emmanuel Bouthenot
Ressources :
Slide : https://openics.org/teaching/ Scripts : /système/scripts/
Slide 09-Librairies.pdf
Les librairies Nous connaissons déjà les chemins normés pour les exécutables comme $PATH.
Maintenant il existe des chemins normés pour les librairies : “/lib[64,32,…]/ld-l…” mais pour avoir une vria vision de l’intégralité des librairies nous pouvons aller dans “/usr/lib/” ou “/usr/lib/x86_64-linux-gnu/“.
Historiquement toutes les librairies étaient dans “/usr/lib”.
Prenant l’exemple de la librairie libpng : si on fait un file libpgn* dans “/usr/lib/x86_64-linux-gnu” on obtient :
mocafrain@page:/usr/lib/x86_64-linux-gnu-14:52:02$ file libpng* libpng12.
[Read More]
Les attributs de fichiers
Les attributs de fichiers Les attributs de fichiers comme les meta-données sont toutes les informations relatif à la vie du fichier.
pe : taille du fichier, permissions d’accès, propriétaire et groupe, horodatages, etc..
Système de fichiers Un périphérique de stockage est une disque physique est une unité de stockage vierge. Avec ça on ne fait pas grand chose. (Avant avec grub et tout ça) Maintenant on a une système qui s’appel (U)EFI qui permet de définir une interface logiciel entre le firmware et le OS.
[Read More]
Les processus légers
https://openics.org/teaching/adsillh/05_Les-processus-legers.pdf
Les processus légers (Thread) Les processus légers ou threads en anglais sont aussi appelés “fil d’execution”.
Processus et processus légers Les processus légers sont de mini processus qui fonctionnent dans un processus normal.
IPC = Inter Process Communication.
Les signaux sont un mécanisme d’IPC.
–> C’est ce qui va permettre la communication entre les processus.
Dans les processus légers la communication via IPC n’ont pas grand intérêt car les processus léger partage le même emplacement mémoire, par conséquent partage les mêmes variables etc.
[Read More]
Les tubes
https://openics.org/teaching/adsillh/06_Les-tubes.pdf
Les tubes (pipe) Mécanisme permettant au processus de dialoguer entre eux.
Les tubes dans un shell Le caractère pipeline | permet dans un shell d’utiliser les tubes.
Pagination avec less de la sortie de la commande ps faux :
ps faux | less ps faux | Le pipe génère un flux, qui va servir d’entrée à la commande suivante, etc.
Les tubes sont un mécanisme qui sont gérés directement par le noyau.
[Read More]
Les signaux
https://openics.org/teaching/adsillh/04_les-signaux.pdf
Les signaux Les signaux = interruptions logiciels
Asynchrone → on ne peut pas vriament predire quand le recepteut du signal va recevoir l’information.
Plusieurs catégories de signaux :
Signaux utilisateurs (ctrl+x, ctrl+z) Fautes matérielles (division par zéro) Fautes logicielles (erreur d’ »criture dans un tube) Envoie d eplusieurs signaux direct entre processus (man 2 kill) Envoie de signaux par l’utilisateur (man 1 kill) Traitement des signaux Core : Arrive des fois quand un programme plante (créer des fichiers core).
[Read More]
Programmes et processus
Slide 03_Les-processus.pdf
Programmes et Processus Format ELF est le format executable que l’on va retrouver sur pas mal de programme UNIX.
file /lib/ls Format adopté depuis plus de 20 ans.
Regarder l’entête lu programme ls (avec la page wikipedia de ELF) : head -c 64 /bin/ls | hexdump -C . On y retrouve toutes les données indiqué par la commande file /bin/ls.
Execution du main © Argc : Le nombre de paramètres que l’on passe au programme.
[Read More]
Les appels système
Les appels système L’appel système open Afin de manipuler un fichier il faut toujours commencer par ouvrir le fichier. Pour ce faire il existe l’appel système « open ».
voir page de manuel de « open ».
Appel système qui ouvre le fichier identifiée par pathname et retourne un descripteur de fichier. En fonction de l’argument flags les fichier peut être ouvert en lecture et en écriture ou les 2.
[Read More]
Les fichiers
Les fichiers Deux types de mémoire : mémoire vive (RAM) et mémoire morte (HDD, ROM, etc..) : deux types d’espace de stockage de fichiers.
Fichier : entité qui réside qqpart, réside sur une disposition logique qui permet d’acceuillir ce fichier. Souvent les fichier sont sotcker dans une structure hierarchique (système de fichier1). Définition simple : Un fichier est un suite d’information traduite de l’octet (une suite d’octet).
Exemple avec un fichier : En théorie un fichier sur lequel on écrit simplement BORDEAUX devrait peser 8octets.
[Read More]
Communication_inter-processus
https://openics.org/teaching/adsillh/07_Communication-Inter-Processus.pdf
Communication inter-processus - IPC Pour l’instant nous avons vu 2 mécanismes de communication inter-processus différents :
Les signaux Les tubes 3 mécanisme de communication entre processus que l’on nomme IPC (Inter Processus Communication) :
Les files de messages (message queues) La mémoire partagée (share memory) Les sémaphores (semaphores) API de IPC System V IPC : Api qui n’est pas fondé sur la philosophie UNIX.
[Read More]